summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAge
* Add a basic test for the SRETPromotion pass.Matthijs Kooijman2008-08-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54466 91177308-0d34-0410-b5e6-96231b3b80d8
* Move two tests from SRETPromotion to Inline, since they only call opt -inline.Matthijs Kooijman2008-08-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54465 91177308-0d34-0410-b5e6-96231b3b80d8
* Print section flags ok on platforms, which use '@' as comment string. Fix test.Anton Korobeynikov2008-08-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54460 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-enable elimination of unnecessary SUBREG_TO_REG instructions inDan Gohman2008-08-07
| | | | | | | | | | | | LowerSubregs, and fix an x86-64 isel bug that this exposed. SUBREG_TO_REG for x86-64 implicit zero extension is only safe for isel to generate when the source is known to always have zeros in the high 32 bits. The EXTRACT_SUBREG instruction does not clear the high 32 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54444 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an extra example that shouldn't get an and instruction.Dan Gohman2008-08-07
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54443 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-introduce the 8-bit subreg zext-inreg patterns for x86-32,Dan Gohman2008-08-06
| | | | | | | | this time using MOV32to32_ and MOV16to16_. Thanks to Evan for suggesting this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54418 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a shufflevector instcombine that was emitting invalid masks indicesDan Gohman2008-08-06
| | | | | | | when it meant to be emitting undef indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54417 91177308-0d34-0410-b5e6-96231b3b80d8
* PR2535, not PR2355.Evan Cheng2008-08-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54416 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2355: bug in ChangeCompareStride. When the loop termination compare is ↵Evan Cheng2008-08-06
| | | | | | the only use of its iv stride, the stride can be eliminated by moving it to another stride. If the scale is negative, swap the predicate instead of using a inverse predicate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54415 91177308-0d34-0410-b5e6-96231b3b80d8
* optimize a common idiom generated by clang for bitfield access, PR2638.Chris Lattner2008-08-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54408 91177308-0d34-0410-b5e6-96231b3b80d8
* Zap sitofp/fptoui pairs. In all cases when the sign difference Chris Lattner2008-08-06
| | | | | | | | matters, the result is undefined anyway. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54396 91177308-0d34-0410-b5e6-96231b3b80d8
* Reinstate this optimization, but without the miscompile. Thanks to Bill forNick Lewycky2008-08-06
| | | | | | | tracking down that this was breaking llvm-gcc bootstrap on Linux. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54394 91177308-0d34-0410-b5e6-96231b3b80d8
* Just grep for through the LL code instead of the ASM codeBill Wendling2008-08-06
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54389 91177308-0d34-0410-b5e6-96231b3b80d8
* Add default architecture.Bill Wendling2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54384 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for PR2629.Bill Wendling2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54377 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2620: Fix X86cmppd selection code so it expects operands to be v2f64.Evan Cheng2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54376 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2596: out of bound reference.Evan Cheng2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54375 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert r53282. This was causing a miscompile on Linux. Also, the transformationBill Wendling2008-08-05
| | | | | | | looks bogus. Please see PR2629 for details on why this is breaking things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54372 91177308-0d34-0410-b5e6-96231b3b80d8
* Update the remaining tests not to use -disable-correct-folding, and remove twoOwen Anderson2008-08-05
| | | | | | | that couldn't be updated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54359 91177308-0d34-0410-b5e6-96231b3b80d8
* One more -disable-correct-folding case removed.Owen Anderson2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54358 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove another -disable-correct-folding use.Owen Anderson2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54357 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate another use of -disable-correct-folding.Owen Anderson2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54356 91177308-0d34-0410-b5e6-96231b3b80d8
* This check is unnecessary, and getting rid of it removes a use of ↵Owen Anderson2008-08-05
| | | | | | -disable-correct-folding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54355 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the need for -disable-correct-folding from this test.Owen Anderson2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54354 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the AsmWriter to not print extra spaces after parameter attributes.Dan Gohman2008-08-05
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54351 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2568: Fix bug that cause redudant kill marker after its live interval ↵Evan Cheng2008-08-05
| | | | | | has been extended due to coalescing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54346 91177308-0d34-0410-b5e6-96231b3b80d8
* Update these tests to work by disabling the new correct CFG generation. ↵Owen Anderson2008-08-04
| | | | | | This flag should ONLY be used to for tests like these. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54334 91177308-0d34-0410-b5e6-96231b3b80d8
* PR2621: Improvements to the SCEV AddRec binomial expansion. This Eli Friedman2008-08-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | version uses a new algorithm for evaluating the binomial coefficients which is significantly more efficient for AddRecs of more than 2 terms (see the comments in the code for details on how the algorithm works). It also fixes some bugs: it removes the arbitrary length restriction for AddRecs, it fixes the silent generation of incorrect code for AddRecs which require a wide calculation width, and it fixes an issue where we were incorrectly truncating the iteration count too far when evaluating an AddRec expression narrower than the induction variable. There are still a few related issues I know of: I think there's still an issue with the SCEVExpander expansion of AddRec in terms of the width of the induction variable used. The hack to avoid generating too-wide integers shouldn't be necessary; instead, the callers should be considering the cost of the expansion before expanding it (in addition to not expanding too-wide integers, we might not want to expand expressions that are really expensive, especially when optimizing for size; calculating an length-17 32-bit AddRec currently generates about 250 instructions of straight-line code on X86). Also, for long 32-bit AddRecs on X86, CodeGen really sucks at scheduling the code. I'm planning on filing follow-up PRs for these issues. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54332 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix SDISel lowering of PHI nodes to use ComputeValueVTs.Dan Gohman2008-08-04
| | | | | | | | This allows it to work correctly on aggregate values. This fixes PR2623. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54331 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix SDISel lowering of zeroinitializer and undef to use ComputeValueVTs.Dan Gohman2008-08-04
| | | | | | | | This allows it to work correctly on nested aggregate values. This fixes PR2625. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54330 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sse2 explicit, for non-x86 hosts.Dale Johannesen2008-07-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54251 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve dagcombining for sext-loads and sext-in-reg nodes.Dan Gohman2008-07-31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54239 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't look for leaf values to store when lowering stores ofDan Gohman2008-07-30
| | | | | | | empty structs. This fixes PR2612. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54226 91177308-0d34-0410-b5e6-96231b3b80d8
* I missed this file in r54223. movzbl is now used insteadDan Gohman2008-07-30
| | | | | | | of movzbw here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54224 91177308-0d34-0410-b5e6-96231b3b80d8
* Reapply r54147 with a constraint to only use the 8-bitDan Gohman2008-07-30
| | | | | | | | | | | | subreg form on x86-64, to avoid the problem with x86-32 having GPRs that don't have 8-bit subregs. Also, change several 16-bit instructions to use equivalent 32-bit instructions. These have a smaller encoding and avoid partial-register updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54223 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support for overloading intrinsics (atomics) based on pointersMon P Wang2008-07-30
| | | | | | | | to different address spaces. This alters the naming scheme for those intrinsics, e.g., atomic.load.add.i32 => atomic.load.add.i32.p0i32 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54195 91177308-0d34-0410-b5e6-96231b3b80d8
* Another SCEV issue from PR2607; essentially the same issue, but this Eli Friedman2008-07-30
| | | | | | | | | | | | | time applying to the implicit comparison in smin expressions. The correct way to transform an inequality into the opposite inequality, either signed or unsigned, is with a not expression. I looked through the SCEV code, and I don't think there are any more occurrences of this issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54194 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR2607: SCEV miscomputing the loop count for loops with an Eli Friedman2008-07-30
| | | | | | | | | | | | | | SGT exit condition. Essentially, the correct way to flip an inequality in 2's complement is the not operator, not the negation operator. That said, the difference only affects cases involving INT_MIN. Also, enhance the pre-test search logic to be a bit smarter about inequalities flipped with a not operator, so it can eliminate the smax from the iteration count for simple loops. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54184 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR2609. If a label is deleted, then it needsDuncan Sands2008-07-29
| | | | | | | | | to be marked invalid regardless of whether it is a debug, an exception handling or (hopefully) a GC label. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54172 91177308-0d34-0410-b5e6-96231b3b80d8
* Add vector shifts to the IR, patch by Eli Friedman.Nate Begeman2008-07-29
| | | | | | | CodeGen & Clang work coming next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54161 91177308-0d34-0410-b5e6-96231b3b80d8
* Add -unroll-allow-partial command line option that enabled the loop unroller toMatthijs Kooijman2008-07-29
| | | | | | | | | partially unroll a loop when fully unrolling would not fit under the threshold. Patch by Mikael Lepistö. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54160 91177308-0d34-0410-b5e6-96231b3b80d8
* Restructure ArgumentPromotion a bit. Instead of just having a single booleanMatthijs Kooijman2008-07-29
| | | | | | | | | | | | | | | that says "unconditional loads from this argument are safe", we now keep track of the safety per set of indices from which loads happen. This prevents ArgPromotion from promoting loads that aren't really valid. As an added effect, this will now disregard the the type of the indices passed to a GEP, so "load GEP %A, i32 1" and "load GEP %A, i64 1" will result in a single argument, not two. This fixes PR2598, for which a testcase has been added as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54159 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 54147.Dan Gohman2008-07-29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54148 91177308-0d34-0410-b5e6-96231b3b80d8
* Add x86 isel patterns to match what would be a ZERO_EXTEND_INREG operation,Dan Gohman2008-07-28
| | | | | | | | | which is represented in codegen as an 'and' operation. This matches them with movz instructions, instead of leaving them to be matched by and instructions with an immediate field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54147 91177308-0d34-0410-b5e6-96231b3b80d8
* Test this differently: I saw this test failDuncan Sands2008-07-28
| | | | | | | | | | because opt exited while llvm-as was still writing to the pipe, causing it to get a SIGPIPE. It seems best to change things to avoid the race altogether. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54138 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bashism in TestRunner.sh.Dan Gohman2008-07-28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54134 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for eliminating stores that store the same value that was just ↵Owen Anderson2008-07-28
| | | | | | | | | loaded. This fixes PR2599. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54133 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix embedded CRLF characters.Dan Gohman2008-07-27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54125 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test RUN lineNate Begeman2008-07-25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54040 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable mov{L, LP, HP, HLP, *DUP} shuffles for mmxNate Begeman2008-07-25
| | | | | | | | | mmx needs its own fancy shuffle logic based on unpack; for now we get correct but awful code. Also commit Mon Ping's VSETCC patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54039 91177308-0d34-0410-b5e6-96231b3b80d8