summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Added custom isel for MUL, SDIVREM, UDIVREM, SMUL_LOHI and UMUL_LOHI nodesBruno Cardoso Lopes2008-06-062-56/+76
| | | | | | | MUL is not anymore directly matched because its a pseudoinstruction. LogicI class fixed to zero-extend immediates. llvm-svn: 52036
* Added custom SELECT_CC loweringBruno Cardoso Lopes2008-06-065-14/+175
| | | | | | Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC llvm-svn: 52031
* Revert 52002.Dan Gohman2008-06-051-4/+1
| | | | llvm-svn: 52030
* Expose a public interface to this pass.Chris Lattner2008-06-051-40/+12
| | | | llvm-svn: 52029
* Let libcall semantics decide whether it knows about functions Chris Lattner2008-06-051-2/+2
| | | | | | with definitions or not. llvm-svn: 52028
* Don't break strict aliasing.Evan Cheng2008-06-051-6/+6
| | | | llvm-svn: 52026
* Remove debugging code.Owen Anderson2008-06-051-4/+0
| | | | llvm-svn: 52016
* Use the newly created helper on LiveIntervals.Owen Anderson2008-06-051-116/+21
| | | | llvm-svn: 52013
* Add a helper for constructing new live ranges that ended from an instruction ↵Owen Anderson2008-06-051-0/+15
| | | | | | to the end of its MBB. llvm-svn: 52012
* If BitWidth equals to ShtAmt, the RHSKnownZero[BitWidth-ShiftAmt-1] willZhou Sheng2008-06-051-1/+1
| | | | | | | | crash the opt. Just fix this. Test case in llvm/test/Transforms/InstCombine/2008-06-05-ashr-crash.ll llvm-svn: 52003
* Change the Verifier to support returning first class aggregrates.Matthijs Kooijman2008-06-051-1/+4
| | | | | | Add a testcase for functions returning first class aggregrates. llvm-svn: 52002
* As comments said, for negative value, the arithmetic Zhou Sheng2008-06-051-1/+1
| | | | | | | | | over-shift-right should return -1. So here it should be signed-extended, when bitwidth larger than 64. test case: llvm/test/ExecutionEngine/2008-06-05-APInt-OverAShr.ll llvm-svn: 51999
* Learn ScalarReplAggregrates how stores and loads of first class aggregratesMatthijs Kooijman2008-06-051-0/+51
| | | | | | | | | | work and how to replace them into individual values. Also, when trying to replace an aggregrate that is used by load or store with a single (large) integer, don't crash (but don't replace the aggregrate either). Also adds a testcase for both structs and arrays. llvm-svn: 51997
* Let StructRetPromotion check if all if its users are really calls or invokesn,Matthijs Kooijman2008-06-051-0/+4
| | | | | | not other instructions. This fixes a crash with the added testcase. llvm-svn: 51992
* Let StructRetPromotion check if it's users are really calling it and notMatthijs Kooijman2008-06-051-0/+4
| | | | | | passing its pointer. Fixes test with added testcase. llvm-svn: 51991
* Use use_iterator::getOperandNo instead of CallSite::hasArgument to check if aMatthijs Kooijman2008-06-051-7/+6
| | | | | | | function is passed as an argument instead of called. Also do this check a bit earlier. llvm-svn: 51990
* * Make CallSite::hasArgument const and let it take a const parameter.Matthijs Kooijman2008-06-051-1/+1
| | | | llvm-svn: 51989
* Update comments and documentation to reflect that GCSE and ValueNumbering areMatthijs Kooijman2008-06-054-1/+14
| | | | | | deprecated by the GVN and GVNPRE passes. llvm-svn: 51983
* Fix a memcpy lowering bug. Even though the memcpy alignment is smaller than ↵Evan Cheng2008-06-041-2/+3
| | | | | | the desired alignment, the frame destination alignment may still be larger than the desired alignment. Don't change its alignment to something smaller. llvm-svn: 51970
* Remove unneeded #include.Owen Anderson2008-06-041-1/+0
| | | | llvm-svn: 51955
* Oops. Should not be enabled by default.Evan Cheng2008-06-041-1/+1
| | | | llvm-svn: 51953
* Rewrite a bunch of the CBE's inline asm code, giving it theChris Lattner2008-06-041-45/+83
| | | | | | ability to handle indirect input operands. This fixes PR2407. llvm-svn: 51952
* Correctly construct live intervals for the copies we inserted into the ↵Owen Anderson2008-06-041-1/+38
| | | | | | predecessors of a block containing a PHI. llvm-svn: 51950
* Revert this.Evan Cheng2008-06-041-4/+0
| | | | llvm-svn: 51949
* Replace two manual loops with calls to CallSite::hasArguments (no functional ↵Matthijs Kooijman2008-06-042-10/+6
| | | | | | changes). llvm-svn: 51947
* Add CallSite::hasArgument to allow for seeing if a call passes a certain ↵Matthijs Kooijman2008-06-041-0/+7
| | | | | | value as an argument quickly. llvm-svn: 51946
* Add a Name parameter to two of the init methods of GetElementPointer to make ↵Matthijs Kooijman2008-06-041-6/+8
| | | | | | the name setting more consistent. llvm-svn: 51945
* Implement the two constructors in InsertValueInst and ExtractValueInst.Matthijs Kooijman2008-06-041-5/+54
| | | | | | | Add a Name argment to two init methods in these classes as well to make things a bit more consistent. llvm-svn: 51937
* Add a stack slot coloring pass. Not yet enabled.Evan Cheng2008-06-046-38/+412
| | | | llvm-svn: 51934
* LowerSubregs should not clobber any analysis.Evan Cheng2008-06-041-0/+4
| | | | llvm-svn: 51933
* Move #include to right place.Evan Cheng2008-06-042-1/+1
| | | | llvm-svn: 51932
* Register if-converter pass for -debug-pass.Evan Cheng2008-06-041-1/+4
| | | | llvm-svn: 51931
* More pass manager debugging outputs.Evan Cheng2008-06-041-0/+5
| | | | llvm-svn: 51930
* Change packed struct layout so that field sizesDuncan Sands2008-06-043-21/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | are the same as in unpacked structs, only field positions differ. This only matters for structs containing x86 long double or an apint; it may cause backwards compatibility problems if someone has bitcode containing a packed struct with a field of one of those types. The issue is that only 10 bytes are needed to hold an x86 long double: the store size is 10 bytes, but the ABI size is 12 or 16 bytes (linux/ darwin) which comes from rounding the store size up by the alignment. Because it seemed silly not to pack an x86 long double into 10 bytes in a packed struct, this is what was done. I now think this was a mistake. Reserving the ABI size for an x86 long double field even in a packed struct makes things more uniform: the ABI size is now always used when reserving space for a type. This means that developers are less likely to make mistakes. It also makes life easier for the CBE which otherwise could not represent all LLVM packed structs (PR2402). Front-end people might need to adjust the way they create LLVM structs - see following change to llvm-gcc. llvm-svn: 51928
* Add #includes required by GCC 4.3, thanks for Zhongxing XuChris Lattner2008-06-041-0/+1
| | | | | | for reporting this. llvm-svn: 51926
* Some Mips minor fixesBruno Cardoso Lopes2008-06-048-15/+48
| | | | | | Added support for mips little endian arch => mipsel llvm-svn: 51923
* We need to subtract one from this index because live ranges are open at the end.Owen Anderson2008-06-041-1/+1
| | | | llvm-svn: 51922
* Fix spellnig errorScott Michel2008-06-031-6/+5
| | | | llvm-svn: 51917
* LoopIndexSplit can sometimes result in cases where a block in its own ↵Owen Anderson2008-06-031-3/+6
| | | | | | | | domfrontier. Don't crash when we encounter one of these. llvm-svn: 51915
* Prevent a crash in debug dumps.Dale Johannesen2008-06-031-1/+5
| | | | llvm-svn: 51910
* Add StringConstantPrefix to control what theDale Johannesen2008-06-034-0/+4
| | | | | | assembler names of string constants look like. llvm-svn: 51909
* Find a better place to output hex constants corresponding to integers.Scott Michel2008-06-031-0/+5
| | | | llvm-svn: 51904
* Fixed bug in bad behavior in calculateFrameObjectOffsets,Bruno Cardoso Lopes2008-06-031-1/+2
| | | | | | | the solution commited is different from the previous patch to avoid int and unsigned comparison llvm-svn: 51899
* Do not run loop-aligner at -fast (e.g. -O0).Evan Cheng2008-06-031-1/+1
| | | | llvm-svn: 51898
* Revert this patchScott Michel2008-06-031-3/+1
| | | | llvm-svn: 51897
* "Unable to schedule <A> required by <B>" is more helpful thenDevang Patel2008-06-031-1/+5
| | | | | | "Unable to handle Pass that requires lower level Analysis pass" llvm-svn: 51892
* Add debugging aid.Devang Patel2008-06-031-1/+7
| | | | llvm-svn: 51891
* Fix whitespace in whitespace-significant pseudocode in a comment.Dan Gohman2008-06-031-2/+2
| | | | llvm-svn: 51890
* Constant folding for insertvalue and extractvalue.Dan Gohman2008-06-033-15/+116
| | | | llvm-svn: 51889
* Update dom tree. Fix PR 2372.Devang Patel2008-06-021-1/+4
| | | | llvm-svn: 51887
OpenPOWER on IntegriCloud