llvm-6502/include/llvm/CodeGen
Evan Cheng cc41586b9d Much improved pic jumptable codegen:
Then:
        call    "L1$pb"
"L1$pb":
        popl    %eax
		...
LBB1_1: # entry
        imull   $4, %ecx, %ecx
        leal    LJTI1_0-"L1$pb"(%eax), %edx
        addl    LJTI1_0-"L1$pb"(%ecx,%eax), %edx
        jmpl    *%edx

        .align  2
        .set L1_0_set_3,LBB1_3-LJTI1_0
        .set L1_0_set_2,LBB1_2-LJTI1_0
        .set L1_0_set_5,LBB1_5-LJTI1_0
        .set L1_0_set_4,LBB1_4-LJTI1_0
LJTI1_0:
        .long    L1_0_set_3
        .long    L1_0_set_2

Now:
        call    "L1$pb"
"L1$pb":
        popl    %eax
		...
LBB1_1: # entry
        addl    LJTI1_0-"L1$pb"(%eax,%ecx,4), %eax
        jmpl    *%eax

		.align  2
		.set L1_0_set_3,LBB1_3-"L1$pb"
		.set L1_0_set_2,LBB1_2-"L1$pb"
		.set L1_0_set_5,LBB1_5-"L1$pb"
		.set L1_0_set_4,LBB1_4-"L1$pb"
LJTI1_0:
        .long    L1_0_set_3
        .long    L1_0_set_2


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43924 91177308-0d34-0410-b5e6-96231b3b80d8
2007-11-09 01:32:10 +00:00
..
AsmPrinter.h Much improved pic jumptable codegen: 2007-11-09 01:32:10 +00:00
CallingConvLower.h
Collector.h
CollectorMetadata.h
Collectors.h
DwarfWriter.h
ELFRelocation.h
FileWriters.h
IntrinsicLowering.h
LinkAllCodegenComponents.h
LiveInterval.h Update comments. 2007-10-17 02:16:40 +00:00
LiveIntervalAnalysis.h There are times when the coalescer would not coalesce away a copy but the copy 2007-11-03 07:20:12 +00:00
LiveVariables.h Oops, forgot to commit this file. 2007-11-08 01:22:24 +00:00
MachineBasicBlock.h
MachineCodeEmitter.h
MachineConstantPool.h
MachineDominators.h Fix MachineDominators' getAnalysisUsage. 2007-11-08 01:22:53 +00:00
MachineFrameInfo.h
MachineFunction.h
MachineFunctionPass.h
MachineInstr.h Optionally create a MachineInstr without default implicit operands. 2007-10-13 02:23:01 +00:00
MachineInstrBuilder.h
MachineJumpTableInfo.h
MachineLocation.h
MachineModuleInfo.h
MachinePassRegistry.h
MachineRelocation.h
MachORelocation.h
Passes.h Make BreakCriticalMachineEdges available as a pass that can be depended on. 2007-11-08 22:20:23 +00:00
RegAllocRegistry.h
RegisterCoalescer.h
RegisterScavenging.h
RuntimeLibcalls.h More ppcf128 issues (maybe the last)? 2007-10-19 00:59:18 +00:00
SchedGraphCommon.h
ScheduleDAG.h
SchedulerRegistry.h
SelectionDAG.h Add support for byval function whose argument is not 32 bit aligned. 2007-10-19 10:41:11 +00:00
SelectionDAGISel.h
SelectionDAGNodes.h Fix comment typos. 2007-10-25 12:28:12 +00:00
SSARegMap.h
ValueTypes.h Document the fact that the verifier currently requires the 2007-10-16 13:34:11 +00:00
ValueTypes.td