summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86
Commit message (Collapse)AuthorAgeFilesLines
* Instead of printing unnecessary basic block labels as labels inDan Gohman2009-10-062-3/+2
| | | | | | | | | | verbose-asm mode, print comments instead. This eliminates a non-comment difference between verbose-asm mode and non-verbose-asm mode. Also, factor out the relevant code out of all the targets and into target-independent code. llvm-svn: 83392
* Restore the -post-RA-scheduler flag as an override for the target ↵David Goodwin2009-10-011-0/+33
| | | | | | specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string. llvm-svn: 83215
* Remove regression that requires post-RA scheduling from a target that does ↵David Goodwin2009-09-301-33/+0
| | | | | | not use that scheduler. llvm-svn: 83128
* Add a CHECK line to check the position of the second divsd.Dan Gohman2009-09-281-0/+1
| | | | llvm-svn: 83009
* Coalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg ofEvan Cheng2009-09-281-1/+1
| | | | | | | | | | | physical registers. This is especially critical for the later two since they start the live interval of a super-register. e.g. %DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1 If this instruction is eliminated, the register scavenger will not be happy as D0 is not defined previously. This fixes PR5055. llvm-svn: 82968
* implement and document support for filecheck variables. ThisChris Lattner2009-09-271-16/+16
| | | | | | | | | | allows matching and remembering a string and then matching and verifying that the string occurs later in the file. Change X86/xor.ll to use this in some cases where the test was checking for an arbitrary register allocation decision. llvm-svn: 82891
* Convert comparisons like (x == infinity) to (x >= infinity) on targetsDan Gohman2009-09-261-0/+76
| | | | | | where FCMP_OEQ is not legal and FCMP_OGE is, such as x86. llvm-svn: 82861
* Unbreak MachineLICM for instructions that reference RIP on x86-64 too.Dan Gohman2009-09-252-18/+42
| | | | llvm-svn: 82825
* Fix MachineSink to be able to sink instructions that use physical registersDan Gohman2009-09-251-0/+18
| | | | | | | | which have no defs anywhere in the function. In particular, this fixes sinking of instructions that reference RIP on x86-64, which is currently being modeled as a register. llvm-svn: 82815
* Flip -disable-post-RA-scheduler to -post-RA-scheduler.Evan Cheng2009-09-251-2/+2
| | | | llvm-svn: 82803
* Add readonly to some sin and cos calls; transformationsDale Johannesen2009-09-252-13/+13
| | | | | | being checked aren't valid without it. llvm-svn: 82786
* reimplement the regex matching strategy by building a singleChris Lattner2009-09-251-8/+8
| | | | | | | | | | | | | | | | | regex and matching it instead of trying to match chunks at a time. Matching chunks at a time broke with check lines like CHECK: foo {{.*}}bar because the .* would eat the entire rest of the line and bar would never match. Now we just escape the fixed strings for the user, so that something like: CHECK: a() {{.*}}??? is matched as: CHECK: {{a\(\) .*\?\?\?}} transparently "under the covers". llvm-svn: 82779
* convert testcases to filecheck.Chris Lattner2009-09-252-18/+66
| | | | llvm-svn: 82759
* remove a large unreduced testcaseChris Lattner2009-09-251-85/+0
| | | | llvm-svn: 82756
* Clean up LiveVariables and change how it deals with partial updates and ↵Evan Cheng2009-09-242-1/+92
| | | | | | kills. This also eliminate the horrible check which scan forward to the end of the basic block. It should be faster and more accurate. llvm-svn: 82676
* Add nounwind.Evan Cheng2009-09-231-1/+1
| | | | llvm-svn: 82637
* Fix a obvious logic error.Evan Cheng2009-09-231-0/+124
| | | | llvm-svn: 82610
* Fix a pasto. Also simplify for Bill's benefit.Evan Cheng2009-09-221-1/+1
| | | | llvm-svn: 82505
* Clean up spill weight computation. Also some changes to give loop inductionEvan Cheng2009-09-215-6/+42
| | | | | | | | | | variable increment / decrement slighter high priority. This has major impact on some micro-benchmarks. On MultiSource/Applications and spec tests, it's a minor win. It also reduce 256.bzip instruction count by 8%, 55 on 164.gzip on i386 / Darwin. llvm-svn: 82485
* Add a comment mentioning the rdar number associated with this test.Dan Gohman2009-09-211-0/+1
| | | | llvm-svn: 82471
* Add support for rematerializing FsFLD0SS and FsFLD0SD as constant-poolDan Gohman2009-09-211-0/+95
| | | | | | loads in order to reduce register pressure. llvm-svn: 82470
* Recognize SSE min and max opportunities in even more cases.Dan Gohman2009-09-212-4/+323
| | | | | | | | | | And fix a bug with the behavior of min/max instructions formed from fcmp uge comparisons. Also, use FiniteOnlyFPMath() for this code instead of UnsafeFPMath, as it is more specific. llvm-svn: 82466
* When computing live intervals for earlyclobber operands,Dale Johannesen2009-09-201-0/+15
| | | | | | | | | | we pushed the beginning of the interval back 1, so the interval would overlap with inputs that die. We were also pushing the end of the interval back 1, though, which means the earlyclobber didn't overlap with other output operands. Don't do this. PR 4964. llvm-svn: 82342
* Fix PR4926. When target hook EmitInstrWithCustomInserter() insert new basic ↵Evan Cheng2009-09-191-0/+30
| | | | | | blocks and update CFG, it should also inform sdisel of the changes so the phi source operands will come from the right basic blocks. llvm-svn: 82311
* Delete the label names from this test to make it less fragile.Dan Gohman2009-09-181-4/+4
| | | | llvm-svn: 82276
* Make a new X8632_MachoTargetObjectFile TLOF implementation whose Chris Lattner2009-09-181-3/+4
| | | | | | | | | | | | | | | | | | | | | | getSymbolForDwarfGlobalReference is smart enough to know that it needs to register the stub it references with MachineModuleInfoMachO, so that it gets emitted at the end of the file. Move stub emission from X86ATTAsmPrinter::doFinalization to the new X86ATTAsmPrinter::EmitEndOfAsmFile asmprinter hook. The important thing here is that EmitEndOfAsmFile is called *after* the ehframes are emitted, so we get all the stubs. This allows us to remove a gross hack from the asmprinter where it would "just know" that it needed to output stubs for personality functions. Now this is all driven from a consistent interface. The testcase change is just reordering the expected output now that the stubs come out after the ehframe instead of before. This also unblocks other changes that Bill wants to make. llvm-svn: 82269
* Add support for using the FLAGS result of or, xor, and and instructionsDan Gohman2009-09-183-4/+91
| | | | | | | on x86, to avoid explicit test instructions. A few existing tests changed due to arbitrary register allocation differences. llvm-svn: 82263
* make this testcase check darwin32 alsoChris Lattner2009-09-171-0/+8
| | | | llvm-svn: 82182
* rename testChris Lattner2009-09-171-0/+0
| | | | llvm-svn: 82181
* convert to filecheckChris Lattner2009-09-171-1/+4
| | | | llvm-svn: 82179
* rename fileChris Lattner2009-09-171-0/+0
| | | | llvm-svn: 82178
* Remove test cases using -regalloc=simple.Daniel Dunbar2009-09-172-22/+0
| | | | llvm-svn: 82130
* Fix PR4910: Broken logic in coalescer means when a physical register ↵Evan Cheng2009-09-171-0/+64
| | | | | | liveness is being shortened, the sub-registers were not. The symptom is the register allocator could not find a free register for this particular test. llvm-svn: 82108
* fix PR4984 by ensuring that fastisel adds properly sign extended GEP ↵Chris Lattner2009-09-151-2/+22
| | | | | | | | displacement values to machineinstrs. llvm-svn: 81886
* rename testChris Lattner2009-09-151-0/+0
| | | | llvm-svn: 81884
* convert to filecheckChris Lattner2009-09-151-4/+20
| | | | llvm-svn: 81882
* Restore a comment that was lost in the merge.Dan Gohman2009-09-151-0/+4
| | | | llvm-svn: 81857
* this is failing on linux hosts, force a triple.Chris Lattner2009-09-151-1/+1
| | | | llvm-svn: 81833
* merge one more in.Chris Lattner2009-09-152-12/+10
| | | | llvm-svn: 81824
* merge some more cmov tests into cmov.llChris Lattner2009-09-153-87/+95
| | | | llvm-svn: 81823
* merge two cmov tests into one.Chris Lattner2009-09-153-49/+48
| | | | llvm-svn: 81822
* Don't pull a load through a callseq_start if the load's chainDan Gohman2009-09-151-0/+23
| | | | | | | | | has multiple uses, as one of the other uses may be on a path to a different node above the callseq_start, because that leads to a cyclic graph. This problem is exposed when -combiner-global-alias-analysis is used. This fixes PR4880. llvm-svn: 81821
* On x86-64, the 32-bit cmov doesn't actually clear the high 32-bit ofDan Gohman2009-09-151-0/+19
| | | | | | its result if the condition is false. llvm-svn: 81814
* merge the linux cpool/jtbl pic tests into pic.ll and convert to filecheck.Chris Lattner2009-09-133-92/+100
| | | | | | | Change the picbase symbol on non-darwin systems from ".Lllvm$4.$piclabel" to ".L4$pb". The actual name doesn't matter and the darwin name is shorter. llvm-svn: 81688
* Add -mattr=+sse2 to the -march=x86 version of this test. WithoutDan Gohman2009-09-121-1/+1
| | | | | | | sse, this code falls back to SelectionDAG isel which uses an x87 instruction, which is fine, but not what this test is testing for. llvm-svn: 81656
* Convert more tests to avoid llvm-as.Dan Gohman2009-09-1125-52/+28
| | | | llvm-svn: 81545
* Change tests from "opt %s" to "opt < %s" so that opt doesn't see theDan Gohman2009-09-114-5/+5
| | | | | | | | input filename so that opt doesn't print the input filename in the output so that grep lines in the tests don't unintentionally match strings in the input filename. llvm-svn: 81537
* turn on -experimental-asm-printer for x86 / AT&T by default.Chris Lattner2009-09-112-494/+494
| | | | llvm-svn: 81532
* Follow up to 81494. When the folded reload is narrowed to a 32-bit load then ↵Evan Cheng2009-09-111-1/+1
| | | | | | change the destination register to a 32-bit one or add a sub-register index. llvm-svn: 81496
* It's not legal to fold a load from a narrower stack slot into a wider ↵Evan Cheng2009-09-111-0/+48
| | | | | | | | | | | | instruction. If done, the instruction does a 64-bit load and that's not safe. This can happen we a subreg_to_reg 0 has been coalesced. One exception is when the instruction that folds the load is a move, then we can simply turn it into a 32-bit load from the stack slot. rdar://7170444 llvm-svn: 81494
OpenPOWER on IntegriCloud