summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86
Commit message (Collapse)AuthorAgeFilesLines
* Re-apply r84295, with fixes to how the loop "top" and "bottom" blocks areDan Gohman2009-10-203-1/+280
| | | | | | | | | tracked. Instead of trying to manually keep track of these locations while doing complex modifications, just recompute them when they're needed. This fixes a bug in which the TopMBB and BotMBB were not correctly updated, leading to invalid transformations. llvm-svn: 84598
* If the physical register being spilled does not have an interval, spill its ↵Evan Cheng2009-10-201-0/+54
| | | | | | sub-registers instead. llvm-svn: 84586
* Revert r84295, this unbreaks llvm-gcc bootstrap on x86-64/linuxAnton Korobeynikov2009-10-192-208/+1
| | | | llvm-svn: 84516
* Fix PR5247, "lock addq" pattern (and other atomics), it DOES modify EFLAGS.Torok Edwin2009-10-191-0/+69
| | | | | | | LLC was scheduling compares before the adds causing wrong branches to be taken in programs, resulting in misoptimized code wherever atomic adds where used. llvm-svn: 84485
* Add support for matching shuffle patterns with palignr.Nate Begeman2009-10-193-15/+70
| | | | llvm-svn: 84459
* Turn on post-alloc scheduling for x86.Evan Cheng2009-10-1813-50/+38
| | | | llvm-svn: 84431
* Enhance CodePlacementOpt's unconditional intra-loop branch elimination logicDan Gohman2009-10-172-1/+208
| | | | | | | | | | | | to be more general and understand more varieties of loops. Teach CodePlacementOpt to reorganize the basic blocks of a loop so that they are contiguous. This also includes a fair amount of logic for preserving fall-through edges while doing so. This fixes a BranchFolding-ism where blocks which can't be made to use a fall-through edge and don't conveniently fit anywhere nearby get tossed out to the end of the function. llvm-svn: 84295
* Update tests to use FileCheckMon P Wang2009-10-1619-55/+70
| | | | llvm-svn: 84282
* Add test case for r84279Mon P Wang2009-10-161-0/+12
| | | | llvm-svn: 84280
* Move zext and sext casts fed by loads into the same block as theDan Gohman2009-10-162-2/+22
| | | | | | | load, to help SelectionDAG fold them into the loads, unless conditions are unfavorable. llvm-svn: 84271
* Make CodePlacementOpt align loops, rather than loop headers. TheDan Gohman2009-10-152-2/+13
| | | | | | | | | | header is just the entry block to the loop, and it needn't be at the top of the loop in the code layout. Remove the code that suppressed loop alignment for outer loops, so that outer loops are aligned. llvm-svn: 84158
* When LiveVariables is adding implicit-def to model "partial dead", add the ↵Evan Cheng2009-10-141-0/+15
| | | | | | earlyclobber marker if the superreg def has it. llvm-svn: 84153
* Fix this test to account for a movl $0 being emitted as an xor now,Dan Gohman2009-10-141-2/+3
| | | | | | and convert it to FileCheck. llvm-svn: 84065
* Don't forget to mark RAX as live-out of the function when arranging forDan Gohman2009-10-121-1/+10
| | | | | | | | | it to hold the address of an sret return value, for x86-64 ABI purposes. Also, fix the test that was originally intended to test this to actually test it, using FileCheck. llvm-svn: 83853
* Fix the x86 test-shrink optimization so that it doesn't shrink comparisonsDan Gohman2009-10-091-0/+23
| | | | | | | | when one of the bits being tested would end up being the sign bit in the narrower type, and a signed comparison is being performed, since this would change the result of the signed comparison. This fixes PR5132. llvm-svn: 83670
* Fix a logic error that caused non-rematable loop invariants loads to be ↵Evan Cheng2009-10-091-0/+264
| | | | | | licm'ed out of loop. llvm-svn: 83622
* Reset kill markers after live interval is reconstructed.Evan Cheng2009-10-091-0/+34
| | | | llvm-svn: 83608
* Fix handling of x86 'R' constraint.Dale Johannesen2009-10-071-0/+18
| | | | llvm-svn: 83499
* 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
OpenPOWER on IntegriCloud