aboutsummaryrefslogtreecommitdiffstats
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* alignment of 0 is not valid.Chris Lattner2009-01-051-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61682 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2009-01-052-172/+307
| | | | | | | | - Teach SPU64InstrInfo.td about the remaining signed comparisons, update tests accordingly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61672 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2009-01-051-0/+25
| | | | | | | - Add an 8-bit operation test, which doesn't do much at this point. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61665 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2009-01-052-59/+289
| | | | | | | | | | | - Fix (brcond (setq ...)) bug, where BRNZ should have been used vice BRZ. - Kill unused/unnecessary nodes in SPUNodes.td - Beef out the i64operations.c test harness to use a lot of unaligned loads, test loops and LLVM loop/basic block optimizations; run the test harness successfully on real Cell hardware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61664 91177308-0d34-0410-b5e6-96231b3b80d8
* Run a post-pass that marks known function declarations by name.Nick Lewycky2009-01-041-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61632 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL this test. The xform was removed.Bill Wendling2009-01-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61624 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a DAGCombiner abort on an invalid shift count constant. This fixes PR3250.Dan Gohman2009-01-031-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61613 91177308-0d34-0410-b5e6-96231b3b80d8
* CellSPU:Scott Michel2009-01-031-1/+1
| | | | | | | | | | - Remove custom lowering for BRCOND - Add remaining functionality for branches in SPUInstrInfo, such as branch condition reversal and load/store folding. Updated BrCond test to reflect branch reversal. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61597 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't try to analyze this "backward" case. This is overly conservative Nick Lewycky2009-01-021-0/+40
| | | | | | | pending a correct solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61589 91177308-0d34-0410-b5e6-96231b3b80d8
* When calculating 'nocapture' argument attributes, allowDuncan Sands2009-01-021-0/+23
| | | | | | | | | | | | | the argument to be stored to an alloca by tracking uses of the alloca. This occurs 4 times (out of 7121, 0.05%) in MultiSource/Applications, so may not be worth it. On the other hand, it is easy to do and fairly cheap. The functions it helps are: W_addcom and W_addlit in spiff; process_args (argv) in d (make_dparser); ercPixConcealIMB in JM/ldecod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61570 91177308-0d34-0410-b5e6-96231b3b80d8
* Reimplement the old and horrible bison parser for .ll files with a niceChris Lattner2009-01-0222-34/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | and clean recursive descent parser. This change has a couple of ramifications: 1. The parser code is about 400 lines shorter (in what we maintain, not including what is autogenerated). 2. The code should be significantly faster than the old code because we don't have to work around bison's poor handling of datatypes with ctors/dtors. This also makes the code much more resistant to memory leaks. 3. We now get caret diagnostics from the .ll parser, woo. 4. The actual diagnostics emited from the parser are completely different so a bunch of testcases had to be updated. 5. I now disallow "%ty = type opaque %ty = type i32". There was no good reason to support this, it was just an accident of the old implementation. I have no reason to think that anyone is actually using this. 6. The syntax for sticking a global variable has changed to make it unambiguous. I don't think anyone is depending on this since only clang supports this and it is not solid yet, so I'm not worried about anything breaking. 7. This gets rid of the last use of bison, and along with it the .cvs files. I'll prune this from the makefiles as a subsequent commit. There are a few minor cleanups that can be done after this commit (suggestions welcome!) but this passes dejagnu testing and is ready for its time in the limelight. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61558 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not isel load folding bt instructions for pentium m, core, core2, and AMD ↵Evan Cheng2009-01-021-0/+2
| | | | | | processors. These are significantly slower than a load followed by a bt of a register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61557 91177308-0d34-0410-b5e6-96231b3b80d8
* Use movaps / movd to extract vector element 0 even with sse4.1. It's still ↵Evan Cheng2009-01-027-15/+15
| | | | | | cheaper than pextrw especially if the value is in memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61555 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the cyclic part of this test, it was passing for the wrong Nick Lewycky2009-01-021-11/+1
| | | | | | | | reason. Two functions which mutually require each other to be nocapture are not currently supported. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61553 91177308-0d34-0410-b5e6-96231b3b80d8
* Make adding nocapture a bit stronger. FreeInst is nocapture. Also, Nick Lewycky2009-01-021-1/+23
| | | | | | | | | | | functions that don't write can't leak a pointer except through the return value, so a void readonly function is implicitly nocapture. Test these, and add a test that verifies that f1 calling f2 with an otherwise dead pointer gets both of them marked nocapture. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61552 91177308-0d34-0410-b5e6-96231b3b80d8
* rename a file to follow naming conventions.Chris Lattner2009-01-021-0/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61550 91177308-0d34-0410-b5e6-96231b3b80d8
* Add tests for two types of traps that escape analysisDuncan Sands2009-01-021-0/+23
| | | | | | | might one day fall into. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61549 91177308-0d34-0410-b5e6-96231b3b80d8
* * Quoted the executable 'runtest' to emphasize the binary needed;Misha Brukman2009-01-011-1/+1
| | | | | | | | otherwise, some unlucky souls start looking for a 'dejagnu' binary... * Properly capitalized LLVM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61546 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3274: when promoting the condition of a BRCOND node,Duncan Sands2009-01-011-0/+31
| | | | | | | | | | | promote from i1 all the way up to the canonical SetCC type. In order to discover an appropriate type to use, pass MVT::Other to getSetCCResultType. In order to be able to do this, change getSetCCResultType to take a type as an argument, not a value (this is also more logical). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61542 91177308-0d34-0410-b5e6-96231b3b80d8
* Add transformation:Bill Wendling2009-01-011-0/+11
| | | | | | | | | xor (or (icmp, icmp), true) -> and(icmp, icmp) This is possible because of De Morgan's law. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61537 91177308-0d34-0410-b5e6-96231b3b80d8
* Look through phi nodes and select instructions whenDuncan Sands2008-12-311-15/+22
| | | | | | | calculating nocapture attributes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61535 91177308-0d34-0410-b5e6-96231b3b80d8
* This is not failing on Darwin for some reason. XFAIL for other platforms.Bill Wendling2008-12-311-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61533 91177308-0d34-0410-b5e6-96231b3b80d8
* Removed extra spaces.Misha Brukman2008-12-311-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61527 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename AddReadAttrs to FunctionAttrs, and teach it howDuncan Sands2008-12-318-6/+40
| | | | | | | | | to work out (in a very simplistic way) which function arguments (pointer arguments only) are only dereferenced and so do not escape. Mark such arguments 'nocapture'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61525 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL test caused by r61493. Apparently, this is expected?Bill Wendling2008-12-311-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61516 91177308-0d34-0410-b5e6-96231b3b80d8
* XFAIL this for now until I can figure out what's going on.Scott Michel2008-12-311-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61512 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix test erratum (which is wierd: works locally for me?)Scott Michel2008-12-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61511 91177308-0d34-0410-b5e6-96231b3b80d8
* - Start moving target-dependent nodes that could be represented by anScott Michel2008-12-305-18/+126
| | | | | | | | | | | | | | instruction sequence and cannot ordinarily be simplified by DAGcombine into the various target description files or SPUDAGToDAGISel.cpp. This makes some 64-bit operations legal. - Eliminate target-dependent ISD enums. - Update tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61508 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow readnone functions to read (and write!) globalDuncan Sands2008-12-291-0/+8
| | | | | | | | | | | | | | | | | constants, since doing so is irrelevant for aliasing purposes. While this doesn't increase the total number of functions marked readonly or readnone in MultiSource/ Applications (3089), it does result in 12 functions being marked readnone rather than readonly. Before: readnone: 820 readonly: 2269 After: readnone: 832 readonly: 2257 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61469 91177308-0d34-0410-b5e6-96231b3b80d8
* Check that the function prototypes are correct before assuming that the Nick Lewycky2008-12-271-0/+19
| | | | | | | parameters are pointers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61451 91177308-0d34-0410-b5e6-96231b3b80d8
* add testcase for type parsing.Chris Lattner2008-12-271-0/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61449 91177308-0d34-0410-b5e6-96231b3b80d8
* - Remove Tilmann's custom truncate lowering: it completely hosed overScott Michel2008-12-277-25/+361
| | | | | | | | | | | | | | | | | | | | | | | | | DAGcombine's ability to find reasons to remove truncates when they were not needed. Consequently, the CellSPU backend would produce correct, but _really slow and horrible_, code. Replaced with instruction sequences that do the equivalent truncation in SPUInstrInfo.td. - Re-examine how unaligned loads and stores work. Generated unaligned load code has been tested on the CellSPU hardware; see the i32operations.c and i64operations.c in CodeGen/CellSPU/useful-harnesses. (While they may be toy test code, it does prove that some real world code does compile correctly.) - Fix truncating stores in bug 3193 (note: unpack_df.ll will still make llc fault because i64 ult is not yet implemented.) - Added i64 eq and neq for setcc and select/setcc; started new instruction information file for them in SPU64InstrInfo.td. Additional i64 operations should be added to this file and not to SPUInstrInfo.td. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61447 91177308-0d34-0410-b5e6-96231b3b80d8
* add PR #Chris Lattner2008-12-251-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61427 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a simple pattern for matching 'bt'.Chris Lattner2008-12-251-0/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61426 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert the changes in this testcase until Anton can fix them.Bill Wendling2008-12-241-11/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61414 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a compiler-abort on a testcase where the stack-pointer is added toDan Gohman2008-12-241-0/+33
| | | | | | | | a symbolic constant. This is unlikely to be intentional, but it shouldn't crash the compiler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61408 91177308-0d34-0410-b5e6-96231b3b80d8
* Add another permutation where we should get rid of a-a.Dale Johannesen2008-12-231-0/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61401 91177308-0d34-0410-b5e6-96231b3b80d8
* Update testAnton Korobeynikov2008-12-231-15/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61399 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase to show we can tie together integers and pointers ofChris Lattner2008-12-231-0/+9
| | | | | | | the same size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61380 91177308-0d34-0410-b5e6-96231b3b80d8
* Added shuffle and splat test cases for r61365.Mon P Wang2008-12-233-0/+192
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61366 91177308-0d34-0410-b5e6-96231b3b80d8
* One more permutation of subtracting off a base value.Dale Johannesen2008-12-231-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61361 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ignore & grep instead of XFAIL.Mikhail Glushenkov2008-12-211-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61307 91177308-0d34-0410-b5e6-96231b3b80d8
* Turn strcmp into memcmp, such as strcmp(P, "x") --> memcmp(P, "x", 2).Nick Lewycky2008-12-211-0/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61297 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix fast-isel to not emit invalid assembly when presented with aDan Gohman2008-12-201-0/+7
| | | | | | | | constant shift count that doesn't fit in the shift instruction's immediate field. This fixes PR3242. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61281 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the correct Preds and Succs lists in setHeightDirty()Dan Gohman2008-12-202-1/+30
| | | | | | | and setDepthDirty(), respectively. This fixes PR3241. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61276 91177308-0d34-0410-b5e6-96231b3b80d8
* More precise XFAIL.Bill Wendling2008-12-191-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61265 91177308-0d34-0410-b5e6-96231b3b80d8
* Un-XFAIL this test because it's passing and John doesn't seem interested in ↵Bill Wendling2008-12-191-1/+0
| | | | | | un-XFAILing it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61264 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR3149. If an early clobber def is a physical register and it is tied to ↵Evan Cheng2008-12-192-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | an input operand, it effectively extends the live range of the physical register. Currently we do not have a good way to represent this. 172 %ECX<def> = MOV32rr %reg1039<kill> 180 INLINEASM <es:subl $5,$1 sbbl $3,$0>, 10, %EAX<def>, 14, %ECX<earlyclobber,def>, 9, %EAX<kill>, 36, <fi#0>, 1, %reg0, 0, 9, %ECX<kill>, 36, <fi#1>, 1, %reg0, 0 188 %EAX<def> = MOV32rr %EAX<kill> 196 %ECX<def> = MOV32rr %ECX<kill> 204 %ECX<def> = MOV32rr %ECX<kill> 212 %EAX<def> = MOV32rr %EAX<kill> 220 %EAX<def> = MOV32rr %EAX 228 %reg1039<def> = MOV32rr %ECX<kill> The early clobber operand ties ECX input to the ECX def. The live interval of ECX is represented as this: %reg20,inf = [46,47:1)[174,230:0) 0@174-(230) 1@46-(47) The right way to represent this is something like %reg20,inf = [46,47:2)[174,182:1)[181:230:0) 0@174-(182) 1@181-230 @2@46-(47) Of course that won't work since that means overlapping live ranges defined by two val#. The workaround for now is to add a bit to val# which says the val# is redefined by a early clobber def somewhere. This prevents the move at 228 from being optimized away by SimpleRegisterCoalescing::AdjustCopiesBackFrom. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61259 91177308-0d34-0410-b5e6-96231b3b80d8
* This test works again for Darwin because a patch was reverted.Bill Wendling2008-12-191-4/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61254 91177308-0d34-0410-b5e6-96231b3b80d8
* - CodeGenPrepare does not split loop back edges but it only knows about back ↵Evan Cheng2008-12-192-1/+51
| | | | | | | | | edges of single block loops. It now does a DFS walk to find loop back edges. - Use SplitBlockPredecessors to factor out common predecessors of the critical edge destination. This is disabled for now due to some regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61248 91177308-0d34-0410-b5e6-96231b3b80d8