llvm-6502/include/llvm/CodeGen
Bill Wendling 0f940c95d4 Initial commit of the machine code LICM pass. It successfully hoists this:
_foo:
        li r2, 0
LBB1_1: ; bb
        li r5, 0
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr 

to:

_foo:
        li r2, 0
        li r5, 0
LBB1_1: ; bb
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr

ZOMG!! :-)

Moar to come...


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44687 91177308-0d34-0410-b5e6-96231b3b80d8
2007-12-07 21:42:31 +00:00
..
AsmPrinter.h Fix PIC jump table codegen on x86-32/linux. In fact, such thing should be applied 2007-11-14 09:18:41 +00:00
BreakCriticalMachineEdge.h Wow. I definitely shouldn't write code when I'm tird. 2007-11-13 19:56:28 +00:00
CallingConvLower.h propagate struct size and alignment of byval arguments to the DAG 2007-08-10 14:44:42 +00:00
Collector.h Collector is the base class for garbage collection code generators. 2007-09-29 02:13:43 +00:00
CollectorMetadata.h CollectorMetadata abstractly describes stack maps for a function. 2007-09-27 22:18:46 +00:00
Collectors.h My previous Registry.h header, as well as Collectors.h, which is the 2007-09-27 19:34:27 +00:00
DwarfWriter.h Landing pad-less eh for PPC. 2007-01-29 18:51:14 +00:00
ELFRelocation.h Implement review feedback. 2007-04-30 23:54:10 +00:00
FileWriters.h Fixed comments. 2007-02-08 06:05:08 +00:00
IntrinsicLowering.h Add explicit keywords. 2007-07-05 20:40:15 +00:00
LinkAllCodegenComponents.h Remove simple scheduler. 2007-10-01 20:44:07 +00:00
LiveInterval.h Replace the odd kill# hack with something less fragile. 2007-11-29 09:49:23 +00:00
LiveIntervalAnalysis.h Fix for PR1831: if all defs of an interval are re-materializable, then it's a preferred spill candiate. 2007-12-06 00:01:56 +00:00
LiveVariables.h Live interval splitting: 2007-11-17 00:40:40 +00:00
MachineBasicBlock.h Fix misue of iterator pointing to erased object. Uncovered by 2007-06-29 02:45:24 +00:00
MachineCodeEmitter.h Allow target to specify alignment for function stub. 2006-11-16 20:04:54 +00:00
MachineConstantPool.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
MachineDominators.h Add accessor for getting the underlying templated type. This is necessary for templated LoopInfo. 2007-11-27 03:33:40 +00:00
MachineFrameInfo.h Fix prolific source of 'possible loss of data' warnings. 2007-04-27 14:43:05 +00:00
MachineFunction.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
MachineFunctionPass.h Make MachineFunctionPass::runOnFunction non-virtual. Subclasses override 2007-07-05 20:39:35 +00:00
MachineInstr.h Shrinkfy. 2007-11-17 00:31:16 +00:00
MachineInstrBuilder.h Clean up sub-register implementation by moving subReg information back to 2007-11-14 07:59:08 +00:00
MachineJumpTableInfo.h Compile fix. 2007-11-12 13:43:23 +00:00
MachineLocation.h Add the 'explicit' keyword to several constructors that accept one 2007-03-23 18:44:11 +00:00
MachineLoopInfo.h Fix a stupid error that Chris pointed out. 2007-12-07 04:04:55 +00:00
MachineModuleInfo.h Provide a way to update DescGlobals cache directly. 2007-11-30 00:51:33 +00:00
MachinePassRegistry.h switch the sched unit map over to use a DenseMap instead of std::map. This 2007-02-03 01:34:13 +00:00
MachineRelocation.h Make enum-valued bitfield large enough to avoid interpretation as negative values in VC++. 2007-04-21 16:29:37 +00:00
MachORelocation.h New file for the MachORelocation structure. It doesn't have to be tied to the 2007-02-03 02:36:17 +00:00
Passes.h Initial commit of the machine code LICM pass. It successfully hoists this: 2007-12-07 21:42:31 +00:00
RegAllocRegistry.h Breaking out specialized classes. 2006-08-02 12:27:50 +00:00
RegisterCoalescer.h Cosmetic. 2007-10-12 08:40:44 +00:00
RegisterScavenging.h Add explicit keywords and remove spurious trailing semicolons. 2007-08-27 14:50:10 +00:00
RuntimeLibcalls.h More ppcf128 issues (maybe the last)? 2007-10-19 00:59:18 +00:00
SchedGraphCommon.h Added an automatic cast to "std::ostream*" etc. from OStream. We then can 2006-12-17 05:15:13 +00:00
ScheduleDAG.h If a node that defines a physical register that is expensive to copy. The 2007-10-05 01:39:18 +00:00
SchedulerRegistry.h Breaking out specialized classes. 2006-08-02 12:27:50 +00:00
SelectionDAG.h Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack 2007-11-13 00:44:25 +00:00
SelectionDAGISel.h If the source and destination pointers in an llvm.memmove are known 2007-08-27 16:26:13 +00:00
SelectionDAGNodes.h Fix a typo in a comment. 2007-11-19 15:36:19 +00:00
SSARegMap.h Clean up sub-register implementation by moving subReg information back to 2007-11-14 07:59:08 +00:00
ValueTypes.h Fix some load/store logic that would be wrong for 2007-11-09 08:57:19 +00:00
ValueTypes.td Add MVT::fAny for overloading intrinsics on floating-point types. 2007-08-16 21:57:19 +00:00