aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms
AgeCommit message (Collapse)Author
2001-11-26Support mutation of array indexingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1341 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26Clean up code, implement array indexing stuffChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1340 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-26Implement array indexing reverse engineeringChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1339 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15Print incoming arguments and return values.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1315 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-15-cleangcc pass now remove type names that are never referenced and type ↵Chris Lattner
names for pointers to primitive types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1312 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14Remove much cruft from the MemAccessInst instructionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1298 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-14Better heuristics for handling arraysChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1296 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13* Change ExpressionConvertableToType to more closely match map behavior ofChris Lattner
ConvertExpressionToType * Make ValueHandle's remove instruction from maps when they are deleted so that no false map hits occur if a subsequent instruction is allocated to the same space in memory. This was a VERY VERY VERY EVIL NASTY BUG to track down. :-P git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1288 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-13Avoid assertion failure when taking size of unsized array. Todo item herEChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1286 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12Fix minor bugChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1273 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-12Changed insert instructions only for CONSTANTS - back to originalRuchira Sasanka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1271 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10Initail checking of structure swapperChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1248 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-10Initial checkin of structure mutatorChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1246 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-09Remove false optimization that basically broke everythingChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1219 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08* Add better caching of data to avoid silly recusionsChris Lattner
* Only check to see if uses of instructions can be converted for expressions... so we don't look at all of the uses of a constant. This was making the code unnecessarily conservative git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1218 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08Improve raising significantlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1214 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-08Bug fix: cannot modify Phi operands while iterating over them!Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1203 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-07Add #includes to enable buiding in Release modeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1174 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06Fix minor bug for shiftsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1160 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06Fix bugsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1152 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-06Fix many bugs. Implement PHI transforms & other cyclesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1151 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05Fix bug with ADD nodes and malloc promotionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1144 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05Don't print spurious linking warnings about methods that are never used.Chris Lattner
Cleanup ExprTypeConvert a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1141 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-05Use the expression map correctly.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1140 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04New file for expression tree conversionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1128 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04Refactor code to share stuffChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1127 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04* Relax restriction that prevented malloc promotion in certain casesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1125 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04* Disable debug outputChris Lattner
* fix minor bug with taking datasize of unsized array type * Insert code to support speculative changes later git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1122 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04Convert backward conversion of expression trees into a new more powerful ↵Chris Lattner
bidirectional approach. Add transforms for more instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1121 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04Minor method renameChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1119 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04Add transformations for Load and GetElementPtr. Fix broken transform with shr.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1118 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-04Fix cast instructions that end up in bad places in GCC outputChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1117 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Avoid making a broken transformation!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1115 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Add new cleanup pass:Chris Lattner
// 1. PHI nodes with multiple entries for the same predecessor. GCC sometimes // generates code that looks like this: // // bb7: br bool %cond1004, label %bb8, label %bb8 // bb8: %reg119 = phi uint [ 0, %bb7 ], [ 1, %bb7 ] // // which is completely illegal LLVM code. To compensate for this, we insert // an extra basic block, and convert the code to look like this: // // bb7: br bool %cond1004, label %bbX, label %bb8 // bbX: br label bb8 // bb8: %reg119 = phi uint [ 0, %bbX ], [ 1, %bb7 ] // git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1114 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03* Export method to merge identically named methodsChris Lattner
* Add code to fix PHI nodes that are missing arguments. These PHI nodes can be generated by GCC if there is an uninitialized variable flowing into a merge point. For example: int foo(int y) { int X; if (y) X = 1; return X; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1110 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Commented out code so that copies are inserted for all phi argsRuchira Sasanka
CahedCopyMap was disabled to insert phi elimination code for all phi args git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1105 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Changes to compile the TSP benchmark successfully. Favor warning instead of ↵Chris Lattner
assertion failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1103 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Add code to link method together with the same name if one is vararg and the ↵Chris Lattner
other isn't. This resolves definitions like this: %list * "foo"(...) %list * "foo"(int) together which can often occur because C programmers don't put prototypes in like they should. GRR git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1102 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Don't forget to link type names together too. Fix for Olden/mst benchmarkChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1094 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-03Add extra code for debugging linker problemsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1091 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01* Add comments for peepholesChris Lattner
* Implement new peephole: // Peephole optimize the following instructions: // %t1 = cast {<...>} * %StructPtr to <ty> * // // Into: %t2 = getelementptr {<...>} * %StructPtr, <0, 0, 0, ...> // %t1 = cast <eltype> * %t1 to <ty> * This peephole eliminated 9 evil casts in the health benchmark, and completely turned the addList method around. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1085 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01Add DCE as integral part of the level raising to avoid processing ↵Chris Lattner
instructions that are dead git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1084 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01Expose the low level DCE mechanism to external usersChris Lattner
Refactor code to support it git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1083 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01* Implement expression type conversion for constant valuesChris Lattner
* Fix a problem setting a name on a constant value that died because no symbol table was passed in * Add some comments describing the passes * Implement a new peephole: // Peephole optimize the following instructions: // %t = cast <T1>* %P to <T2> * ;; If T1 is losslessly convertable to T2 // store <T2> %V, <T2>* %t // // Into: // %t = cast <T2> %V to <T1> // store <T1> %t2, <T1>* %P git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1080 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01Simplify DCE code a lotChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1079 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01* Convert getelementptr/store pairs into a single storeChris Lattner
* Convert getelementptr/load pairs into a single load git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1075 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01Initial checkin of level raising code, after move and cleanup and expands ↵Chris Lattner
from the opt directory git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1074 91177308-0d34-0410-b5e6-96231b3b80d8
2001-11-01Propogate name to the malloc itself instead of to the castChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1071 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31Use the correct prototype for malloc and freeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1066 91177308-0d34-0410-b5e6-96231b3b80d8
2001-10-31Implement code to convert %malloc and %free FUNCTION CALLS into the ↵Chris Lattner
instruction equivalent git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1065 91177308-0d34-0410-b5e6-96231b3b80d8