aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-2520-199/+41
| | | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50265 91177308-0d34-0410-b5e6-96231b3b80d8
* Not checking for intrinsics which do not have a chain operand.Evan Cheng2008-04-251-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50260 91177308-0d34-0410-b5e6-96231b3b80d8
* - Switch from std::set to SmallPtrSet.Evan Cheng2008-04-251-5/+13
| | | | | | | - Add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50259 91177308-0d34-0410-b5e6-96231b3b80d8
* MMX argument passing fixes:Evan Cheng2008-04-252-22/+54
| | | | | | | | | | On Darwin / Linux x86-32, v8i8, v4i16, v2i32 values are passed in MM[0-2]. On Darwin / Linux x86-32, v1i64 values are passed in memory. On Darwin x86-64, v8i8, v4i16, v2i32 values are passed in XMM[0-7]. On Darwin x86-64, v1i64 values are passed in 64-bit GPRs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50257 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the PruningFunctionCloner how to look through loads with Nate Begeman2008-04-251-4/+12
| | | | | | | ConstantExpression GEPs pointing into constant globals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50256 91177308-0d34-0410-b5e6-96231b3b80d8
* Loosen up an assertion to allow intrinsics. I really have noChris Lattner2008-04-251-1/+4
| | | | | | | | | | | | idea what this code (findNonImmUse) does, so I'm only guessing that this is the right thing. It would be really really nice if this had comments and perhaps switched to SmallPtrSet (hint hint) :) This fixes rdar://5886601, a crash on gcc.target/i386/sse4_1-pblendw.c git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50252 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't infininitely thread branches when a threaded edgeChris Lattner2008-04-251-0/+22
| | | | | | | | | | | | | | | goes back to the block, e.g.: Threading edge through bool from 'bb37.us.thread3829' to 'bb37.us' with cost: 1, across block: bb37.us: ; preds = %bb37.us.thread3829, %bb37.us, %bb33 %D1361.1.us = phi i32 [ %tmp36, %bb33 ], [ %D1361.1.us, %bb37.us ], [ 0, %bb37.us.thread3829 ] ; <i32> [#uses=2] %tmp39.us = icmp eq i32 %D1361.1.us, 0 ; <i1> [#uses=1] br i1 %tmp39.us, label %bb37.us, label %bb42.us git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50251 91177308-0d34-0410-b5e6-96231b3b80d8
* PR2202: LLVMCreateInterpreter creates a JITGordon Henriksen2008-04-251-1/+1
| | | | | | Applying fix by Frits van Bommel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50249 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in x86 memcpy / memset lowering. If there are trailing bytes not ↵Evan Cheng2008-04-251-11/+8
| | | | | | handled by rep instructions, a new memcpy / memset is introduced for them. However, since source / destination addresses are already adjusted, their offsets should be zero. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50239 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust inline cost computation to be less aggressive.Evan Cheng2008-04-241-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50222 91177308-0d34-0410-b5e6-96231b3b80d8
* - Check if a register is livein before removing it. It may have already been ↵Evan Cheng2008-04-242-30/+35
| | | | | | | | | removed. - Do not iterate over SmallPtrSet, the order of iteration is not deterministic. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50209 91177308-0d34-0410-b5e6-96231b3b80d8
* code restructuring, not functionality change.Chris Lattner2008-04-241-22/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50203 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't replace multiple result of calls with undef, Chris Lattner2008-04-241-2/+4
| | | | | | | | sccp tracks getresult values, not call values in this case. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50202 91177308-0d34-0410-b5e6-96231b3b80d8
* code cleanup, no functionality change.Chris Lattner2008-04-241-19/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50201 91177308-0d34-0410-b5e6-96231b3b80d8
* Split some code out of the main SimplifyCFG loop into its own function.Chris Lattner2008-04-241-65/+103
| | | | | | | | Fix said code to handle merging return instructions together correctly when handling multiple return values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50199 91177308-0d34-0410-b5e6-96231b3b80d8
* Make these variables static.Dan Gohman2008-04-234-21/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50196 91177308-0d34-0410-b5e6-96231b3b80d8
* Drop dead includesAnton Korobeynikov2008-04-231-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50192 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust option names for C++ backendAnton Korobeynikov2008-04-231-11/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50190 91177308-0d34-0410-b5e6-96231b3b80d8
* First step of implementing PR1538: move llvm2cpp logic to new 'target'Anton Korobeynikov2008-04-233-0/+2026
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50189 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial CBE support for multiple return values.Dan Gohman2008-04-231-0/+30
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50187 91177308-0d34-0410-b5e6-96231b3b80d8
* tighten up verifier checks which missed cases whereChris Lattner2008-04-231-8/+9
| | | | | | | return instrs operands didn't match up with function results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50182 91177308-0d34-0410-b5e6-96231b3b80d8
* Use isa instead of dyn_cast.Dan Gohman2008-04-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50181 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support to codegen for getresult instructions with undef operands.Dan Gohman2008-04-231-2/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50180 91177308-0d34-0410-b5e6-96231b3b80d8
* Check type instead of no. of operands.Devang Patel2008-04-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50179 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow llvm-as to parse a getresult with an undef operand.Dan Gohman2008-04-234-460/+460
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50175 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite previous patch to suit Chris's preference.Dale Johannesen2008-04-231-21/+31
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50174 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak JITAnton Korobeynikov2008-04-231-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50173 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typoAnton Korobeynikov2008-04-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50169 91177308-0d34-0410-b5e6-96231b3b80d8
* Only allow increase of max alignment valueAnton Korobeynikov2008-04-231-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50168 91177308-0d34-0410-b5e6-96231b3b80d8
* Be over-conservative: scan for all used virtual registers and calculate ↵Anton Korobeynikov2008-04-232-2/+11
| | | | | | maximal stack alignment in assumption, that there will be spill of vector register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50167 91177308-0d34-0410-b5e6-96231b3b80d8
* Add X86 Maximal Stack Alignment Calculator Pass before RAAnton Korobeynikov2008-04-234-9/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50166 91177308-0d34-0410-b5e6-96231b3b80d8
* Add facility for pre-RA passesAnton Korobeynikov2008-04-231-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50165 91177308-0d34-0410-b5e6-96231b3b80d8
* Use precomputed value, if anyAnton Korobeynikov2008-04-231-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50164 91177308-0d34-0410-b5e6-96231b3b80d8
* Do proper book-keeping of offsets and prologue/epilogue code for stack ↵Anton Korobeynikov2008-04-231-44/+81
| | | | | | realignment git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50163 91177308-0d34-0410-b5e6-96231b3b80d8
* If stack realignment is used - incoming args will use EBP as base register ↵Anton Korobeynikov2008-04-231-9/+28
| | | | | | and locals - ESP git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50162 91177308-0d34-0410-b5e6-96231b3b80d8
* Eastimate required stack alignment early, so we can decide, whether we will ↵Anton Korobeynikov2008-04-232-0/+21
| | | | | | need frame pointer or not git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50161 91177308-0d34-0410-b5e6-96231b3b80d8
* CleanupAnton Korobeynikov2008-04-231-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50160 91177308-0d34-0410-b5e6-96231b3b80d8
* CleanupAnton Korobeynikov2008-04-231-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50159 91177308-0d34-0410-b5e6-96231b3b80d8
* SimplifyAnton Korobeynikov2008-04-231-26/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50158 91177308-0d34-0410-b5e6-96231b3b80d8
* Make stack alignment options global for all targetsAnton Korobeynikov2008-04-233-9/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50157 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide option for enabling-disabling stack realignmentAnton Korobeynikov2008-04-231-2/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50156 91177308-0d34-0410-b5e6-96231b3b80d8
* Disable stack realignment for functions with dynamic-sized alloca'sAnton Korobeynikov2008-04-231-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50155 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide ABI-correct stack alignmentAnton Korobeynikov2008-04-231-5/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50154 91177308-0d34-0410-b5e6-96231b3b80d8
* Provide convenient helpers for some operationsAnton Korobeynikov2008-04-232-64/+88
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50153 91177308-0d34-0410-b5e6-96231b3b80d8
* Whitespace cleanupAnton Korobeynikov2008-04-231-28/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50152 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify code for propagation of constant arguments into Chris Lattner2008-04-231-46/+49
| | | | | | | callees. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50142 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a number of bugs in ipconstantprop, simplify the code, fit in 80 cols,Chris Lattner2008-04-231-41/+39
| | | | | | | fix read after free bug (PR2238). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50141 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite multiple return value handling in SCCP. Before, the -sccp passChris Lattner2008-04-231-112/+114
| | | | | | | | would turn every getresult instruction into undef. This helps with rdar://5778210 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50140 91177308-0d34-0410-b5e6-96231b3b80d8
* regenerateChris Lattner2008-04-232-196/+214
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50139 91177308-0d34-0410-b5e6-96231b3b80d8
* Validate that the result of a function type is valid using sharedChris Lattner2008-04-231-6/+15
| | | | | | | logic with vmcore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50138 91177308-0d34-0410-b5e6-96231b3b80d8