1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/test/CodeGen/Thumb2
Evan Cheng c0e7b19ff0 After r147827 and r147902, it's now possible for unallocatable registers to be
live across BBs before register allocation. This miscompiled 197.parser
when a cmp + b are optimized to a cbnz instruction even though the CPSR def
is live-in a successor.
        cbnz    r6, LBB89_12
...
LBB89_12:
        ble     LBB89_1

The fix consists of two parts. 1) Teach LiveVariables that some unallocatable
registers might be liveouts so don't mark their last use as kill if they are.
2) ARM constantpool island pass shouldn't form cbz / cbnz if the conditional
branch does not kill CPSR.

rdar://10676853

llvm-svn: 148168
2012-01-14 01:53:46 +00:00
..
2009-07-17-CrossRegClassCopy.ll
2009-07-21-ISelBug.ll ARM target code clean up. Check for iOS, not Darwin where it makes sense. 2011-12-20 18:26:50 +00:00
2009-07-23-CPIslandBug.ll
2009-07-30-PEICrash.ll
2009-08-01-WrongLDRBOpc.ll
2009-08-02-CoalescerBug.ll Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
2009-08-04-CoalescerAssert.ll
2009-08-04-CoalescerBug.ll Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
2009-08-04-ScavengerAssert.ll Remove support for parsing the "type i32" syntax for defining a numbered 2011-06-19 00:03:46 +00:00
2009-08-04-SubregLoweringBug2.ll
2009-08-04-SubregLoweringBug3.ll
2009-08-04-SubregLoweringBug.ll rip out a ton of intrinsic modernization logic from AutoUpgrade.cpp, which is 2011-06-18 06:05:24 +00:00
2009-08-06-SpDecBug.ll Roll r127459 back in: 2011-03-11 21:52:04 +00:00
2009-08-07-CoalescerBug.ll
2009-08-07-NeonFPBug.ll
2009-08-08-ScavengerAssert.ll
2009-08-10-ISelBug.ll
2009-08-21-PostRAKill4.ll
2009-09-01-PostRAProlog.ll
2009-09-28-ITBlockBug.ll Roll r127459 back in: 2011-03-11 21:52:04 +00:00
2009-10-15-ITBlockBranch.ll Pseudo-ize the t2LDMIA_RET instruction. 2011-06-30 18:25:42 +00:00
2009-11-01-CopyReg2RegBug.ll
2009-11-11-ScavengerAssert.ll
2009-11-13-STRDBug.ll
2009-12-01-LoopIVUsers.ll ARM VLDR/VSTR instructions don't need a size suffix. 2011-11-14 23:03:21 +00:00
2010-01-06-TailDuplicateLabels.ll
2010-01-19-RemovePredicates.ll
2010-02-11-phi-cycle.ll
2010-02-24-BigStack.ll
2010-03-08-addi12-ccout.ll
2010-03-15-AsmCCClobber.ll Upgrade syntax of tests using volatile instructions to use 'load volatile' instead of 'volatile load', which is archaic. 2011-11-27 06:54:59 +00:00
2010-04-15-DynAllocBug.ll
2010-04-26-CopyRegCrash.ll
2010-05-24-rsbs.ll
2010-06-14-NEONCoalescer.ll ARM VLDR/VSTR instructions don't need a size suffix. 2011-11-14 23:03:21 +00:00
2010-06-19-ITBlockCrash.ll
2010-06-21-TailMergeBug.ll Use MachineBranchProbabilityInfo in If-Conversion instead of its own heuristics. 2011-08-03 22:34:43 +00:00
2010-08-10-VarSizedAllocaBug.ll Fix more register and coalescing dependencies. 2011-05-04 19:02:11 +00:00
2010-11-22-EpilogueBug.ll Fix more places which should be checking for iOS, not darwin. 2012-01-04 01:55:04 +00:00
2010-12-03-AddSPNarrowing.ll The Thumb tADDrSPi instruction is not valid when the destination is SP. 2010-12-04 04:40:19 +00:00
2011-04-21-FILoweringBug.ll In Thumb2 mode, lower frame indix references to: 2011-04-22 01:42:52 +00:00
2011-06-07-TwoAddrEarlyClobber.ll Thumb1 register to register MOV instruction is predicable. 2011-06-30 22:10:46 +00:00
2011-12-16-T2SizeReduceAssert.ll Fix a CPSR liveness tracking bug introduced when I converted IT block to bundle. 2011-12-17 01:25:34 +00:00
2012-01-13-CBNZBug.ll After r147827 and r147902, it's now possible for unallocatable registers to be 2012-01-14 01:53:46 +00:00
aligned-constants.ll Fix off-by-one error in bucket sort. 2011-12-16 23:00:05 +00:00
aligned-spill.ll Enable aligned NEON spilling by default. 2012-01-06 22:19:37 +00:00
bfi.ll Fix more register and coalescing dependencies. 2011-05-04 19:02:11 +00:00
bfx.ll
buildvector-crash.ll Fix crash introduced in 116852. 8573915. 2010-10-20 22:03:37 +00:00
carry.ll
constant-islands.ll Consider unknown alignment caused by OptimizeThumb2Instructions(). 2012-01-10 22:32:14 +00:00
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
cross-rc-coalescing-1.ll
cross-rc-coalescing-2.ll Roll r127459 back in: 2011-03-11 21:52:04 +00:00
dg.exp
div.ll These tests are looking for library function names that 2010-11-17 21:57:32 +00:00
frameless2.ll
frameless.ll
ifcvt-neon.ll
large-stack.ll When using the 'push' mnemonic for Thumb2 stmdb, be explicit when it's the 2010-12-03 20:33:01 +00:00
ldr-str-imm12.ll Linear scan is going away. 2011-11-12 22:39:34 +00:00
lsr-deficiency.ll Fix more register allocation sensitive tests. 2011-07-08 00:24:06 +00:00
machine-licm.ll - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function 2011-12-14 02:11:42 +00:00
mul_const.ll
pic-load.ll
thumb2-adc.ll
thumb2-add2.ll
thumb2-add3.ll
thumb2-add4.ll
thumb2-add5.ll
thumb2-add6.ll
thumb2-add.ll FileCheck-ize another test. Reduces the llc invocations from 8 to 1, and 2011-07-02 21:34:52 +00:00
thumb2-and2.ll
thumb2-and.ll
thumb2-asr2.ll
thumb2-asr.ll
thumb2-bcc.ll Convert more tests to new atomic instructions. 2011-09-26 21:36:10 +00:00
thumb2-bfc.ll
thumb2-bic.ll
thumb2-branch.ll Convert more tests to new atomic instructions. 2011-09-26 21:36:10 +00:00
thumb2-call-tc.ll
thumb2-call.ll
thumb2-cbnz.ll Allow machine-cse to look across MBB boundary when cse'ing instructions that 2012-01-10 02:02:58 +00:00
thumb2-clz.ll Manually upgrade the test suite to specify the flag to cttz and ctlz. 2011-12-12 11:59:10 +00:00
thumb2-cmn2.ll
thumb2-cmn.ll Explicitly request physreg coalesing for a bunch of Thumb2 unit tests. 2011-05-04 19:02:07 +00:00
thumb2-cmp2.ll Explicitly request physreg coalesing for a bunch of Thumb2 unit tests. 2011-05-04 19:02:07 +00:00
thumb2-cmp.ll Explicitly request physreg coalesing for a bunch of Thumb2 unit tests. 2011-05-04 19:02:07 +00:00
thumb2-eor2.ll
thumb2-eor.ll
thumb2-ifcvt1-tc.ll
thumb2-ifcvt1.ll Use MachineBranchProbabilityInfo in If-Conversion instead of its own heuristics. 2011-08-03 22:34:43 +00:00
thumb2-ifcvt2.ll Fix more places which should be checking for iOS, not darwin. 2012-01-04 01:55:04 +00:00
thumb2-ifcvt3.ll Last round of fixes for movw + movt global address codegen. 2011-01-21 18:55:51 +00:00
thumb2-jtb.ll
thumb2-ldm.ll Fix more places which should be checking for iOS, not darwin. 2012-01-04 01:55:04 +00:00
thumb2-ldr_ext.ll
thumb2-ldr_post.ll
thumb2-ldr_pre.ll
thumb2-ldr.ll
thumb2-ldrb.ll
thumb2-ldrd.ll Switch a few tests off linearscan. 2011-11-12 19:53:52 +00:00
thumb2-ldrh.ll
thumb2-lsl2.ll
thumb2-lsl.ll
thumb2-lsr2.ll
thumb2-lsr3.ll Make tests more useful. 2011-04-25 10:12:01 +00:00
thumb2-lsr.ll
thumb2-mla.ll
thumb2-mls.ll Update tests. 2011-08-19 22:19:48 +00:00
thumb2-mov.ll Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, 2010-11-17 20:13:28 +00:00
thumb2-mul.ll Update tests. 2011-08-19 22:19:48 +00:00
thumb2-mulhi.ll ARMv7M vs. ARMv7E-M support. 2011-07-01 21:12:19 +00:00
thumb2-mvn2.ll
thumb2-mvn.ll
thumb2-neg.ll
thumb2-orn2.ll
thumb2-orn.ll
thumb2-orr2.ll
thumb2-orr.ll
thumb2-pack.ll
thumb2-rev16.ll
thumb2-rev.ll Change some ARM subtarget features to be single bit yes/no in order to sink them down to MC layer. Also fix tests. 2011-07-07 03:55:05 +00:00
thumb2-ror.ll Teach Thumb2 isel to fold and->rotr ==> ROR. 2011-04-29 14:18:15 +00:00
thumb2-rsb2.ll
thumb2-rsb.ll
thumb2-sbc.ll Don't depend on the optimization reverted in r134067. 2011-06-29 14:07:18 +00:00
thumb2-select_xform.ll - Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function 2011-12-14 02:11:42 +00:00
thumb2-select.ll
thumb2-shifter.ll
thumb2-smla.ll ARMv7M vs. ARMv7E-M support. 2011-07-01 21:12:19 +00:00
thumb2-smul.ll ARMv7M vs. ARMv7E-M support. 2011-07-01 21:12:19 +00:00
thumb2-spill-q.ll Add ARM patterns to match EXTRACT_SUBVECTOR nodes. 2011-01-07 04:59:04 +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 Thumb2 and ARM add/subtract with carry fixes. 2011-04-23 03:55:32 +00:00
thumb2-sub4.ll
thumb2-sub5.ll Thumb2 and ARM add/subtract with carry fixes. 2011-04-23 03:55:32 +00:00
thumb2-sub.ll
thumb2-sxt_rot.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
thumb2-sxt-uxt.ll Fix up the patterns for SXTB, SXTH, UXTB, and UXTH so that they are correctly active without HasT2ExtractPack. PR10611. 2011-08-08 19:49:37 +00:00
thumb2-tbb.ll
thumb2-tbh.ll
thumb2-teq2.ll Improve codegen for select's: 2011-07-13 00:42:17 +00:00
thumb2-teq.ll Improve codegen for select's: 2011-07-13 00:42:17 +00:00
thumb2-tst2.ll Improve codegen for select's: 2011-07-13 00:42:17 +00:00
thumb2-tst.ll Improve codegen for select's: 2011-07-13 00:42:17 +00:00
thumb2-uxt_rot.ll manually upgrade a bunch of tests to modern syntax, and remove some that 2011-06-17 03:14:27 +00:00
thumb2-uxtb.ll Recommit r129383. PreRA scheduler heuristic fixes: VRegCycle, TokenFactor latency. 2011-04-13 00:38:32 +00:00
tls1.ll
tls2.ll