Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Added custom isel for MUL, SDIVREM, UDIVREM, SMUL_LOHI and UMUL_LOHI nodes | Bruno Cardoso Lopes | 2008-06-06 | 2 | -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 lowering | Bruno Cardoso Lopes | 2008-06-06 | 5 | -14/+175 |
| | | | | | | Added special isel for ADDE,SUBE and new patterns to match SUBC,ADDC llvm-svn: 52031 | ||||
* | Revert 52002. | Dan Gohman | 2008-06-05 | 1 | -4/+1 |
| | | | | llvm-svn: 52030 | ||||
* | Expose a public interface to this pass. | Chris Lattner | 2008-06-05 | 1 | -40/+12 |
| | | | | llvm-svn: 52029 | ||||
* | Let libcall semantics decide whether it knows about functions | Chris Lattner | 2008-06-05 | 1 | -2/+2 |
| | | | | | | with definitions or not. llvm-svn: 52028 | ||||
* | Don't break strict aliasing. | Evan Cheng | 2008-06-05 | 1 | -6/+6 |
| | | | | llvm-svn: 52026 | ||||
* | Remove debugging code. | Owen Anderson | 2008-06-05 | 1 | -4/+0 |
| | | | | llvm-svn: 52016 | ||||
* | Use the newly created helper on LiveIntervals. | Owen Anderson | 2008-06-05 | 1 | -116/+21 |
| | | | | llvm-svn: 52013 | ||||
* | Add a helper for constructing new live ranges that ended from an instruction ↵ | Owen Anderson | 2008-06-05 | 1 | -0/+15 |
| | | | | | | to the end of its MBB. llvm-svn: 52012 | ||||
* | If BitWidth equals to ShtAmt, the RHSKnownZero[BitWidth-ShiftAmt-1] will | Zhou Sheng | 2008-06-05 | 1 | -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 Kooijman | 2008-06-05 | 1 | -1/+4 |
| | | | | | | Add a testcase for functions returning first class aggregrates. llvm-svn: 52002 | ||||
* | As comments said, for negative value, the arithmetic | Zhou Sheng | 2008-06-05 | 1 | -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 aggregrates | Matthijs Kooijman | 2008-06-05 | 1 | -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 Kooijman | 2008-06-05 | 1 | -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 not | Matthijs Kooijman | 2008-06-05 | 1 | -0/+4 |
| | | | | | | passing its pointer. Fixes test with added testcase. llvm-svn: 51991 | ||||
* | Use use_iterator::getOperandNo instead of CallSite::hasArgument to check if a | Matthijs Kooijman | 2008-06-05 | 1 | -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 Kooijman | 2008-06-05 | 1 | -1/+1 |
| | | | | llvm-svn: 51989 | ||||
* | Update comments and documentation to reflect that GCSE and ValueNumbering are | Matthijs Kooijman | 2008-06-05 | 4 | -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 Cheng | 2008-06-04 | 1 | -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 Anderson | 2008-06-04 | 1 | -1/+0 |
| | | | | llvm-svn: 51955 | ||||
* | Oops. Should not be enabled by default. | Evan Cheng | 2008-06-04 | 1 | -1/+1 |
| | | | | llvm-svn: 51953 | ||||
* | Rewrite a bunch of the CBE's inline asm code, giving it the | Chris Lattner | 2008-06-04 | 1 | -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 Anderson | 2008-06-04 | 1 | -1/+38 |
| | | | | | | predecessors of a block containing a PHI. llvm-svn: 51950 | ||||
* | Revert this. | Evan Cheng | 2008-06-04 | 1 | -4/+0 |
| | | | | llvm-svn: 51949 | ||||
* | Replace two manual loops with calls to CallSite::hasArguments (no functional ↵ | Matthijs Kooijman | 2008-06-04 | 2 | -10/+6 |
| | | | | | | changes). llvm-svn: 51947 | ||||
* | Add CallSite::hasArgument to allow for seeing if a call passes a certain ↵ | Matthijs Kooijman | 2008-06-04 | 1 | -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 Kooijman | 2008-06-04 | 1 | -6/+8 |
| | | | | | | the name setting more consistent. llvm-svn: 51945 | ||||
* | Implement the two constructors in InsertValueInst and ExtractValueInst. | Matthijs Kooijman | 2008-06-04 | 1 | -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 Cheng | 2008-06-04 | 6 | -38/+412 |
| | | | | llvm-svn: 51934 | ||||
* | LowerSubregs should not clobber any analysis. | Evan Cheng | 2008-06-04 | 1 | -0/+4 |
| | | | | llvm-svn: 51933 | ||||
* | Move #include to right place. | Evan Cheng | 2008-06-04 | 2 | -1/+1 |
| | | | | llvm-svn: 51932 | ||||
* | Register if-converter pass for -debug-pass. | Evan Cheng | 2008-06-04 | 1 | -1/+4 |
| | | | | llvm-svn: 51931 | ||||
* | More pass manager debugging outputs. | Evan Cheng | 2008-06-04 | 1 | -0/+5 |
| | | | | llvm-svn: 51930 | ||||
* | Change packed struct layout so that field sizes | Duncan Sands | 2008-06-04 | 3 | -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 Xu | Chris Lattner | 2008-06-04 | 1 | -0/+1 |
| | | | | | | for reporting this. llvm-svn: 51926 | ||||
* | Some Mips minor fixes | Bruno Cardoso Lopes | 2008-06-04 | 8 | -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 Anderson | 2008-06-04 | 1 | -1/+1 |
| | | | | llvm-svn: 51922 | ||||
* | Fix spellnig error | Scott Michel | 2008-06-03 | 1 | -6/+5 |
| | | | | llvm-svn: 51917 | ||||
* | LoopIndexSplit can sometimes result in cases where a block in its own ↵ | Owen Anderson | 2008-06-03 | 1 | -3/+6 |
| | | | | | | | | domfrontier. Don't crash when we encounter one of these. llvm-svn: 51915 | ||||
* | Prevent a crash in debug dumps. | Dale Johannesen | 2008-06-03 | 1 | -1/+5 |
| | | | | llvm-svn: 51910 | ||||
* | Add StringConstantPrefix to control what the | Dale Johannesen | 2008-06-03 | 4 | -0/+4 |
| | | | | | | assembler names of string constants look like. llvm-svn: 51909 | ||||
* | Find a better place to output hex constants corresponding to integers. | Scott Michel | 2008-06-03 | 1 | -0/+5 |
| | | | | llvm-svn: 51904 | ||||
* | Fixed bug in bad behavior in calculateFrameObjectOffsets, | Bruno Cardoso Lopes | 2008-06-03 | 1 | -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 Cheng | 2008-06-03 | 1 | -1/+1 |
| | | | | llvm-svn: 51898 | ||||
* | Revert this patch | Scott Michel | 2008-06-03 | 1 | -3/+1 |
| | | | | llvm-svn: 51897 | ||||
* | "Unable to schedule <A> required by <B>" is more helpful then | Devang Patel | 2008-06-03 | 1 | -1/+5 |
| | | | | | | "Unable to handle Pass that requires lower level Analysis pass" llvm-svn: 51892 | ||||
* | Add debugging aid. | Devang Patel | 2008-06-03 | 1 | -1/+7 |
| | | | | llvm-svn: 51891 | ||||
* | Fix whitespace in whitespace-significant pseudocode in a comment. | Dan Gohman | 2008-06-03 | 1 | -2/+2 |
| | | | | llvm-svn: 51890 | ||||
* | Constant folding for insertvalue and extractvalue. | Dan Gohman | 2008-06-03 | 3 | -15/+116 |
| | | | | llvm-svn: 51889 | ||||
* | Update dom tree. Fix PR 2372. | Devang Patel | 2008-06-02 | 1 | -1/+4 |
| | | | | llvm-svn: 51887 |