aboutsummaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix illegal MMX_MOVDQ2Qrr pattern. vector_extract result must be a scalar value.Evan Cheng2008-04-251-2/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50291 91177308-0d34-0410-b5e6-96231b3b80d8
* Special handling for MMX values being passed in either GPR64 or lower ↵Evan Cheng2008-04-252-2/+32
| | | | | | 64-bits of XMM registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50289 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove the code from CodeGenPrepare that moved getresult instructionsDan Gohman2008-04-252-92/+156
| | | | | | | | | | | | to the block that defines their operands. This doesn't work in the case that the operand is an invoke, because invoke is a terminator and must be the last instruction in a block. Replace it with support in SelectionDAGISel for copying struct values into sequences of virtual registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50279 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix MMX_MOVQ2DQrr pattern. It's illegal to do a bitconvert from a smaller ↵Evan Cheng2008-04-252-6/+8
| | | | | | type to a larger one. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50278 91177308-0d34-0410-b5e6-96231b3b80d8
* Pull the code to perform an INSERT_VECTOR_ELT in memory out into its own Nate Begeman2008-04-251-43/+68
| | | | | | | | function, and then use it to fix a bug in SplitVectorOp that expected inserts to always have constant insertion indices. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50273 91177308-0d34-0410-b5e6-96231b3b80d8
* Feedback from chrisNate Begeman2008-04-251-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50271 91177308-0d34-0410-b5e6-96231b3b80d8
* add a noteChris Lattner2008-04-251-0/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50267 91177308-0d34-0410-b5e6-96231b3b80d8
* 80 col violation.Evan Cheng2008-04-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50266 91177308-0d34-0410-b5e6-96231b3b80d8
* 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