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 Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
ELFTargetAsmInfo.h Do not propagate ELF-specific stuff (data.rel) into other targets. This simplifies code and also ensures correctness. 2009-03-30 15:27:43 +00:00
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 Tidy up #includes, deleting a bunch of unnecessary #includes. 2009-01-05 17:59:02 +00:00
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 Implement ComputeLatency for MachineInstr ScheduleDAGs. Factor 2008-11-21 00:12:10 +00:00
TargetIntrinsicInfo.h Added support to have TableGen provide information if an intrinsic (core 2009-02-24 23:17:49 +00:00
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 Registry.h should not depend on CommandLine.h. 2009-01-16 07:02:28 +00:00
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 Move target independent td files from lib/Target/ to include/llvm/Target so they can be distributed along with the header files. 2008-11-24 07:34:46 +00:00
TargetSelectionDAG.td Make IntInits and ListInits typed. This helps deduce types of !if and 2009-06-08 20:23:18 +00:00
TargetSubtarget.h Add initial support for back-scheduling address computations, 2008-12-16 03:35:01 +00:00