hanchenye-llvm-project/llvm/include/llvm/CodeGen
Chad Rosier 2463f67c49 [reg scavenger] Fix the isUsed/isAliasUsed functions so as to not report a false
positive.

In this particular case, R6 was being spilled by the register scavenger when it
was in fact dead.  The isUsed function reported R6 as used because the R6_R7
alias was reserved (due to the fact that we've reserved R7 as the FP).  The
solution is to only check if the original register (i.e., R6) isReserved and
not the aliases.  The aliases are only checked to make sure they're available.

The test case is derived from one of the nightly tester benchmarks and is rather
intractable and difficult to reproduce, so I haven't included it.
rdar://12592448

llvm-svn: 168054
2012-11-15 18:13:20 +00:00
..
PBQP Use ilist rather than std::list for Node and Edge lists in the PBQP graph. This 2012-10-23 17:10:51 +00:00
Analysis.h Fix a long standing tail call optimization bug. When a libcall is emitted 2012-04-10 01:51:00 +00:00
AsmPrinter.h Use TARGET2 relocation for TType references on ARM. 2012-11-14 01:47:00 +00:00
CalcSpillWeights.h
CallingConvLower.h Fix PR13899 2012-10-01 16:44:04 +00:00
CommandFlags.h Reapply the TargerTransformInfo changes, minus the changes to LSR and Lowerinvoke. 2012-10-18 23:22:48 +00:00
DFAPacketizer.h Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
EdgeBundles.h Give a small negative bias to giant edge bundles. 2012-05-21 03:11:23 +00:00
FastISel.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
FunctionLoweringInfo.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
GCMetadata.h Remove GC roots that reference dead objects. 2012-10-26 09:15:55 +00:00
GCMetadataPrinter.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
GCStrategy.h Convert comments to proper Doxygen comments. 2012-06-09 00:01:45 +00:00
GCs.h
ISDOpcodes.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
IntrinsicLowering.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
JITCodeEmitter.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
LatencyPriorityQueue.h misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
LexicalScopes.h Guard private fields that are unused in Release builds with #ifndef NDEBUG. 2012-06-16 21:48:13 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Codegen pass definition cleanup. No functionality. 2012-02-08 21:23:13 +00:00
LiveInterval.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
LiveIntervalAnalysis.h Fix function parameter spelling in comments. Caught by -Wdocumentation. 2012-10-16 15:37:50 +00:00
LiveRangeEdit.h Allow LiveRangeEdit to be created with a NULL parent. 2012-05-19 05:25:46 +00:00
LiveStackAnalysis.h Move getCommonSubClass() into TRI. 2011-09-30 22:18:51 +00:00
LiveVariables.h Switch most getReservedRegs() clients to the MRI equivalent. 2012-10-15 21:57:41 +00:00
MachORelocation.h
MachineBasicBlock.h Add a function computeRegisterLiveness() to MachineBasicBlock. This uses analyzePhysReg() from r163694 to heuristically try and determine the liveness state of a physical register upon arrival at a particular instruction in a block. 2012-09-12 10:18:23 +00:00
MachineBlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
MachineBranchProbabilityInfo.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
MachineCodeEmitter.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
MachineCodeInfo.h
MachineConstantPool.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
MachineDominators.h Silence the new -Wempty-body warning. It appeared because the next statement 2012-02-14 22:17:14 +00:00
MachineFrameInfo.h Change MachineFrameInfo::StackObject::Alloca from Value* to AllocaInst* 2012-10-18 19:53:45 +00:00
MachineFunction.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
MachineFunctionAnalysis.h Sink codegen optimization level into MCCodeGenInfo along side relocation model 2011-11-16 08:38:26 +00:00
MachineFunctionPass.h
MachineInstr.h [inline asm] Get the mayLoad/mayStore directly from the MIOp_ExtraInfo operand. 2012-10-30 20:39:19 +00:00
MachineInstrBuilder.h Change MachineInstrBuilder::addDisp to copy over target flags by default. 2012-10-11 00:15:48 +00:00
MachineInstrBundle.h Add an analyzePhysReg() function to MachineOperandIteratorBase that analyses an instruction's use of a physical register, analogous to analyzeVirtReg. 2012-09-12 10:03:31 +00:00
MachineJumpTableInfo.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
MachineLoopInfo.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
MachineLoopRanges.h
MachineMemOperand.h Add MachineMemOperand::isUnordered(). 2012-08-29 21:08:52 +00:00
MachineModuleInfo.h Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
MachineModuleInfoImpls.h Rename virtual table anchors from Anchor() to anchor() for consistency with the rest of the tree. 2012-09-26 06:36:36 +00:00
MachineOperand.h Add extra declarations of hash_value needed to build llvm with xlc 12.1. 2012-10-31 00:46:18 +00:00
MachinePassRegistry.h Allow targets to select the default scheduler by name. 2012-04-19 01:34:10 +00:00
MachinePostDominators.h Make MachinePostDominatorTree::DT private 2012-09-18 13:49:54 +00:00
MachineRegisterInfo.h Switch MRI::UsedPhysRegs to a register unit bit vector. 2012-10-17 20:26:33 +00:00
MachineRelocation.h
MachineSSAUpdater.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
MachineScheduler.h misched: Target-independent support for load/store clustering. 2012-11-12 19:40:10 +00:00
Passes.h Add a new optimization pass: Stack Coloring, that merges disjoint static allocations (allocas). Allocas are known to be 2012-09-06 09:17:37 +00:00
PseudoSourceValue.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
RegAllocPBQP.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 06:59:23 +00:00
RegAllocRegistry.h
RegisterClassInfo.h Remove RegisterClassInfo::isReserved() and isAllocatable(). 2012-10-15 22:41:03 +00:00
RegisterPressure.h misched: handle on-the-fly regpressure queries better for 2-addr 2012-11-07 07:05:05 +00:00
RegisterScavenging.h [reg scavenger] Fix the isUsed/isAliasUsed functions so as to not report a false 2012-11-15 18:13:20 +00:00
ResourcePriorityQueue.h misched preparation: rename core scheduler methods for consistency. 2012-03-07 23:00:49 +00:00
RuntimeLibcalls.h
ScheduleDAG.h misched: Don't consider artificial edges weak edges. 2012-11-13 02:35:06 +00:00
ScheduleDAGILP.h misched: ILP scheduler for experimental heuristics. 2012-10-15 18:02:27 +00:00
ScheduleDAGInstrs.h misched: TargetSchedule interface for machine resources. 2012-11-06 07:10:38 +00:00
ScheduleHazardRecognizer.h misched: Allow disabling scoreboard hazard checking for subtargets with a 2012-06-05 03:44:32 +00:00
SchedulerRegistry.h Add a really faster pre-RA scheduler (-pre-RA-sched=linearize). It doesn't use 2012-10-17 19:39:36 +00:00
ScoreboardHazardRecognizer.h Revert r158679 - use case is unclear (and it increases the memory footprint). 2012-06-22 20:27:13 +00:00
SelectionDAG.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
SelectionDAGISel.h Make ISelPosition a local variable. 2012-04-20 22:08:50 +00:00
SelectionDAGNodes.h In various places throughout the code generator, there were special 2012-10-29 18:35:49 +00:00
SlotIndexes.h Fix a typo (the the => the) 2012-07-23 08:51:15 +00:00
TargetLoweringObjectFileImpl.h Fix comment 2012-11-14 19:17:44 +00:00
TargetSchedule.h misched: TargetSchedule interface for machine resources. 2012-11-06 07:10:38 +00:00
ValueTypes.h Revert r164663 due to buildbot failure. 2012-09-26 07:43:06 +00:00
ValueTypes.td Add in new data types that are used by AMDIL/ANL among others. 2012-09-19 22:47:07 +00:00