summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
...
* add a triple so that this doesn't fail due to linux/ppc register printing Chris Lattner2010-02-211-1/+1
| | | | | | syntax. llvm-svn: 96748
* Sort the patterns before adding them to the FA so that we get theChris Lattner2010-02-211-7/+52
| | | | | | least cost matches. This gets us from 195 -> 208 passes on the ppc codegen tests. llvm-svn: 96747
* Remove a bunch of duplicated code, where there was one version taking a ↵Duncan Sands2010-02-211-177/+15
| | | | | | | | std::ostream and another taking a raw_ostream, but otherwise identical. Use raw_ostream everywhere. llvm-svn: 96746
* filecheckize and add nouwinds.Chris Lattner2010-02-211-9/+16
| | | | llvm-svn: 96745
* Enable assertion to detect cyclic valno references.Jakob Stoklund Olesen2010-02-211-1/+1
| | | | | | This changes the stack overflow in PR6363 to an assertion failure. llvm-svn: 96744
* IT turns out that during jumpless setcc lowering eq and ne were swapped.Anton Korobeynikov2010-02-212-30/+27
| | | | | | This fixes PR6348 llvm-svn: 96734
* when a match fails and we have to rollback, make sure to keep 'N' in Chris Lattner2010-02-211-0/+1
| | | | | | | sync with the top of stack. This fixes a bunch of failures on larger testcases. llvm-svn: 96732
* handle optional in flags that aren't present.Chris Lattner2010-02-211-1/+1
| | | | llvm-svn: 96731
* emit table indexes before each row so that it is debuggable.Chris Lattner2010-02-211-7/+11
| | | | llvm-svn: 96730
* fix two bugs in OPC_EmitRegister, which makes ppc happier.Chris Lattner2010-02-211-4/+5
| | | | llvm-svn: 96728
* fix a table size miscomputation, target opcodes are 2 bytes.Chris Lattner2010-02-211-1/+1
| | | | | | | With this, the matcher actually works reasonably well, but crashes on larger examples in the scheduler. llvm-svn: 96727
* emit to the right streams, to avoid emitting the pushChris Lattner2010-02-211-15/+16
| | | | | | body before the push. llvm-svn: 96726
* oops don't turn this on for everyone yet.Chris Lattner2010-02-211-1/+1
| | | | llvm-svn: 96725
* implement the last known missing feature: updating uses of results Chris Lattner2010-02-216-31/+84
| | | | | | | of the matched pattern to use the newly created node results. Onto the "making it actually work" phase! llvm-svn: 96724
* fix and un-xfail X86/vec_ss_load_fold.llChris Lattner2010-02-212-4/+2
| | | | llvm-svn: 96720
* Undo r96654. The printing of ARM shift instructions in canonical forms can beJohnny Chen2010-02-211-24/+28
| | | | | | | | handled in ARMInstPrinter.cpp. And added PLD/PLDW/PLI (Preload Data/Instruction) for disassembly only. llvm-svn: 96719
* Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs aCharles Davis2010-02-211-6/+6
| | | | | | 2GB-aligned stack anyway? 256 bytes is plenty. Requested by Chris. llvm-svn: 96718
* temporarily disable this.Chris Lattner2010-02-211-1/+2
| | | | llvm-svn: 96717
* Lots of improvements to the new dagisel emitter. This gets it toChris Lattner2010-02-216-231/+1022
| | | | | | | | | | | | | | | | | | | the point where it is to the 95% feature complete mark, it just needs result updating to be done (then testing, optimization etc). More specificallly, this adds support for chain and flag handling on the result nodes, support for sdnodexforms, support for variadic nodes, memrefs, pinned physreg inputs, and probably lots of other stuff. In the old DAGISelEmitter, this deletes the dead code related to OperatorMap, cleans up a variety of dead stuff handling "implicit remapping" from things like globaladdr -> targetglobaladdr (which is no longer used because globaladdr always needs to be legalized), and some minor formatting fixes. llvm-svn: 96716
* rename SelectScalarSSELoad -> SelectScalarSSELoadXXX and rewriteChris Lattner2010-02-211-18/+28
| | | | | | | | | | | | it to follow the mode needed by the new isel. Instead of returning the input and output chains, it just returns the (currently only one, which is a silly limitation) node that has input and output chains. Since we want the old thing to still work, add a new SelectScalarSSELoad to emulate the old interface. The XXX suffix and the wrapper will eventually go away. llvm-svn: 96715
* add a hook so that the new isel can run SDNodeXForms.Chris Lattner2010-02-211-0/+6
| | | | llvm-svn: 96714
* Eliminate some uses of immAllOnes, just use -1, it doesChris Lattner2010-02-211-1/+1
| | | | | | the same thing and is more efficient for the matcher. llvm-svn: 96713
* Eliminate some uses of immAllOnes, just use -1, it doesChris Lattner2010-02-212-4/+4
| | | | | | the same thing and is more efficient for the matcher. llvm-svn: 96712
* Test commit.Tanya Lattner2010-02-211-1/+0
| | | | llvm-svn: 96711
* Test commitTanya Lattner2010-02-211-0/+1
| | | | llvm-svn: 96710
* Rename getSDiv to getExactSDiv to reflect its behavior in cases whereDan Gohman2010-02-191-23/+25
| | | | | | the division would have a remainder. llvm-svn: 96693
* Check for overflow when scaling up an add or an addrec forDan Gohman2010-02-192-18/+86
| | | | | | scaled reuse. llvm-svn: 96692
* Revert 96634. It causes assertion failures for 126.gcc and 176.gcc inBob Wilson2010-02-194-28/+6
| | | | | | the armv6 nightly tests. llvm-svn: 96691
* Add a comment.Dan Gohman2010-02-191-0/+6
| | | | llvm-svn: 96688
* Add support for the 'alignstack' attribute to the x86 backend. Fixes PR5254.Charles Davis2010-02-193-2/+24
| | | | | | Also, FileCheck'ize a test. llvm-svn: 96686
* Teach ScalarEvolution how to compute a tripcount for a loop withDan Gohman2010-02-1910-12/+101
| | | | | | | | true or false as its exit condition. These are usually eliminated by SimplifyCFG, but the may be left around during a pass which wishes to preserve the CFG. llvm-svn: 96683
* Revert Anton's most recent EH patch (r96637), since it breaks a lot ofBob Wilson2010-02-194-22/+40
| | | | | | ARM and Thumb tests. llvm-svn: 96680
* Revert commits 96556 and 96640, because commit 96556 breaks theDuncan Sands2010-02-197-158/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dragonegg self-host build. I reverted 96640 in order to revert 96556 (96640 goes on top of 96556), but it also looks like with both of them applied the breakage happens even earlier. The symptom of the 96556 miscompile is the following crash: llvm[3]: Compiling AlphaISelLowering.cpp for Release build cc1plus: /home/duncan/tmp/tmp/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp:4982: void llvm::SelectionDAG::ReplaceAllUsesWith(llvm::SDNode*, llvm::SDNode*, llvm::SelectionDAG::DAGUpdateListener*): Assertion `(!From->hasAnyUseOfValue(i) || From->getValueType(i) == To->getValueType(i)) && "Cannot use this version of ReplaceAllUsesWith!"' failed. Stack dump: 0. Running pass 'X86 DAG->DAG Instruction Selection' on function '@_ZN4llvm19AlphaTargetLowering14LowerOperationENS_7SDValueERNS_12SelectionDAGE' g++: Internal error: Aborted (program cc1plus) This occurs when building LLVM using LLVM built by LLVM (via dragonegg). Probably LLVM has miscompiled itself, though it may have miscompiled GCC and/or dragonegg itself: at this point of the self-host build, all of GCC, LLVM and dragonegg were built using LLVM. Unfortunately this kind of thing is extremely hard to debug, and while I did rummage around a bit I didn't find any smoking guns, aka obviously miscompiled code. Found by bisection. r96556 | evancheng | 2010-02-18 03:13:50 +0100 (Thu, 18 Feb 2010) | 5 lines Some dag combiner goodness: Transform br (xor (x, y)) -> br (x != y) Transform br (xor (xor (x,y), 1)) -> br (x == y) Also normalize (and (X, 1) == / != 1 -> (and (X, 1)) != / == 0 to match to "test on x86" and "tst on arm" r96640 | evancheng | 2010-02-19 01:34:39 +0100 (Fri, 19 Feb 2010) | 16 lines Transform (xor (setcc), (setcc)) == / != 1 to (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 llvm-svn: 96672
* Correct LastPrimitiveTyID: MetadataType is a primitive type.Duncan Sands2010-02-191-1/+1
| | | | | | This change probably has no functional effect. llvm-svn: 96669
* add emitter support for integer constants and simple physreg references.Chris Lattner2010-02-193-5/+57
| | | | llvm-svn: 96663
* recommit 96626, evidence that it broke things appearsDale Johannesen2010-02-193-0/+41
| | | | | | to be spurious llvm-svn: 96662
* fix this to work more determinstically, patch by Thomas Veith!Chris Lattner2010-02-191-1/+1
| | | | llvm-svn: 96661
* Test case for r96656.Devang Patel2010-02-191-0/+9
| | | | llvm-svn: 96657
* Added entries for ASR, LSL, LSR, ROR, and RRX so that the disassembler printsJohnny Chen2010-02-191-0/+24
| | | | | | | | | | | | | | | | | out the canonical form (A8.6.98) instead of the pseudo-instruction as provided via MOVs. DBG_ARM_DISASM=YES llvm-mc -triple=arm-unknown-unknown --disassemble 0xc0 0x00 0xa0 0xe1 Opcode=29 Name=ASR Format=ARM_FORMAT_LDMISCFRM 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ------------------------------------------------------------------------------------------------- | 1: 1: 1: 0| 0: 0: 0: 1| 1: 0: 1: 0| 0: 0: 0: 0| 0: 0: 0: 0| 0: 0: 0: 0| 1: 1: 0: 0| 0: 0: 0: 0| ------------------------------------------------------------------------------------------------- asr r0, r0, #1 llvm-svn: 96654
* Revert 96626, which causes build failure on ppc Darwin.Dale Johannesen2010-02-193-41/+0
| | | | llvm-svn: 96653
* Transform (xor (setcc), (setcc)) == / != 1 toEvan Cheng2010-02-192-3/+44
| | | | | | | | | | | | | | | | | | | (xor (setcc), (setcc)) != / == 1. e.g. On x86_64 %0 = icmp eq i32 %x, 0 %1 = icmp eq i32 %y, 0 %2 = xor i1 %1, %0 br i1 %2, label %bb, label %return => testl %edi, %edi sete %al testl %esi, %esi sete %cl cmpb %al, %cl je LBB1_2 llvm-svn: 96640
* I confused myself, temporaries will be recorded right along with other inputs.Chris Lattner2010-02-191-31/+7
| | | | llvm-svn: 96639
* Use the same encoding for EH stuff uniformly on all MachO targets.Anton Korobeynikov2010-02-194-40/+22
| | | | | | This hopefulyl should unbreak EH on PPC/Darwin. llvm-svn: 96637
* introduce a new ResultVal and start keeping track of temporary values.Chris Lattner2010-02-191-12/+60
| | | | llvm-svn: 96636
* Radar 7636153. In the presence of large call frames, it's not sufficientJim Grosbach2010-02-194-6/+28
| | | | | | | | | for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. llvm-svn: 96634
* When determining the set of interesting reuse factors, considerDan Gohman2010-02-192-10/+72
| | | | | | | | strides in foreign loops. This helps locate reuse opportunities with existing induction variables in foreign loops and reduces the need for inserting new ones. This fixes rdar://7657764. llvm-svn: 96629
* Indvars needs to explicitly notify ScalarEvolution when it is replacingDan Gohman2010-02-183-0/+41
| | | | | | | | a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that loop. This fixes PR6339. llvm-svn: 96626
* getSplatIndex assumes that the first element of the mask contains the splat ↵Mon P Wang2010-02-182-6/+18
| | | | | | | | | index which is not always true if the mask contains undefs. Modified it to return the first non undef value. llvm-svn: 96621
* Added LDRD_PRE/POST & STRD_PRE/POST for disassembly only.Johnny Chen2010-02-182-0/+80
| | | | llvm-svn: 96619
* add support for referencing registers and immediates,Chris Lattner2010-02-185-36/+132
| | | | | | | building the tree to represent them but not emitting table entries for them yet. llvm-svn: 96617
OpenPOWER on IntegriCloud