summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/X86
Commit message (Collapse)AuthorAgeFilesLines
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-11/+12
| | | | llvm-svn: 126203
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-8/+9
| | | | llvm-svn: 126202
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-3/+4
| | | | llvm-svn: 126201
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-2/+2
| | | | llvm-svn: 126200
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-3/+4
| | | | llvm-svn: 126199
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-2/+3
| | | | llvm-svn: 126198
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-7/+8
| | | | llvm-svn: 126197
* Relax expressions and add explicit triplets -linux and -win32.NAKAMURA Takumi2011-02-221-6/+7
| | | | llvm-svn: 126196
* test/CodeGen/X86/vec_cast.ll: Mark as XFAIL: migw,win32 for workaround of ↵NAKAMURA Takumi2011-02-221-1/+2
| | | | | | PR8311. llvm-svn: 126195
* test/CodeGen/X86/red-zone.ll: Add explicit -mtriple=x86_64-linux.NAKAMURA Takumi2011-02-221-1/+1
| | | | | | Redzone is not applicable on Win64. llvm-svn: 126194
* VirtRegRewriter assertion fix.Andrew Trick2011-02-221-0/+50
| | | | | | | Apparently it's ok for multiple operands to "kill" the same register. Fixes PR9237. llvm-svn: 126190
* Roll out r126169 and r126170 in an attempt to fix the selfhost bot.Cameron Zwarich2011-02-221-35/+0
| | | | llvm-svn: 126185
* Merge information about the number of zero, one, and sign bits of live-out ↵Cameron Zwarich2011-02-221-0/+35
| | | | | | | | | registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. llvm-svn: 126170
* Revert r125960, it's breaking darwin10 bootstrap.Eric Christopher2011-02-211-24/+0
| | | | llvm-svn: 126163
* Revert r124611 - "Keep track of incoming argument's location while emitting ↵Devang Patel2011-02-211-84/+0
| | | | | | | | | | | LiveIns." In other words, do not keep track of argument's location. The debugger (gdb) is not prepared to see line table entries for arguments. For the debugger, "second" line table entry marks beginning of function body. This requires some coordination with debugger to get this working. - The debugger needs to be aware of prolog_end attribute attached with line table entries. - The compiler needs to accurately mark prolog_end in line table entries (at -O0 and at -O1+) llvm-svn: 126155
* Target/X86/X86FastISel: [PR6275] Fix Win32's dllimport function with fastisel.NAKAMURA Takumi2011-02-211-0/+5
| | | | | | | "dllimport" function must not be GlobalVariable, but Function. It is enough to check with GlobalValue. test/CodeGen/X86/dll-linkage.ll is updated to check llc -O0. llvm-svn: 126110
* The signed version of our "magic number" computation for the integer ↵Cameron Zwarich2011-02-211-1/+1
| | | | | | | | | | | | | approximation of a constant had a minor typo introduced when copying it from the book, which caused it to favor negative approximations over positive approximations in many cases. Positive approximations require fewer operations beyond the multiplication. In the case of division by 3, we still generate code that is a single instruction larger than GCC's code. llvm-svn: 126097
* Make RecursivelyDeleteDeadPHINode delete a phi node that has no users and add aNick Lewycky2011-02-201-43/+0
| | | | | | | | | test for that. With this change, test/CodeGen/X86/codegen-dce.ll no longer finds any instructions to DCE, so delete the test. Also renamed J and JP to I and IP in RecursivelyDeleteDeadPHINode. llvm-svn: 126088
* Fix 9267; Add vector zext support.Nadav Rotem2011-02-201-0/+69
| | | | | | | | The DAGCombiner folds the zext into complex load instructions. This patch prevents this optimization on vectors since none of the supported targets knows how to perform load+vector_zext in one instruction. llvm-svn: 126080
* DIE numbers do not add any value in this test. Devang Patel2011-02-191-5/+5
| | | | llvm-svn: 126008
* Do not lose debug info of an inlined function argument even if the argument ↵Devang Patel2011-02-181-0/+86
| | | | | | | | is only used through GEPs. This time with a fix that avoids using invalidated DenseMap iterator. llvm-svn: 125984
* Reapply r114997 now that the buildbots have been updated.Bill Wendling2011-02-181-0/+24
| | | | llvm-svn: 125960
* Roll out r125794 to help diagnose the llvm-gcc-i386-linux-selfhost failure.Cameron Zwarich2011-02-181-86/+0
| | | | llvm-svn: 125830
* Do not lose debug info of an inlined function argument even if the argument ↵Devang Patel2011-02-171-0/+86
| | | | | | is only used through GEPs. llvm-svn: 125794
* Triple::MinGW64 is deprecated and removed. We can use Triple::MinGW32 generally.NAKAMURA Takumi2011-02-172-2/+2
| | | | | | No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32. In llvm side, i686 and x64 can be treated as similar way. llvm-svn: 125747
* The change for PR9190 wasn't quite right. We need to avoid making theEric Christopher2011-02-161-0/+41
| | | | | | | | | transformation if we can't legally create a build vector of the correct type. Check that we can make the transformation first, and add a TODO to refactor this code with similar cases. Fixes: PR9223 and rdar://9000350 llvm-svn: 125631
* Add testcase for PR9190.Eric Christopher2011-02-161-0/+35
| | | | llvm-svn: 125630
* Ignore DBG_VALUE machine instructions while constructing instruction ranges ↵Devang Patel2011-02-151-2/+2
| | | | | | | | based on location info. Machine instruction range consisting of only DBG_VALUE MIs only contributes consecutive labels in assembly output, which is harmless, and empty scope entry in DebugInfo, which confuses debugger tools. llvm-svn: 125577
* Switch llvm to using comdats. For now always use groups with a singleRafael Espindola2011-02-142-3/+3
| | | | | | section. llvm-svn: 125526
* fix PR9210 by implementing some type legalization logic for Chris Lattner2011-02-141-0/+8
| | | | | | vector fp conversions. llvm-svn: 125482
* Enhance ComputeMaskedBits to know that aligned frameindexesChris Lattner2011-02-131-3/+14
| | | | | | | | | | | | | | | | | have their low bits set to zero. This allows us to optimize out explicit stack alignment code like in stack-align.ll:test4 when it is redundant. Doing this causes the code generator to start turning FI+cst into FI|cst all over the place, which is general goodness (that is the canonical form) except that various pieces of the code generator don't handle OR aggressively. Fix this by introducing a new SelectionDAG::isBaseWithConstantOffset predicate, and using it in places that are looking for ADD(X,CST). The ARM backend in particular was missing a lot of addressing mode folding opportunities around OR. llvm-svn: 125470
* when legalizing extremely wide shifts, make sure that Chris Lattner2011-02-131-0/+12
| | | | | | | | | the shift amounts are in a suitably wide type so that we don't generate out of range constant shift amounts. This fixes PR9028. llvm-svn: 125458
* After 3-addressifying a two-address instruction, update the register maps; ↵Evan Cheng2011-02-101-10/+22
| | | | | | add a missing check when considering whether it's profitable to commute. rdar://8977508. llvm-svn: 125259
* Reduce test case, smaller is better.Devang Patel2011-02-071-789/+33
| | | | llvm-svn: 125019
* Target/X86: Tweak allocating shadow area (aka home) on Win64. It must be ↵NAKAMURA Takumi2011-02-054-20/+17
| | | | | | enough for caller to allocate one. llvm-svn: 124949
* Merge .debug_loc entries whenever possible to reduce debug_loc size.Devang Patel2011-02-041-0/+827
| | | | llvm-svn: 124904
* Mark that the return is using EAX so that we don't use it for some otherNick Lewycky2011-02-041-0/+14
| | | | | | purpose. Fixes PR9080! llvm-svn: 124903
* DebugLoc associated with a machine instruction is used to emit location ↵Devang Patel2011-02-042-2/+72
| | | | | | entries. DebugLoc associated with a DBG_VALUE is used to identify lexical scope of the variable. After register allocation, while inserting DBG_VALUE remember original debug location for the first instruction and reuse it, otherwise dwarf writer may be mislead in identifying the variable's scope. llvm-svn: 124845
* Add -march to fix the bots.Rafael Espindola2011-02-031-1/+1
| | | | llvm-svn: 124774
* Fix PR9127 by reversing the operands even if they have more then one use.Rafael Espindola2011-02-031-0/+12
| | | | | | | | Reversing the operands allows us to fold, but doesn't force us to. Also, at this point the DAG is still being optimized, so the check for hasOneUse is not very precise. llvm-svn: 124773
* Keep track of incoming argument's location while emitting LiveIns.Devang Patel2011-01-311-0/+84
| | | | llvm-svn: 124611
* Teach DAGCombine to fold fold (sra (trunc (sr x, c1)), c2) -> (trunc (sra x, ↵Benjamin Kramer2011-01-301-0/+9
| | | | | | | | | | | | | | | | | | c1+c2) when c1 equals the amount of bits that are truncated off. This happens all the time when a smul is promoted to a larger type. On x86-64 we now compile "int test(int x) { return x/10; }" into movslq %edi, %rax imulq $1717986919, %rax, %rax movq %rax, %rcx shrq $63, %rcx sarq $34, %rax <- used to be "shrq $32, %rax; sarl $2, %eax" addl %ecx, %eax This fires 96 times in gcc.c on x86-64. llvm-svn: 124559
* Re-apply r124518 with fix. Watch out for invalidated iterator.Evan Cheng2011-01-291-5/+6
| | | | llvm-svn: 124526
* Revert r124518. It broke Linux self-host.Evan Cheng2011-01-291-6/+5
| | | | llvm-svn: 124522
* Re-commit r124462 with fixes. Tail recursion elim will now dup ret into ↵Evan Cheng2011-01-291-5/+6
| | | | | | unconditional predecessor to enable TCE on demand. llvm-svn: 124518
* Revert r124462. There are a few big regressions that I need to fix first.Evan Cheng2011-01-281-6/+5
| | | | llvm-svn: 124478
* Add a triple.Rafael Espindola2011-01-281-1/+1
| | | | llvm-svn: 124471
* Print the visibility of declarations.Rafael Espindola2011-01-281-0/+11
| | | | llvm-svn: 124468
* - Stop simplifycfg from duplicating "ret" instructions into unconditionalEvan Cheng2011-01-282-55/+6
| | | | | | | | branches. PR8575, rdar://5134905, rdar://8911460. - Allow codegen tail duplication to dup small return blocks after register allocation is done. llvm-svn: 124462
* Target/X86: Tweak win64's tailcall.NAKAMURA Takumi2011-01-262-6/+34
| | | | llvm-svn: 124272
OpenPOWER on IntegriCloud