summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix test to be less sensitive to coalescing.Jakob Stoklund Olesen2011-05-051-2/+3
| | | | | | This should unbreak llvm-gcc-i386-linux-selfhost. llvm-svn: 130927
* Prepare remaining tests for -join-physreg going away.Jakob Stoklund Olesen2011-05-0415-34/+48
| | | | llvm-svn: 130893
* Fix a batch of x86 tests to be coalescer independent.Jakob Stoklund Olesen2011-05-047-29/+38
| | | | | | | | Most of these tests require a single mov instruction that can come either before or after a 2-addr instruction. -join-physregs changes the behavior, but the results are equivalent. llvm-svn: 130891
* Give this test an explicit register allocator, so that it can work even ifDan Gohman2011-05-041-1/+1
| | | | | | the default register allocator is changed. llvm-svn: 130883
* SjLj EH could produce a machine basic block that legitimately has more than oneBill Wendling2011-05-041-0/+93
| | | | | | | | | | | | | landing pad as its successor. SjLj exception handling jumps to the correct landing pad via a switch statement that's generated right before code-gen. Loosen the constraint in the machine instruction verifier to allow for this. Note, this isn't the most rigorous check since we cannot determine where that switch statement came from. But it's marginally better than turning this check off when SjLj exceptions are used. <rdar://problem/9187612> llvm-svn: 130881
* Re-commit r130862 with a minor change to avoid an iterator running off the ↵Eli Friedman2011-05-042-2/+24
| | | | | | | | | | edge in some cases. Original message: Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130877
* This test fails on ARM. The test shouldn't explicitly specify alignment (and ↵Galina Kistanova2011-05-041-4/+4
| | | | | | alignment 4 is wrong) and requires hard-float. llvm-svn: 130875
* Back out r130862; it appears to be breaking bootstrap.Eli Friedman2011-05-042-24/+2
| | | | llvm-svn: 130867
* Teach MachineCSE how to do simple cross-block CSE involving physregs. This ↵Eli Friedman2011-05-042-2/+24
| | | | | | allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130862
* Fix more register and coalescing dependencies.Jakob Stoklund Olesen2011-05-044-9/+7
| | | | llvm-svn: 130859
* Explicitly request physreg coalesing for a bunch of Thumb2 unit tests.Jakob Stoklund Olesen2011-05-047-7/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | These tests all follow the same pattern: mov r2, r0 movs r0, #0 $CMP r2, r1 it eq moveq r0, #1 bx lr The first 'mov' can be eliminated by rematerializing 'movs r0, #0' below the test instruction: $CMP r0, r1 mov.w r0, #0 it eq moveq r0, #1 bx lr So far, only physreg coalescing can do that. The register allocators won't yet split live ranges just to eliminate copies. They can learn, but this particular problem is not likely to show up in real code. It only appears because r0 is used for both the function argument and return value. llvm-svn: 130858
* FileCheckize and break dependence on coalescing order.Jakob Stoklund Olesen2011-05-041-8/+6
| | | | llvm-svn: 130856
* Explicitly request -join-physregs for some tests that depend on it.Jakob Stoklund Olesen2011-05-042-2/+2
| | | | llvm-svn: 130855
* Do not emit location expression size twice.Devang Patel2011-05-041-0/+59
| | | | llvm-svn: 130854
* Remove LLVM IR metadata in test case committed in r130847.Akira Hatanaka2011-05-041-6/+3
| | | | llvm-svn: 130849
* Prevent instructions using $gp from being placed between a jalr and the ↵Akira Hatanaka2011-05-042-1/+36
| | | | | | instruction that restores the clobbered $gp. llvm-svn: 130847
* Producing a DW_FORM_addr for DW_AT_stmt_list is probably correct, butRafael Espindola2011-05-041-0/+19
| | | | | | | | | | | it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. llvm-svn: 130846
* Add variations on: max(x,y) >= min(x,z) folds to true. This isn't that common,Duncan Sands2011-05-041-0/+88
| | | | | | | | but according to my super-optimizer there are only two missed simplifications of -instsimplify kind when compiling bzip2, and this is one of them. It amuses me to have bzip2 be perfectly optimized as far as instsimplify goes! llvm-svn: 130840
* Don't depend on the physreg coalescing order.Jakob Stoklund Olesen2011-05-042-5/+4
| | | | llvm-svn: 130818
* Don't run this test through -regalloc=basic.Jakob Stoklund Olesen2011-05-041-1/+0
| | | | | | | The basic allocator is really bad about hinting, so it doesn't eliminate all copies when physreg joining is disabled. llvm-svn: 130817
* Fix register-dependent XCore testsJakob Stoklund Olesen2011-05-041-6/+3
| | | | llvm-svn: 130816
* Fix register-dependent test in MSP430.Jakob Stoklund Olesen2011-05-041-1/+1
| | | | llvm-svn: 130815
* Remove some random comments that snuck in from somewhere.Eric Christopher2011-05-041-4/+0
| | | | llvm-svn: 130812
* Fix a bunch of ARM tests to be register allocation independent.Jakob Stoklund Olesen2011-05-038-30/+30
| | | | llvm-svn: 130800
* Replace the "movnt" intrinsics with a native store + nontemporal metadata bit.Bill Wendling2011-05-032-0/+37
| | | | | | <rdar://problem/8460511> llvm-svn: 130791
* Implement some basic simplifications involving min/max, for exampleDuncan Sands2011-05-031-0/+145
| | | | | | | | max(a,b) >= a -> true. According to my super-optimizer, these are by far the most common simplifications (of the -instsimplify kind) that occur in the testsuite and aren't caught by -std-compile-opts. llvm-svn: 130780
* Make the test less likely to fail with minor changes.Evan Cheng2011-05-031-1/+1
| | | | llvm-svn: 130778
* Remove test for iOS divmod function, since that is disabled for now.Bob Wilson2011-05-031-58/+0
| | | | llvm-svn: 130769
* Add a few ARM coprocessor intrinsics. Testcases includedBruno Cardoso Lopes2011-05-031-0/+39
| | | | llvm-svn: 130763
* Pass --disable-cfi to llc.Rafael Espindola2011-05-033-3/+3
| | | | llvm-svn: 130754
* xmm0 is an implicit parameter in this and so shouldn't be in theEric Christopher2011-05-031-0/+9
| | | | | | | | string template. Fixes rdar://8493866 llvm-svn: 130747
* Add an unfolded offset field to LSR's Formula record. This is used toDan Gohman2011-05-031-0/+80
| | | | | | | | model constants which can be added to base registers via add-immediate instructions which don't require an additional register to materialize the immediate. llvm-svn: 130743
* Pass -disable-cfi to llc.Rafael Espindola2011-05-021-1/+1
| | | | llvm-svn: 130713
* Fix PR9579: when simplifying a compare to "true" or "false", and it wasDuncan Sands2011-05-021-0/+15
| | | | | | a vector compare, generate a vector result rather than i1 (and crashing). llvm-svn: 130706
* Move some rem transforms out of instcombine and into instsimplify.Duncan Sands2011-05-021-0/+17
| | | | | | | This automagically provides a transform noticed by my super-optimizer as occurring quite often: "rem x, (select cond, x, 1)" -> 0. llvm-svn: 130694
* Add 130690 back.Rafael Espindola2011-05-022-4/+2
| | | | llvm-svn: 130693
* Revert while I debug the tests that use march but not mtriple.Rafael Espindola2011-05-022-2/+4
| | | | llvm-svn: 130691
* Move ppc OS X to cfi too. I am building it on an old ppc mini, but it will ↵Rafael Espindola2011-05-022-4/+2
| | | | | | take some time. llvm-svn: 130690
* Add r130623 back now that ELF has been fixed to work with -fno-dwarf2-cfi-asm.Rafael Espindola2011-05-016-16/+20
| | | | llvm-svn: 130658
* GCC uses a different encoding of pointers in the FDE when usingRafael Espindola2011-05-011-0/+38
| | | | | | -fno-dwarf2-cfi-asm. Implement the same behavior. llvm-svn: 130637
* Revert the previous patch while I figure out how to make llvm-gccRafael Espindola2011-04-306-20/+16
| | | | | | less agressive about disabling cfi on linux :-( llvm-svn: 130626
* Enable CFI on OS X.Rafael Espindola2011-04-306-16/+20
| | | | | | | | | | | | | | | Currently the output should be almost identical to the one produced by CodeGen to make the transition easier. The only two differences I know of are: * Some files get an extra advance loc of size 0. This will be fixed when relaxations are enabled. * The optimization of declaring an EH symbol as an external variable is not implemented. This is a subset of adding the nounwind attribute, so we if really this at -O0 we should probably do it at the IL level. llvm-svn: 130623
* InstCombine: Turn (zext A) udiv (zext B) into (zext (A udiv B)). Same for ↵Benjamin Kramer2011-04-301-2/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | urem or constant B. This obviously helps a lot if the division would be turned into a libcall (think i64 udiv on i386), but div is also one of the few remaining instructions on modern CPUs that become more expensive when the bitwidth gets bigger. This also helps register pressure on i386 when dividing chars, divb needs two 8-bit parts of a 16 bit register as input where divl uses two registers. int foo(unsigned char a) { return a/10; } int bar(unsigned char a, unsigned char b) { return a/b; } compiles into (x86_64) _foo: imull $205, %edi, %eax shrl $11, %eax ret _bar: movzbl %dil, %eax divb %sil, %al movzbl %al, %eax ret llvm-svn: 130615
* Use SimplifyDemandedBits on div instructions.Benjamin Kramer2011-04-301-0/+7
| | | | | | This folds away silly stuff like (a&255)/1000 -> 0. llvm-svn: 130614
* FileCheckize.Benjamin Kramer2011-04-301-1/+30
| | | | llvm-svn: 130613
* Allow folded spills in test.Jakob Stoklund Olesen2011-04-301-2/+2
| | | | llvm-svn: 130599
* Weekly fix of register allocation dependent unit tests.Jakob Stoklund Olesen2011-04-307-33/+40
| | | | llvm-svn: 130567
* Make FastEmit_ri_ try a bit harder to succeed for supported operations; ↵Eli Friedman2011-04-291-2/+10
| | | | | | FastEmit_i can fail for non-Thumb2 ARM. Makes ARMSimplifyAddress work correctly, and reduces the number of fast-isel bailouts on non-Thumb ARM. llvm-svn: 130560
* Switch to ImmLeaf (which can be used by FastISel) for a few more common ↵Eli Friedman2011-04-291-5/+29
| | | | | | ARM/Thumb2 patterns. llvm-svn: 130552
* Fix run-line, again. :(Eli Friedman2011-04-291-1/+1
| | | | llvm-svn: 130540
OpenPOWER on IntegriCloud