llvm-6502/test/CodeGen/Thumb2
Bob Wilson 7d24705f65 Change register allocation order for ARM VFP and NEON registers to put the
callee-saved registers at the end of the lists.  Also prefer to avoid using
the low registers that are in register subclasses required by certain
instructions, so that those registers will more likely be available when needed.
This change makes a huge improvement in spilling in some cases.  Thanks to
Jakob for helping me realize the problem.

Most of this patch is fixing the testsuite.  There are quite a few places
where we're checking for specific registers.  I changed those to wildcards
in places where that doesn't weaken the tests.  The spill-q.ll and
thumb2-spill-q.ll tests stopped spilling with this change, so I added a bunch
of live values to force spills on those tests.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-10-08 06:15:13 +00:00
..
2009-07-17-CrossRegClassCopy.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-07-21-ISelBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-07-23-CPIslandBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-07-30-PEICrash.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-01-WrongLDRBOpc.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-02-CoalescerBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-04-CoalescerAssert.ll Remove the arm_aapcscc marker from the tests. It is the default 2010-06-15 19:04:29 +00:00
2009-08-04-CoalescerBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-04-ScavengerAssert.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-04-SubregLoweringBug2.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-04-SubregLoweringBug3.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-04-SubregLoweringBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-06-SpDecBug.ll Remove the arm_aapcscc marker from the tests. It is the default 2010-06-15 19:04:29 +00:00
2009-08-07-CoalescerBug.ll
2009-08-07-NeonFPBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-08-ScavengerAssert.ll Remove the arm_aapcscc marker from the tests. It is the default 2010-06-15 19:04:29 +00:00
2009-08-10-ISelBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-08-21-PostRAKill4.ll Move thumb2 tests to the thumb2 directory 2010-09-17 20:34:09 +00:00
2009-09-01-PostRAProlog.ll Move thumb2 tests to the thumb2 directory 2010-09-17 20:34:09 +00:00
2009-09-28-ITBlockBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-10-15-ITBlockBranch.ll Now that register allocation properly considers reserved regs, simplify the 2010-09-02 18:14:29 +00:00
2009-11-01-CopyReg2RegBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-11-11-ScavengerAssert.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-11-13-STRDBug.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2009-12-01-LoopIVUsers.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-01-06-TailDuplicateLabels.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-01-19-RemovePredicates.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-02-11-phi-cycle.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-02-24-BigStack.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-03-08-addi12-ccout.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-03-15-AsmCCClobber.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-04-15-DynAllocBug.ll Re-apply r112883: 2010-09-03 18:37:12 +00:00
2010-04-26-CopyRegCrash.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-05-24-rsbs.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
2010-06-14-NEONCoalescer.ll Change register allocation order for ARM VFP and NEON registers to put the 2010-10-08 06:15:13 +00:00
2010-06-19-ITBlockCrash.ll Fix a crash caused by dereference of MBB.end(). rdar://8110842 2010-06-20 00:54:38 +00:00
2010-06-21-TailMergeBug.ll Simplify ARM callee-saved register handling by removing the distinction 2010-09-20 19:32:20 +00:00
2010-08-10-VarSizedAllocaBug.ll Re-apply r110655 with fixes. Epilogue must restore sp from fp if the function stack frame has a var-sized object. 2010-08-10 19:30:19 +00:00
bfi.ll Add combiner patterns to more effectively utilize the BFI (bitfield insert) 2010-07-17 03:30:54 +00:00
bfx.ll
carry.ll
cortex-fp.ll Change register allocation order for ARM VFP and NEON registers to put the 2010-10-08 06:15:13 +00:00
crash.ll Add alignment arguments to all the NEON load/store intrinsics. 2010-08-27 17:13:24 +00:00
cross-rc-coalescing-1.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
cross-rc-coalescing-2.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
dg.exp
div.ll Report error if codegen tries to instantiate a ARM target when the cpu does support it. e.g. cortex-m* processors. 2010-08-11 07:17:46 +00:00
frameless2.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
frameless.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
ifcvt-neon.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
large-stack.ll Teach the (non-MC) instruction printer to use the cannonical names for push/pop, 2010-09-17 22:36:38 +00:00
ldr-str-imm12.ll Now that register allocation properly considers reserved regs, simplify the 2010-09-02 18:14:29 +00:00
load-global.ll
lsr-deficiency.ll Now that register allocation properly considers reserved regs, simplify the 2010-09-02 18:14:29 +00:00
machine-licm-vdup.ll Fix NEON VLD pseudo instruction itineraries that were incorrectly copied from 2010-09-09 05:40:26 +00:00
machine-licm.ll Change register allocation order for ARM VFP and NEON registers to put the 2010-10-08 06:15:13 +00:00
mul_const.ll
pic-load.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
thumb2-adc.ll
thumb2-add2.ll
thumb2-add3.ll
thumb2-add4.ll
thumb2-add5.ll
thumb2-add6.ll
thumb2-add.ll
thumb2-and2.ll update tests for smarter BIC usage 2010-07-20 16:16:48 +00:00
thumb2-and.ll
thumb2-asr2.ll
thumb2-asr.ll
thumb2-barrier.ll - Add subtarget feature -mattr=+db which determine whether an ARM cpu has the 2010-08-11 06:22:01 +00:00
thumb2-bcc.ll
thumb2-bfc.ll
thumb2-bic.ll
thumb2-branch.ll Fix a bug which prevented tail merging of return instructions in 2010-05-03 14:35:47 +00:00
thumb2-call-tc.ll Temporarily disable tail calls on ARM to work around some linker problems. 2010-08-13 22:43:33 +00:00
thumb2-call.ll Remove tail call to preserve this test. A tail 2010-06-03 21:57:48 +00:00
thumb2-cbnz.ll Allow ARM if-converter to be run after post allocation scheduling. 2010-06-18 23:09:54 +00:00
thumb2-clz.ll
thumb2-cmn2.ll
thumb2-cmn.ll
thumb2-cmp2.ll
thumb2-cmp.ll ARM/Thumb2: Fix a misselect in getARMCmp, when attempting to adjust a signed 2010-08-25 16:58:05 +00:00
thumb2-eor2.ll
thumb2-eor.ll PR7458: Try commuting Thumb2 instruction operands to put them into 2-address 2010-06-24 16:50:20 +00:00
thumb2-ifcvt1-tc.ll Temporarily disable tail calls on ARM to work around some linker problems. 2010-08-13 22:43:33 +00:00
thumb2-ifcvt1.ll Remove tail call. A tail call version will follow. 2010-06-04 00:03:37 +00:00
thumb2-ifcvt2.ll Allow ARM if-converter to be run after post allocation scheduling. 2010-06-18 23:09:54 +00:00
thumb2-ifcvt3.ll Reapply my if-conversion cleanup from svn r106939 with fixes. 2010-06-29 00:55:23 +00:00
thumb2-jtb.ll
thumb2-ldm.ll Make this test not use tail calls. A tail call 2010-06-03 21:53:01 +00:00
thumb2-ldr_ext.ll
thumb2-ldr_post.ll
thumb2-ldr_pre.ll
thumb2-ldr.ll
thumb2-ldrb.ll
thumb2-ldrd.ll
thumb2-ldrh.ll
thumb2-lsl2.ll
thumb2-lsl.ll
thumb2-lsr2.ll
thumb2-lsr3.ll
thumb2-lsr.ll
thumb2-mla.ll
thumb2-mls.ll
thumb2-mov.ll
thumb2-mul.ll
thumb2-mulhi.ll
thumb2-mvn2.ll
thumb2-mvn.ll
thumb2-neg.ll
thumb2-orn2.ll
thumb2-orn.ll
thumb2-orr2.ll
thumb2-orr.ll
thumb2-pack.ll Change ARM PKHTB and PKHBT instructions to use a shift_imm operand to avoid 2010-08-17 17:23:19 +00:00
thumb2-rev16.ll
thumb2-rev.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-ror2.ll
thumb2-ror.ll
thumb2-rsb2.ll
thumb2-rsb.ll
thumb2-sbc.ll Improve 64-subtraction of immediates when parts of the immediate can fit 2010-07-14 17:45:16 +00:00
thumb2-select_xform.ll Move ARM if-conversion before post-ra scheduling. 2010-06-18 23:32:07 +00:00
thumb2-select.ll
thumb2-shifter.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-smla.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-smul.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-spill-q.ll Change register allocation order for ARM VFP and NEON registers to put the 2010-10-08 06:15:13 +00:00
thumb2-str_post.ll
thumb2-str_pre.ll
thumb2-str.ll
thumb2-strb.ll
thumb2-strh.ll
thumb2-sub2.ll
thumb2-sub3.ll Improve 64-subtraction of immediates when parts of the immediate can fit 2010-07-14 17:45:16 +00:00
thumb2-sub4.ll
thumb2-sub5.ll
thumb2-sub.ll
thumb2-sxt_rot.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-tbb.ll
thumb2-tbh.ll Remove arm_apcscc from the test files. It is the default and doing this 2010-06-17 15:18:27 +00:00
thumb2-teq2.ll
thumb2-teq.ll
thumb2-tst2.ll
thumb2-tst.ll
thumb2-uxt_rot.ll Cleanup of ARMv7M support. Move hardware divide and Thumb2 extract/pack 2010-05-05 23:44:43 +00:00
thumb2-uxtb.ll update tests for smarter BIC usage 2010-07-20 16:16:48 +00:00
tls1.ll
tls2.ll