llvm-6502/test
Evan Cheng 66ac53165e Change Thumb2 jumptable codegen to one that uses two level jumps:
Before:
      adr r12, #LJTI3_0_0
      ldr pc, [r12, +r0, lsl #2]
LJTI3_0_0:
      .long    LBB3_24
      .long    LBB3_30
      .long    LBB3_31
      .long    LBB3_32

After:
      adr r12, #LJTI3_0_0
      add pc, r12, +r0, lsl #2
LJTI3_0_0:
      b.w    LBB3_24
      b.w    LBB3_30
      b.w    LBB3_31
      b.w    LBB3_32

This has several advantages.
1. This will make it easier to optimize this to a TBB / TBH instruction +
   (smaller) table.
2. This eliminate the need for ugly asm printer hack to force the address
   into thumb addresses (bit 0 is one).
3. Same codegen for pic and non-pic.
4. This eliminate the need to align the table so constantpool island pass
   won't have to over-estimate the size.

Based on my calculation, the later is probably slightly faster as well since
ldr pc with shifter address is very slow. That is, it should be a win as long
as the HW implementation can do a reasonable job of branch predict the second
branch.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25 00:33:29 +00:00
..
Analysis FileCheck'ize and expand LDA testcases. 2009-07-23 15:56:53 +00:00
Archive
Assembler Fix assert assembling zero-argument constant GEP. 2009-07-24 21:56:17 +00:00
Bindings/Ocaml Nounwind is not valid for function return values. 2009-05-06 13:51:18 +00:00
Bitcode Don't remove aggregate-typed module level constants before encoding functions 2009-06-12 05:20:12 +00:00
BugPoint Fix regular expression. 2009-06-12 05:39:02 +00:00
CodeGen Change Thumb2 jumptable codegen to one that uses two level jumps: 2009-07-25 00:33:29 +00:00
DebugInfo upgrade 2009-06-23 22:11:37 +00:00
ExecutionEngine remove tests for removed intrinsics. 2009-07-12 21:30:06 +00:00
Feature Derive MDNode from MetadataBase instead of Constant. Emit MDNodes into METADATA_BLOCK in bitcode file. 2009-07-23 01:07:34 +00:00
FrontendAda Adjust this test for recent sroa improvements. 2009-03-12 11:56:12 +00:00
FrontendC Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
FrontendC++ Remove the IA-64 backend. 2009-07-24 00:30:09 +00:00
FrontendFortran These tests are x86 specific. 2009-04-22 10:39:51 +00:00
FrontendObjC This test should be run with -m32. 2009-07-19 22:44:03 +00:00
FrontendObjC++
Integer Converted a1.ll to unittests. 2009-03-24 21:36:09 +00:00
lib In an XFAIL line, treat "XFAIL: foo*bar" as a regular expression to be matched 2009-06-12 05:18:32 +00:00
Linker
LLVMC The 'forward_as' property did not use its second argument. 2009-05-06 01:41:19 +00:00
MC/AsmParser Removed the DumpSymbolsandMacros and LoadSymbolsandMacros MCStreamer API as 2009-07-20 20:25:37 +00:00
Other Add new function attribute - noimplicitfloat 2009-06-05 21:57:13 +00:00
Scripts
TableGen Add some tests of advanced TableGen list functionality. 2009-06-29 20:07:17 +00:00
Transforms merge vector-casts-0.ll into vector-casts.ll 2009-07-23 05:33:39 +00:00
Verifier Dan noticed that the verifier wasn't thoroughly checking uses of 2009-05-29 19:39:36 +00:00
Makefile Fix ocaml tests for 64-bit MacOS systems. LLVM is currently built 2009-07-21 21:56:46 +00:00
Makefile.tests
TestRunner.sh