aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Recover most of the compile time regression due to recent live interval changes.Evan Cheng2007-08-284-98/+100
| | | | | | | | | 1. Eliminate the costly live interval "swapping". 2. Change ValueNumberInfo container from SmallVector to std::vector. The former performs slowly when the vector size is very large. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41536 91177308-0d34-0410-b5e6-96231b3b80d8
* Added method to get Mips register numbersBruno Cardoso Lopes2007-08-283-61/+113
| | | | | | | | Changed the stack frame layout, StackGrowsUp fits better to Mips strange stack. Stack offset calculation bug fixed! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41529 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed stack allocation On LowerFORMAL_ARGUMENTS.Bruno Cardoso Lopes2007-08-281-20/+29
| | | | | | | | Added comments about new stack allocation. Expand SelectCC for i32 results git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41527 91177308-0d34-0410-b5e6-96231b3b80d8
* Mask directive completed with CalleeSave infoBruno Cardoso Lopes2007-08-282-73/+111
| | | | | | | Comments for Mips directives added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41526 91177308-0d34-0410-b5e6-96231b3b80d8
* Added methods to record SPOffsets from LowerFORMAL_ARGUMENTSBruno Cardoso Lopes2007-08-281-3/+53
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41525 91177308-0d34-0410-b5e6-96231b3b80d8
* Cut off crazy computation. This helps PR1622 slightly.Chris Lattner2007-08-281-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41522 91177308-0d34-0410-b5e6-96231b3b80d8
* Use simpler test to filter loops.Devang Patel2007-08-271-14/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41516 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit triples to avoid default behavior that varies by host.Dan Gohman2007-08-274-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41510 91177308-0d34-0410-b5e6-96231b3b80d8
* Update InvokeInst to work like CallInstDavid Greene2007-08-2713-46/+76
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41506 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a comment about using libc memset/memcpy or generating inline code.Rafael Espindola2007-08-271-2/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41502 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove this test as it is too hard to fix after theDuncan Sands2007-08-271-1621/+0
| | | | | | | | latest EH changes, and in any case it is hard to imagine how the original bug could be reintroduced. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41497 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix this test: llvm-gcc-4.2 optimizes almost everything away,Duncan Sands2007-08-271-2/+2
| | | | | | | | resulting in zero matches, while llvm-gcc-4.1 manages to remove one pointless selector changing the number of matches. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41494 91177308-0d34-0410-b5e6-96231b3b80d8
* Make DAGCombiner's global alias analysis query more precise in the caseDan Gohman2007-08-271-2/+3
| | | | | | | where both pointers have non-zero offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41491 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that we don't output cleanups by default, the actionDuncan Sands2007-08-271-1/+1
| | | | | | | offset needs to be adjusted in this test. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41490 91177308-0d34-0410-b5e6-96231b3b80d8
* If the source and destination pointers in an llvm.memmove are knownDan Gohman2007-08-276-12/+62
| | | | | | | to not alias each other, it can be translated as an llvm.memcpy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41489 91177308-0d34-0410-b5e6-96231b3b80d8
* Change comments to refer to @malloc and @free instead of %malloc and %free.Dan Gohman2007-08-271-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41488 91177308-0d34-0410-b5e6-96231b3b80d8
* There is an impedance matching problem between LLVM andDuncan Sands2007-08-274-31/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc exception handling: if an exception unwinds through an invoke, then execution must branch to the invoke's unwind target. We previously tried to enforce this by appending a cleanup action to every selector, however this does not always work correctly due to an optimization in the C++ unwinding runtime: if only cleanups would be run while unwinding an exception, then the program just terminates without actually executing the cleanups, as invoke semantics would require. I was hoping this wouldn't be a problem, but in fact it turns out to be the cause of all the remaining failures in the LLVM testsuite (these also fail with -enable-correct-eh-support, so turning on -enable-eh didn't make things worse!). Instead we need to append a full-blown catch-all to the end of each selector. The correct way of doing this depends on the personality function, i.e. it is language dependent, so can only be done by gcc. Thus this patch which generalizes the eh.selector intrinsic so that it can handle all possible kinds of action table entries (before it didn't accomodate cleanups): now 0 indicates a cleanup, and filters have to be specified using the number of type infos plus one rather than the number of type infos. Related gcc patches will cause Ada to pass a cleanup (0) to force the selector to always fire, while C++ will use a C++ catch-all (null). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41484 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit keywords and remove spurious trailing semicolons.Dan Gohman2007-08-2712-26/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41482 91177308-0d34-0410-b5e6-96231b3b80d8
* call libc memcpy/memset if array size is bigger then threshold.Rafael Espindola2007-08-272-18/+20
| | | | | | | | | Coping 100MB array (after a warmup) shows that glibc 2.6.1 implementation on x86-64 (core 2) is 30% faster (from 0.270917s to 0.188079s) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41479 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't promote volatile loads/stores. This is needed (for example) to handle ↵Anton Korobeynikov2007-08-262-3/+53
| | | | | | | | | setjmp/longjmp properly. This fixes PR1520. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41461 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't DSe volatile stores.Owen Anderson2007-08-261-18/+25
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41456 91177308-0d34-0410-b5e6-96231b3b80d8
* Revise per review comments.Dale Johannesen2007-08-263-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41409 91177308-0d34-0410-b5e6-96231b3b80d8
* Add APFloat interface to ConstantFPSDNode. ChangeDale Johannesen2007-08-253-16/+30
| | | | | | | | over uses in DAGCombiner. Fix interfaces to work with APFloats. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41407 91177308-0d34-0410-b5e6-96231b3b80d8
* Move exit condition and exit branch from exiting block into loop header and ↵Devang Patel2007-08-251-0/+155
| | | | | | dominator info. This avoid execution of dead iteration. Loop is already filter in the beginning such that this change is safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41394 91177308-0d34-0410-b5e6-96231b3b80d8
* Constant split values needs upper bound and lower bound check, just like any ↵Devang Patel2007-08-252-6/+52
| | | | | | other split value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41389 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow target constants to be illegal types. The target shouldChris Lattner2007-08-252-0/+13
| | | | | | | | know how to handle them. This fixes test/CodeGen/Generic/asm-large-immediate.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41388 91177308-0d34-0410-b5e6-96231b3b80d8
* While calculating upper loop bound for first loop and lower loop bound for ↵Devang Patel2007-08-252-36/+283
| | | | | | second loop, take care of edge cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41387 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the dag scheduler to handle inline asm nodes with multi-value ↵Chris Lattner2007-08-251-8/+9
| | | | | | immediate operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41386 91177308-0d34-0410-b5e6-96231b3b80d8
* The personality function might need to be declared as:Bill Wendling2007-08-251-5/+18
| | | | | | | | | | .set Lset0,___gxx_personality_v0-. .long Lset0 on some targets. Make it so! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41385 91177308-0d34-0410-b5e6-96231b3b80d8
* rename isOperandValidForConstraint to LowerAsmOperandForConstraint, Chris Lattner2007-08-257-59/+90
| | | | | | | | changing the interface to allow for future changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41384 91177308-0d34-0410-b5e6-96231b3b80d8
* Comment out declaration of operator== (undefined).Dale Johannesen2007-08-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41383 91177308-0d34-0410-b5e6-96231b3b80d8
* TestNeil Booth2007-08-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41382 91177308-0d34-0410-b5e6-96231b3b80d8
* Add selfNeil Booth2007-08-251-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41381 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename llvm-gcc4 to llvm-gcc.Tanya Lattner2007-08-241-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41380 91177308-0d34-0410-b5e6-96231b3b80d8
* Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual.Dale Johannesen2007-08-244-18/+29
| | | | | | | | This means backing out the preceding change to Constants.cpp, alas. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
* Use APFloat internally for ConstantFPSDNode.Dale Johannesen2007-08-242-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41372 91177308-0d34-0410-b5e6-96231b3b80d8
* sink clone() down the class hierarchy from CmpInst into ICmpInst/FCmpInst.Chris Lattner2007-08-243-5/+9
| | | | | | | | This eliminates a conditional on that path, and ensures ICmpInst/FCmpInst both have an out-of-line virtual method to home the class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41371 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix regression that I caused yesterday night while adding logic to select ↵Devang Patel2007-08-241-2/+2
| | | | | | appropriate split condition branch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41365 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable EH generation until PPC works 100%.Chris Lattner2007-08-241-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41360 91177308-0d34-0410-b5e6-96231b3b80d8
* add a noteChris Lattner2007-08-241-0/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41359 91177308-0d34-0410-b5e6-96231b3b80d8
* It is not safe to execute split condition's true branch first all the time. ↵Devang Patel2007-08-241-5/+35
| | | | | | | | | If split condition predicate is GT or GE then execute false branch first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41358 91177308-0d34-0410-b5e6-96231b3b80d8
* Reject ICMP_NE as index split condition.Devang Patel2007-08-241-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41357 91177308-0d34-0410-b5e6-96231b3b80d8
* Tightenup loop filter.Devang Patel2007-08-241-2/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41356 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove incomplete cost analysis.Devang Patel2007-08-241-40/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41354 91177308-0d34-0410-b5e6-96231b3b80d8
* Revised per review feedback from previous patch.Dale Johannesen2007-08-243-56/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41353 91177308-0d34-0410-b5e6-96231b3b80d8
* silence some warnings in an optimized build.Chris Lattner2007-08-241-11/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41352 91177308-0d34-0410-b5e6-96231b3b80d8
* Change internal representation of ConstantFP to use APFloat.Dale Johannesen2007-08-244-37/+245
| | | | | | | | Interface to rest of the compiler unchanged, as yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41348 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix this testcase: there are two matches forDuncan Sands2007-08-231-2/+2
| | | | | | | | | llvm.cttz.i64 because of the declaration of the intrinsic. Also, emit-llvm is automatic and doesn't need to be specified. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41326 91177308-0d34-0410-b5e6-96231b3b80d8
* add some notes on really poor codegen.Chris Lattner2007-08-231-0/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41319 91177308-0d34-0410-b5e6-96231b3b80d8
* new exampleChris Lattner2007-08-231-0/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41318 91177308-0d34-0410-b5e6-96231b3b80d8