aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* unbreak the buildChris Lattner2006-02-171-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26260 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak x86 beEvan Cheng2006-02-171-17/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26259 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix loops where the header has an exit, fixing a loop-unswitch crash on craftyChris Lattner2006-02-171-13/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26258 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a comment sabre noticed :)Nate Begeman2006-02-172-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26257 91177308-0d34-0410-b5e6-96231b3b80d8
* A couple new regression tests to make sure we always pattern match the newNate Begeman2006-02-172-0/+51
| | | | | | | opcodes on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26256 91177308-0d34-0410-b5e6-96231b3b80d8
* kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBCNate Begeman2006-02-1712-271/+130
| | | | | | | | and SUBE nodes that actually expose what's going on and allow for significant simplifications in the targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26255 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another miscompilation exposed by lencode, where we lowered i64->f32Chris Lattner2006-02-171-1/+1
| | | | | | | | conversions to __floatdidf instead of __floatdisf on targets that support f32 but not i64 (e.g. sparc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26254 91177308-0d34-0410-b5e6-96231b3b80d8
* add note about div by power of 2Chris Lattner2006-02-171-0/+32
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26253 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug noticed by VC++.Jeff Cohen2006-02-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26252 91177308-0d34-0410-b5e6-96231b3b80d8
* Inform Visual Studio of deleted file.Jeff Cohen2006-02-171-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26251 91177308-0d34-0410-b5e6-96231b3b80d8
* Whoops, didn't mean to check this in yet.Nate Begeman2006-02-171-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26250 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a missing and useful pat fragNate Begeman2006-02-171-2/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26249 91177308-0d34-0410-b5e6-96231b3b80d8
* start of some new simplification code, not thoroughly tested, use at your ownChris Lattner2006-02-171-14/+161
| | | | | | | risk :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26248 91177308-0d34-0410-b5e6-96231b3b80d8
* Remind ourselves to revisit the "pxor vs. xorps/xorpd to clear XMM registers"Evan Cheng2006-02-171-0/+6
| | | | | | | issue. Need to do more experiments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26247 91177308-0d34-0410-b5e6-96231b3b80d8
* Kill the x86 pattern isel. boom.Nate Begeman2006-02-174-3973/+211
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26246 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the entry about using movapd for SSE reg-reg moves.Evan Cheng2006-02-171-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26245 91177308-0d34-0410-b5e6-96231b3b80d8
* pxor (for FLD0SS) encoding was missing the OpSize prefix.Evan Cheng2006-02-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26244 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the skeleton target, it doesn't produce useful code and there areChris Lattner2006-02-1614-614/+0
| | | | | | | | other small targets that do that can be learned from. They also have the added advantage of being tested :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26243 91177308-0d34-0410-b5e6-96231b3b80d8
* Dumb bug. Code sees a memcpy from X+c so it increments src offset. But itEvan Cheng2006-02-161-4/+10
| | | | | | | | turns out not to point to a constant string but it forgot change the offset back. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26242 91177308-0d34-0410-b5e6-96231b3b80d8
* 1. Use pxor instead of xoraps / xorapd to clear FR32 / FR64 registers. ThisEvan Cheng2006-02-163-13/+29
| | | | | | | | | | | | proves to be worth 20% on Ptrdist/ks. Might be related to dependency breaking support. 2. Added FsMOVAPSrr and FsMOVAPDrr as aliases to MOVAPSrr and MOVAPDrr. These are used for FR32 / FR64 reg-to-reg copies. 3. Tell reg-allocator to generate MOVSSrm / MOVSDrm and MOVSSmr / MOVSDmr to spill / restore FsMOVAPSrr and FsMOVAPDrr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26241 91177308-0d34-0410-b5e6-96231b3b80d8
* Use movaps / movapd to spill / restore V4F4 / V2F8 registers.Evan Cheng2006-02-161-4/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26240 91177308-0d34-0410-b5e6-96231b3b80d8
* remove skeleton targetChris Lattner2006-02-161-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26239 91177308-0d34-0410-b5e6-96231b3b80d8
* Rework the SelectionDAG-based implementations of SimplifyDemandedBitsNate Begeman2006-02-167-201/+625
| | | | | | | | and ComputeMaskedBits to match the new improved versions in instcombine. Tested against all of multisource/benchmarks on ppc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26238 91177308-0d34-0410-b5e6-96231b3b80d8
* don't build the skeleton targetChris Lattner2006-02-161-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26237 91177308-0d34-0410-b5e6-96231b3b80d8
* remove support for the skeleton targetChris Lattner2006-02-161-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26236 91177308-0d34-0410-b5e6-96231b3b80d8
* Change SplitBlock to increment a BasicBlock::iterator, not an Instruction*. ↵Chris Lattner2006-02-161-23/+27
| | | | | | | | | | | | Apparently they do different things :) This fixes a testcase that nate reduced from spass. Also included are a couple minor code changes that don't affect the generated code at all. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26235 91177308-0d34-0410-b5e6-96231b3b80d8
* MOVAPSrr and MOVAPDrr instruction format should be MRMSrcReg.Evan Cheng2006-02-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26234 91177308-0d34-0410-b5e6-96231b3b80d8
* distinguish between objects and register names, now we can have stuffDuraid Madina2006-02-161-6/+12
| | | | | | | | | with names like "f84", "in6" etc etc. this should fix one or two tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26232 91177308-0d34-0410-b5e6-96231b3b80d8
* If the false case is the current basic block, then this is a self loop.Evan Cheng2006-02-162-11/+9
| | | | | | | | | | | We do not want to emit "Loop: ... brcond Out; br Loop", as it adds an extra instruction in the loop. Instead, invert the condition and emit "Loop: ... br!cond Loop; br Out. Generalize the fix by moving it from PPCDAGToDAGISel to SelectionDAGLowering. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26231 91177308-0d34-0410-b5e6-96231b3b80d8
* Lowering of sdiv X, pow2 was broken, this fixes it. This patch is writtenChris Lattner2006-02-161-6/+12
| | | | | | | by Nate, I'm just committing it for him. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26230 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a minor makefile bug with lex/yacc handling that nate noticed. We don'tChris Lattner2006-02-161-2/+2
| | | | | | | | | want to copy the files when the .cpp file changes, we want to copy them to the .cvs versions when the .l/.y file change (like the comments even say). This avoids having bogus changes show up in diffs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26229 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix VC++ warning.Jeff Cohen2006-02-161-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26228 91177308-0d34-0410-b5e6-96231b3b80d8
* Visual Studio enters the future of bisoning.Jeff Cohen2006-02-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26227 91177308-0d34-0410-b5e6-96231b3b80d8
* Use movaps / movapd (instead of movss / movsd) to do FR32 / FR64 reg to regEvan Cheng2006-02-161-2/+2
| | | | | | | | | | | | | | | | | | transfer. According to the Intel P4 Optimization Manual: Moves that write a portion of a register can introduce unwanted dependences. The movsd reg, reg instruction writes only the bottom 64 bits of a register, not to all 128 bits. This introduces a dependence on the preceding instruction that produces the upper 64 bits (even if those bits are not longer wanted). The dependence inhibits register renaming, and thereby reduces parallelism. Not to mention movaps is shorter than movss. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26226 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a bug where we unswitched the wrong wayChris Lattner2006-02-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26225 91177308-0d34-0410-b5e6-96231b3b80d8
* A bit more memset / memcpy optimization.Evan Cheng2006-02-163-7/+53
| | | | | | | | Turns them into calls to memset / memcpy if 1) buffer(s) are not DWORD aligned, 2) size is not known to be greater or equal to some minimum value (currently 128). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26224 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement trivial unswitching for switch stmts. This allows us to trivialChris Lattner2006-02-151-27/+51
| | | | | | | | | | | | | | | | | | | unswitch this loop on 2 before sweating to unswitch on 1/3. void test4(int N, int i, int C, int*P, int*Q) { int j; for (j = 0; j < N; ++j) { switch (C) { // general unswitching. default: P[i+j] = 0; break; case 1: Q[i+j] = 0; break; case 3: P[i+j] = Q[i+j]; break; case 2: break; // TRIVIAL UNSWITCH on C==2 } } } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26223 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an entry.Evan Cheng2006-02-151-8/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26222 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unused function parameter.Evan Cheng2006-02-151-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26221 91177308-0d34-0410-b5e6-96231b3b80d8
* make "trivial" unswitching significantly more general. It can now handleChris Lattner2006-02-151-47/+79
| | | | | | | | | | | | | | this for example: for (j = 0; j < N; ++j) { // trivial unswitch if (C) P[i+j] = 0; } turning it into the obvious code without bothering to duplicate an empty loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26220 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn a memcpy from string constant into a series of stores of constant values.Evan Cheng2006-02-151-47/+69
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26219 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a bunch of alpha regressions. see bug 709Andrew Lenharth2006-02-151-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26218 91177308-0d34-0410-b5e6-96231b3b80d8
* new testChris Lattner2006-02-151-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26217 91177308-0d34-0410-b5e6-96231b3b80d8
* Should not combine ISD::LOCATIONs until we have scheme to remove fromJim Laskey2006-02-152-36/+2
| | | | | | | MachineDebugInfo tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26216 91177308-0d34-0410-b5e6-96231b3b80d8
* Checking the wrong value. This caused us to emit silly code likeChris Lattner2006-02-151-1/+1
| | | | | | | | Y = seteq bool X, true instead of just using X :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26215 91177308-0d34-0410-b5e6-96231b3b80d8
* Code sufficiently protected against this test.Jim Laskey2006-02-151-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26213 91177308-0d34-0410-b5e6-96231b3b80d8
* reverting previous change, will add support for other compilers laterDuraid Madina2006-02-152-0/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26211 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert over to the new way of handling lex/bison checked into cvsChris Lattner2006-02-155-0/+419
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26209 91177308-0d34-0410-b5e6-96231b3b80d8
* Check the new form for bison output into CVSChris Lattner2006-02-153-0/+638
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26208 91177308-0d34-0410-b5e6-96231b3b80d8
* bugfixesChris Lattner2006-02-151-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26207 91177308-0d34-0410-b5e6-96231b3b80d8