llvm-6502/include/llvm/Target
Evan Cheng 358dec5180 Part 1.
- Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent.
- Allow targets to specify alternative register allocation orders based on allocation hint.

Part 2.
- Use the register allocation hint system to implement more aggressive load / store multiple formation.
- Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g.
v1025 = LDR v1024, 0
v1026 = LDR v1024, 0
=>
v1025,v1026 = LDRD v1024, 0

If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair.

- Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions.

This is work in progress, not yet enabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73381 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-15 08:28:29 +00:00
..
DarwinTargetAsmInfo.h
ELFTargetAsmInfo.h
SubtargetFeature.h Propagate CPU string out of SubtargetFeatures 2009-05-23 19:50:50 +00:00
Target.td Revert 72707 and 72709, for the moment. 2009-06-02 03:12:52 +00:00
TargetAsmInfo.h Add directive to declare external globals. 2009-04-29 08:23:18 +00:00
TargetCallingConv.td Use CallConvLower.h and TableGen descriptions of the calling conventions 2009-04-17 19:07:39 +00:00
TargetData.h Clarify a comment. 2009-05-12 17:08:34 +00:00
TargetELFWriterInfo.h Introduce new BinaryObject (blob) class, ELF Writer modified to use it. BinaryObject.h by Aaron Gray 2009-06-14 07:53:21 +00:00
TargetFrameInfo.h
TargetInstrDesc.h Add new TargetInstrDesc::hasImplicitUseOfPhysReg and 2009-04-12 07:26:51 +00:00
TargetInstrInfo.h Move getInstrOperandRegClass from the scheduler to TargetInstrInfo. 2009-05-05 00:30:09 +00:00
TargetInstrItineraries.h
TargetIntrinsicInfo.h
TargetJITInfo.h First patch in the direction of splitting MachineCodeEmitter in two subclasses: 2009-05-30 20:51:52 +00:00
TargetLowering.h Change IndexedModeAction representation. 2009-06-09 00:19:10 +00:00
TargetMachine.h The attached patches implement most of the ARM AAPCS-VFP hard float 2009-06-08 22:53:56 +00:00
TargetMachineRegistry.h
TargetMachOWriterInfo.h
TargetOptions.h The attached patches implement most of the ARM AAPCS-VFP hard float 2009-06-08 22:53:56 +00:00
TargetRegisterInfo.h Part 1. 2009-06-15 08:28:29 +00:00
TargetSchedule.td
TargetSelectionDAG.td Make IntInits and ListInits typed. This helps deduce types of !if and 2009-06-08 20:23:18 +00:00
TargetSubtarget.h