llvm-6502/include/llvm
Chad Rosier 4823be3be1 [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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168054 91177308-0d34-0410-b5e6-96231b3b80d8
2012-11-15 18:13:20 +00:00
..
ADT Fix indeterminism in MI scheduler DAG construction. 2012-11-15 17:45:50 +00:00
Analysis Add a cost model analysis that allows us to estimate the cost of IR-level instructions. 2012-11-02 21:48:17 +00:00
Assembly Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
Bitcode Change encoding of instruction operands in bitcode binaries to be relative 2012-10-11 20:20:40 +00:00
CodeGen [reg scavenger] Fix the isUsed/isAliasUsed functions so as to not report a false 2012-11-15 18:13:20 +00:00
Config llvm/Config/config.h.cmake: Good bye, Kevin! We won't honor authors in comments. 2012-10-29 16:07:28 +00:00
DebugInfo Rewrite DIContext interface to take an object. Update all callers. 2012-11-12 21:40:38 +00:00
ExecutionEngine Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
MC Add ARM TARGET2 relocation. The testcase will follow with actualy use-case. 2012-11-09 20:20:12 +00:00
Object Adding changes to support GNU style archive library reading 2012-11-13 18:38:42 +00:00
Support Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
TableGen Remove exception handling usage from tblgen. 2012-10-25 20:33:17 +00:00
Target Use TARGET2 relocation for TType references on ARM. 2012-11-14 01:47:00 +00:00
Transforms instcombine: Migrate math library call simplifications 2012-11-13 04:16:17 +00:00
AddressingMode.h Use DataTypes.h 2012-10-08 23:14:28 +00:00
Argument.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Attributes.h Change ForceSizeOpt attribute into MinSize attribute 2012-10-30 16:32:52 +00:00
AutoUpgrade.h remove autoupgrade support for really old-style debug info intrinsics. 2011-11-27 06:18:33 +00:00
BasicBlock.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
CallGraphSCCPass.h
CallingConv.h Special calling conventions for Intel OpenCL built-in library. 2012-10-24 14:46:16 +00:00
CMakeLists.txt llvm/include/llvm/CMakeLists.txt: Cut dependency to intrinsics_gen. 2012-07-06 15:55:39 +00:00
Constant.h Make GlobalOpt be conservative with TLS variables (PR14309) 2012-11-15 11:40:00 +00:00
Constants.h In various places throughout the code generator, there were special 2012-10-29 18:35:49 +00:00
DataLayout.h Do not handle void types in DataLayout. Patch by Patrick Hägglund. 2012-11-15 14:45:30 +00:00
DebugInfo.h Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
DefaultPasses.h Fix a couple include directives that used angle brackets for llvm files. 2012-09-15 18:41:37 +00:00
DerivedTypes.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
DIBuilder.h Revert "Use the 'count' attribute instead of the 'upper_bound' attribute." 2012-11-13 23:30:43 +00:00
Function.h Use the Attributes::get method which takes an AttrVal value directly to simplify the code a bit. No functionality change. 2012-10-16 05:23:31 +00:00
GlobalAlias.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GlobalValue.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GlobalVariable.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
GVMaterializer.h
InitializePasses.h Add a cost model analysis that allows us to estimate the cost of IR-level instructions. 2012-11-02 21:48:17 +00:00
InlineAsm.h [inline asm] Implement mayLoad and mayStore for inline assembly. In general, 2012-10-30 19:11:54 +00:00
InstrTypes.h Revert the series of commits starting with r166578 which introduced the 2012-11-01 08:07:29 +00:00
Instruction.def [unwind removal] Remove all of the code for the dead 'unwind' instruction. There 2012-02-06 21:44:22 +00:00
Instruction.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Instructions.h Add a getAddressSpace method to the GEP instruction to mirror that of 2012-11-01 11:25:55 +00:00
IntrinsicInst.h va_start, va_end, va_copy: InstrinsicInst subclasses and InstVisitor support. 2012-10-29 09:39:03 +00:00
Intrinsics.h Attributes Rewrite 2012-10-15 04:46:55 +00:00
Intrinsics.td Add llvm.ceil, llvm.trunc, llvm.rint, llvm.nearbyint intrinsics. 2012-11-15 06:51:10 +00:00
IntrinsicsARM.td ARM: Use a dedicated intrinsic for vector bitwise select. 2012-09-21 00:18:20 +00:00
IntrinsicsHexagon.td Test commit. 2012-08-17 06:36:26 +00:00
IntrinsicsMips.td Support MIPS DSP Rev2 intrinsics. 2012-08-27 12:29:01 +00:00
IntrinsicsNVVM.td Remove the PTX back-end and all of its artifacts (triple, etc.) 2012-05-24 21:38:21 +00:00
IntrinsicsPowerPC.td
IntrinsicsX86.td Add support of RTM from TSX extension 2012-11-08 07:28:54 +00:00
IntrinsicsXCore.td Update IntrinsicsXCore.td with the normal LLVM notice at the top of the file. 2011-10-13 21:08:11 +00:00
IRBuilder.h Add IRBuilderBase::getIntPtrTy. 2012-10-31 09:50:01 +00:00
LinkAllPasses.h Add a cost model analysis that allows us to estimate the cost of IR-level instructions. 2012-11-02 21:48:17 +00:00
LinkAllVMCore.h
Linker.h Prune some includes and forward declarations. 2012-03-26 06:58:25 +00:00
LLVMContext.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
MDBuilder.h Add an MDBuilder utility for creating !tbaa.struct nodes. 2012-09-21 23:00:37 +00:00
Metadata.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Module.h Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
OperandTraits.h Remove DEFINE_TRANSPARENT_CASTED_OPERAND_ACCESSORS, folding its 2011-08-22 09:37:03 +00:00
Operator.h Make ~Operator() protected so subclasses can inherit it and not have 2012-10-24 19:17:42 +00:00
Pass.h Use empty parens for empty function parameter list instead of '(void)'. 2012-11-15 16:51:49 +00:00
PassAnalysisSupport.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
PassManager.h Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's. 2012-11-15 00:14:15 +00:00
PassManagers.h Add doInitialization and doFinalization methods to ModulePass's, to allow them to be re-initialized and reused on multiple Module's. 2012-11-15 00:14:15 +00:00
PassRegistry.h
PassSupport.h Mark unimplemented copy constructors and copy assignment operators as LLVM_DELETED_FUNCTION. 2012-09-17 07:16:40 +00:00
SymbolTableListTraits.h Remove unused typedefs gcc4.8 warns about. 2012-09-05 17:55:46 +00:00
TargetTransformInfo.h CostModel: add support for Vector Insert and Extract. 2012-11-02 22:31:56 +00:00
Type.h Teach Type::getPointerAddressSpace to look through pointer vectors 2012-11-01 09:37:49 +00:00
TypeBuilder.h Move llvm/Support/TypeBuilder.h -> llvm/TypeBuilder.h. This completes 2012-07-15 23:45:24 +00:00
TypeFinder.h Move the "findUsedStructTypes" functionality outside of the Module class. 2012-08-03 00:30:35 +00:00
Use.h Add includes of Compiler.h to fix build bot failures. 2012-09-16 21:50:09 +00:00
User.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
Value.h Remove unnecessary classof()'s 2012-10-11 23:30:49 +00:00
ValueSymbolTable.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