llvm/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 Update ARM DAGtoDAG for matching UBFX instruction for unsigned bitfield 2010-04-22 23:24:18 +00:00
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 Start function numbering at 0. 2010-04-17 16:29:15 +00:00
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 Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-add4.ll
thumb2-add5.ll
thumb2-add6.ll
thumb2-add.ll Delete useless trailing semicolons. 2010-01-05 17:55:26 +00:00
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 Fix tests. 2009-11-01 18:13:29 +00:00
thumb2-bfc.ll Fix Thumb2 failures by converting them to FileCheck. 2009-10-27 06:31:02 +00:00
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 Fix Thumb2 failures by converting them to FileCheck. 2009-10-27 06:31:02 +00:00
thumb2-cmn2.ll Fix Thumb2 failures by converting them to FileCheck. 2009-10-27 06:31:02 +00:00
thumb2-cmn.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
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 Fix Thumb2 failures by converting them to FileCheck. 2009-10-27 06:31:02 +00:00
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 Enable arm jumpt table adjustment. 2009-11-17 21:24:11 +00:00
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 Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-ldrb.ll
thumb2-ldrd.ll
thumb2-ldrh.ll Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-lsl2.ll
thumb2-lsl.ll
thumb2-lsr2.ll
thumb2-lsr3.ll
thumb2-lsr.ll
thumb2-mla.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-mls.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-mov.ll Consolidate test files 2009-10-31 22:20:56 +00:00
thumb2-mul.ll
thumb2-mulhi.ll
thumb2-mvn2.ll
thumb2-mvn.ll
thumb2-neg.ll
thumb2-orn2.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-orn.ll Miss two, PR5307. 2009-11-22 15:35:28 +00:00
thumb2-orr2.ll Miss two, PR5307. 2009-11-22 15:35:28 +00:00
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 Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-rsb2.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-rsb.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
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 Fix Thumb2 failures by converting them to FileCheck. 2009-10-27 06:31:02 +00:00
thumb2-str_pre.ll Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-str.ll Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-strb.ll Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-strh.ll Added sub-formats to the NeonI/NeonXI instructions to further refine the NEONFrm 2010-03-17 17:52:21 +00:00
thumb2-sub2.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
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 Convert to FileCheck 2009-11-16 20:04:15 +00:00
thumb2-teq.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
thumb2-tst2.ll
thumb2-tst.ll Convert Thumb2 tests to FileCheck for PR5307. 2009-11-22 15:18:27 +00:00
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