aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Update InvokeInst to work like CallInstDavid Greene2007-08-279-31/+9
| | | | 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
* 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
* If the source and destination pointers in an llvm.memmove are knownDan Gohman2007-08-271-12/+25
| | | | | | | 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-272-6/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-272-10/+11
| | | | 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-271-4/+4
| | | | | | | | | 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-261-3/+6
| | | | | | | | | 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-262-2/+2
| | | | 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-252-13/+8
| | | | | | | | 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-251-6/+0
| | | | | | 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-251-0/+5
| | | | | | | | 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-251-36/+231
| | | | | | 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-256-53/+85
| | | | | | | | 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
* Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual.Dale Johannesen2007-08-243-12/+23
| | | | | | | | 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-241-1/+1
| | | | 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-241-2/+5
| | | | | | | | 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-242-56/+24
| | | | 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-242-34/+220
| | | | | | | | 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
* 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
* Perform correct codegen for eh_dwarf_cfa intrinsic.Anton Korobeynikov2007-08-231-2/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41316 91177308-0d34-0410-b5e6-96231b3b80d8
* rename APInt::toString -> toStringUnsigned for symmetry with toStringSigned()Chris Lattner2007-08-233-5/+6
| | | | | | | | Add an APSInt::toString() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41309 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove dead code.Devang Patel2007-08-221-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41295 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo.Devang Patel2007-08-221-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41292 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic changeDevang Patel2007-08-221-84/+102
| | | | | | | | | "True Loop" and "False Loop" naming terminology to refer two loops after loop cloning is confusing. Instead just use A_Loop and B_Loop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41287 91177308-0d34-0410-b5e6-96231b3b80d8
* move this check. ppc outputs .no_dead_strip properlyAndrew Lenharth2007-08-221-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41286 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the PCSymbol for Darwin x86 platforms.Bill Wendling2007-08-221-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41284 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor loop condition check in a separate function.Devang Patel2007-08-221-17/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41282 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix thinko.Devang Patel2007-08-221-3/+3
| | | | | | | | Starting value of second loop's induction variable can not be lower then starting value of original loop's induction variable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41280 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename bunch of variables.Devang Patel2007-08-211-72/+79
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41250 91177308-0d34-0410-b5e6-96231b3b80d8
* Preserve LCSSA.Devang Patel2007-08-211-1/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41246 91177308-0d34-0410-b5e6-96231b3b80d8
* Use SmallVector.Devang Patel2007-08-211-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41230 91177308-0d34-0410-b5e6-96231b3b80d8
* No need to hardcode SmallVector size.Devang Patel2007-08-211-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41228 91177308-0d34-0410-b5e6-96231b3b80d8
* InlineAsm asm support for integer registers addedBruno Cardoso Lopes2007-08-212-0/+81
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41225 91177308-0d34-0410-b5e6-96231b3b80d8
* Instruction Itinerary attribution fixedBruno Cardoso Lopes2007-08-211-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41224 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix potentially N^2 behavior handling arrays with many of theChris Lattner2007-08-211-8/+35
| | | | | | | | same value which get RAUW'd. This speeds up reading the .bc file in PR1616 from 852s to 0.19s on my G5 with a debug build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41209 91177308-0d34-0410-b5e6-96231b3b80d8