llvm-6502/include/llvm
Jim Grosbach b58f498f75 Add register-reuse to frame-index register scavenging. When a target uses
a virtual register to eliminate a frame index, it can return that register
and the constant stored there to PEI to track. When scavenging to allocate
for those registers, PEI then tracks the last-used register and value, and
if it is still available and matches the value for the next index, reuses
the existing value rather and removes the re-materialization instructions.
Fancier tracking and adjustment of scavenger allocations to keep more
values live for longer is possible, but not yet implemented and would likely
be better done via a different, less special-purpose, approach to the
problem.

eliminateFrameIndex() is modified so the target implementations can return
the registers they wish to be tracked for reuse.

ARM Thumb1 implements and utilizes the new mechanism. All other targets are
simply modified to adjust for the changed eliminateFrameIndex() prototype.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83467 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-07 17:12:56 +00:00
..
ADT Add a comment explaining how DenseMap::insert works, because it is not 2009-10-07 09:23:56 +00:00
Analysis Remove an unnnecessary LLVMContext argument in 2009-10-05 16:36:26 +00:00
Assembly
Bitcode Write and read metadata attachments. 2009-09-18 19:26:43 +00:00
CodeGen Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
CompilerDriver Add a way to query the number of input files. 2009-09-28 01:16:42 +00:00
Config Fix a compile failure introduced by r82675 on MinGW which doesn't have 2009-09-25 21:07:20 +00:00
ExecutionEngine
MC Allow symbols to start from the digit if target requests it. This allows, e.g. pinning 2009-09-18 16:57:42 +00:00
Support Rename enum NumOccurrences to NumOccurrencesFlag since there is a member named NumOccurrences. 2009-10-04 05:25:42 +00:00
System Revert "Get rid of GetProcessId in Win32/Program.inc.", this breaks 2009-09-22 04:44:56 +00:00
Target Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
Transforms remove predicate simplifier, it never got the last bugs beaten 2009-10-06 16:59:46 +00:00
AbstractTypeUser.h
Argument.h
Attributes.h
AutoUpgrade.h
BasicBlock.h
CallGraphSCCPass.h
CallingConv.h
CMakeLists.txt
Constant.h
Constants.h For the NSWSub support in the builder to actually be useable, 2009-09-26 15:35:35 +00:00
DerivedTypes.h
Function.h
GlobalAlias.h
GlobalValue.h
GlobalVariable.h
InlineAsm.h
InstrTypes.h Round out the API for the new optimization flags. 2009-09-27 21:33:04 +00:00
Instruction.def
Instruction.h Instruction::clone does not need to take an LLVMContext&. Remove that and 2009-09-27 07:38:41 +00:00
Instructions.h Round out the API for the new optimization flags. 2009-09-27 21:33:04 +00:00
IntrinsicInst.h
Intrinsics.h
Intrinsics.td
IntrinsicsAlpha.td
IntrinsicsARM.td
IntrinsicsBlackfin.td
IntrinsicsCellSPU.td
IntrinsicsPowerPC.td
IntrinsicsX86.td
IntrinsicsXCore.td
LinkAllPasses.h remove predicate simplifier, it never got the last bugs beaten 2009-10-06 16:59:46 +00:00
LinkAllVMCore.h
Linker.h
LLVMContext.h Make LLVMContext's pImpl member const. 2009-10-06 17:43:57 +00:00
Metadata.h Add removeMD(). 2009-09-29 20:42:25 +00:00
Module.h
ModuleProvider.h
OperandTraits.h
Operator.h add a helper method. 2009-09-21 05:52:45 +00:00
Pass.h
PassAnalysisSupport.h
PassManager.h
PassManagers.h Move the dominator verification code out of special code embedded within 2009-09-28 00:27:48 +00:00
PassSupport.h
SymbolTableListTraits.h Forward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by itself 2009-09-30 00:08:25 +00:00
Type.h Make getPointerTo return a const PointerType* rather than 2009-10-07 07:35:19 +00:00
TypeSymbolTable.h
Use.h
User.h
Value.h s/class Metadata/class MetadataContext/g 2009-09-28 21:41:20 +00:00
ValueSymbolTable.h