1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 22:12:57 +02:00
llvm-mirror/include/llvm/CodeGen
Jim Grosbach 61c5ce1bde 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.

llvm-svn: 83467
2009-10-07 17:12:56 +00:00
..
AsmPrinter.h Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. 2009-10-06 02:19:11 +00:00
BinaryObject.h ELF improvements: 2009-08-08 17:29:04 +00:00
BreakCriticalMachineEdge.h
CallingConvLower.h Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson. 2009-09-02 08:44:58 +00:00
DAGISelHeader.h Split EVT into MVT and EVT, the former representing _just_ a primitive type, while 2009-08-11 20:47:22 +00:00
DwarfWriter.h Add support to handle debug info attached to an instruction. 2009-10-06 18:37:31 +00:00
ELFRelocation.h
FastISel.h Fix a name in a comment. 2009-10-05 15:23:17 +00:00
FileWriters.h Add the Object Code Emitter class. Original patch by Aaron Gray, I did some 2009-07-06 05:09:34 +00:00
GCMetadata.h Rename TargetAsmInfo (and its subclasses) to MCAsmInfo. 2009-08-22 20:48:53 +00:00
GCMetadataPrinter.h rename TAI -> MAI, being careful not to make MAILJMP instructions :) 2009-08-22 21:43:10 +00:00
GCs.h
GCStrategy.h
IntrinsicLowering.h
JITCodeEmitter.h Fix a bug where the DWARF emitter in the JIT was not initializing alignment 2009-08-21 21:03:57 +00:00
LatencyPriorityQueue.h
LazyLiveness.h Reapply r77654 with a fix: MachineFunctionPass's getAnalysisUsage 2009-07-31 18:16:33 +00:00
LinkAllAsmWriterComponents.h
LinkAllCodegenComponents.h Remove simple regalloc. It has bit rotted. 2009-09-17 05:48:07 +00:00
LiveInterval.h Renamed MachineInstrIndex to LiveIndex. 2009-10-03 04:21:37 +00:00
LiveIntervalAnalysis.h Renamed MachineInstrIndex to LiveIndex. 2009-10-03 04:21:37 +00:00
LiveStackAnalysis.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
LiveVariables.h Clean up LiveVariables and change how it deals with partial updates and kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate. 2009-09-24 02:15:22 +00:00
MachineBasicBlock.h Revert r82214 completely to fix build. 2009-09-18 09:50:00 +00:00
MachineCodeEmitter.h Update processDebugLoc() so that it can be used to process debug info before and after printing an instruction. 2009-10-06 02:19:11 +00:00
MachineCodeInfo.h
MachineConstantPool.h Mark more constants unsigned, as warned about by icc (#68). 2009-09-06 12:56:52 +00:00
MachineDominators.h Change Pass::print to take a raw ostream instead of std::ostream, 2009-08-23 06:03:38 +00:00
MachineFrameInfo.h Update the description of MachineFrameInfo's OffsetAdjustment. The value of 2009-09-25 05:30:55 +00:00
MachineFunction.h Remove dead code. 2009-09-30 22:43:52 +00:00
MachineFunctionAnalysis.h Give MachineFunctionAnalysis a destructor so it can verify that 2009-08-01 04:19:43 +00:00
MachineFunctionPass.h Remove an unnecessary include. Now we won't have circular include 2009-08-19 23:00:07 +00:00
MachineInstr.h Improve MachineMemOperand handling. 2009-09-25 20:36:54 +00:00
MachineInstrBuilder.h Improve MachineMemOperand handling. 2009-09-25 20:36:54 +00:00
MachineJumpTableInfo.h convert some stuff to work on raw_ostreams instead of std::ostream. 2009-08-23 01:12:47 +00:00
MachineLocation.h
MachineLoopInfo.h Move isLCSSAForm, isLoopInvariant, getCanonicalInductionVariable, 2009-07-13 22:02:44 +00:00
MachineMemOperand.h Move MachineMemOperand::getAlignment out of line, to avoid needing 2009-09-25 23:33:20 +00:00
MachineModuleInfo.h If location info is attached with an instruction then keep track of alloca slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables. 2009-10-01 01:03:26 +00:00
MachineModuleInfoImpls.h move FnStubs/GVSTubs/HiddenGVStub handling out of the X86 asmprinter 2009-09-16 06:25:03 +00:00
MachineOperand.h improve comments. 2009-09-03 06:00:00 +00:00
MachinePassRegistry.h
MachineRegisterInfo.h eliminate all 80-col violations that I have introduced in my recent checkins (and some others more) 2009-08-27 23:44:33 +00:00
MachineRelocation.h
MachORelocation.h
ObjectCodeEmitter.h 1) Proper emit displacements for x86, using absolute relocations where necessary 2009-08-05 00:11:21 +00:00
Passes.h Remove simple regalloc. It has bit rotted. 2009-09-17 05:48:07 +00:00
PseudoSourceValue.h Clarify a comment. 2009-09-27 15:41:19 +00:00
RegAllocRegistry.h Reformat. 2009-07-08 21:57:46 +00:00
RegisterCoalescer.h Delete spurious semicolons. 2009-07-31 18:59:29 +00:00
RegisterScavenging.h Add register-reuse to frame-index register scavenging. When a target uses 2009-10-07 17:12:56 +00:00
RuntimeLibcalls.h Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. 2009-08-10 22:56:29 +00:00
ScheduleDAG.h Fix integer overflow in instruction scheduling. This can happen if we have 2009-09-30 20:15:38 +00:00
ScheduleHazardRecognizer.h Post RA scheduler changes. Introduce a hazard recognizer that uses the target schedule information to accurately model the pipeline. Update the scheduler to correctly handle multi-issue targets. 2009-08-10 15:55:25 +00:00
SchedulerRegistry.h
SelectionDAG.h Improve MachineMemOperand handling. 2009-09-25 20:36:54 +00:00
SelectionDAGISel.h Rename MVT to EVT, in preparation for splitting SimpleValueType out into its own struct type. 2009-08-10 22:56:29 +00:00
SelectionDAGNodes.h INTRINSIC_W_CHAIN and INTRINSIC_VOID do not use MemSDNode. They 2009-10-07 03:00:18 +00:00
ValueTypes.h Add an EVT::getStoreSize function, like getStoreSizeInBits but in bytes. 2009-09-23 20:59:10 +00:00
ValueTypes.td Add a new overloaded EVT::vAny type for use in TableGen to allow intrinsic 2009-08-11 01:14:02 +00:00