summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Remove much cruft from the MemAccessInst instructionChris Lattner2001-11-143-16/+16
| | | | llvm-svn: 1298
* Better heuristics for handling arraysChris Lattner2001-11-144-60/+218
| | | | llvm-svn: 1296
* * Change ExpressionConvertableToType to more closely match map behavior ofChris Lattner2001-11-132-35/+56
| | | | | | | | | 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 llvm-svn: 1288
* Avoid assertion failure when taking size of unsized array. Todo item herEChris Lattner2001-11-131-0/+7
| | | | llvm-svn: 1286
* Fix minor bugChris Lattner2001-11-121-0/+1
| | | | llvm-svn: 1273
* Changed insert instructions only for CONSTANTS - back to originalRuchira Sasanka2001-11-121-5/+7
| | | | llvm-svn: 1271
* Initail checking of structure swapperChris Lattner2001-11-101-0/+98
| | | | llvm-svn: 1248
* Initial checkin of structure mutatorChris Lattner2001-11-101-0/+501
| | | | llvm-svn: 1246
* Remove false optimization that basically broke everythingChris Lattner2001-11-091-19/+28
| | | | llvm-svn: 1219
* * Add better caching of data to avoid silly recusionsChris Lattner2001-11-081-3/+12
| | | | | | * 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 llvm-svn: 1218
* Improve raising significantlyChris Lattner2001-11-084-75/+267
| | | | llvm-svn: 1214
* Bug fix: cannot modify Phi operands while iterating over them!Vikram S. Adve2001-11-081-16/+23
| | | | llvm-svn: 1203
* Add #includes to enable buiding in Release modeChris Lattner2001-11-072-0/+2
| | | | llvm-svn: 1174
* Fix minor bug for shiftsChris Lattner2001-11-061-2/+3
| | | | llvm-svn: 1160
* Fix bugsChris Lattner2001-11-062-6/+13
| | | | llvm-svn: 1152
* Fix many bugs. Implement PHI transforms & other cyclesChris Lattner2001-11-061-54/+152
| | | | llvm-svn: 1151
* Fix bug with ADD nodes and malloc promotionChris Lattner2001-11-051-9/+29
| | | | llvm-svn: 1144
* Don't print spurious linking warnings about methods that are never used.Chris Lattner2001-11-052-30/+35
| | | | | | Cleanup ExprTypeConvert a bit. llvm-svn: 1141
* Use the expression map correctly.Chris Lattner2001-11-053-49/+188
| | | | llvm-svn: 1140
* New file for expression tree conversionChris Lattner2001-11-041-0/+494
| | | | llvm-svn: 1128
* Refactor code to share stuffChris Lattner2001-11-044-603/+148
| | | | llvm-svn: 1127
* * Relax restriction that prevented malloc promotion in certain casesChris Lattner2001-11-041-21/+22
| | | | llvm-svn: 1125
* * Disable debug outputChris Lattner2001-11-041-22/+48
| | | | | | | * fix minor bug with taking datasize of unsized array type * Insert code to support speculative changes later llvm-svn: 1122
* Convert backward conversion of expression trees into a new more powerful ↵Chris Lattner2001-11-041-11/+297
| | | | | | bidirectional approach. Add transforms for more instructions. llvm-svn: 1121
* Minor method renameChris Lattner2001-11-042-5/+5
| | | | llvm-svn: 1119
* Add transformations for Load and GetElementPtr. Fix broken transform with shr.Chris Lattner2001-11-041-0/+99
| | | | llvm-svn: 1118
* Fix cast instructions that end up in bad places in GCC outputChris Lattner2001-11-041-0/+84
| | | | llvm-svn: 1117
* Avoid making a broken transformation!Chris Lattner2001-11-031-20/+33
| | | | llvm-svn: 1115
* Add new cleanup pass:Chris Lattner2001-11-031-7/+73
| | | | | | | | | | | | | | | | | | // 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 ] // llvm-svn: 1114
* * Export method to merge identically named methodsChris Lattner2001-11-031-3/+80
| | | | | | | | | | | | | | * 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; } llvm-svn: 1110
* Commented out code so that copies are inserted for all phi argsRuchira Sasanka2001-11-031-8/+19
| | | | | | CahedCopyMap was disabled to insert phi elimination code for all phi args llvm-svn: 1105
* Changes to compile the TSP benchmark successfully. Favor warning instead of ↵Chris Lattner2001-11-031-38/+51
| | | | | | assertion failures. llvm-svn: 1103
* Add code to link method together with the same name if one is vararg and the ↵Chris Lattner2001-11-031-42/+203
| | | | | | | | | | | | 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 llvm-svn: 1102
* Don't forget to link type names together too. Fix for Olden/mst benchmarkChris Lattner2001-11-031-0/+45
| | | | llvm-svn: 1094
* Add extra code for debugging linker problemsChris Lattner2001-11-031-2/+19
| | | | llvm-svn: 1091
* * Add comments for peepholesChris Lattner2001-11-011-3/+91
| | | | | | | | | | | | | | * 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. :) llvm-svn: 1085
* Add DCE as integral part of the level raising to avoid processing ↵Chris Lattner2001-11-011-4/+9
| | | | | | instructions that are dead llvm-svn: 1084
* Expose the low level DCE mechanism to external usersChris Lattner2001-11-011-10/+20
| | | | | | Refactor code to support it llvm-svn: 1083
* * Implement expression type conversion for constant valuesChris Lattner2001-11-011-11/+76
| | | | | | | | | | | | | | | * 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 llvm-svn: 1080
* Simplify DCE code a lotChris Lattner2001-11-011-26/+5
| | | | llvm-svn: 1079
* * Convert getelementptr/store pairs into a single storeChris Lattner2001-11-011-1/+26
| | | | | | * Convert getelementptr/load pairs into a single load llvm-svn: 1075
* Initial checkin of level raising code, after move and cleanup and expands ↵Chris Lattner2001-11-011-0/+592
| | | | | | from the opt directory llvm-svn: 1074
* Propogate name to the malloc itself instead of to the castChris Lattner2001-11-011-1/+3
| | | | llvm-svn: 1071
* Use the correct prototype for malloc and freeChris Lattner2001-10-311-2/+2
| | | | llvm-svn: 1066
* Implement code to convert %malloc and %free FUNCTION CALLS into the ↵Chris Lattner2001-10-311-3/+118
| | | | | | instruction equivalent llvm-svn: 1065
* Implemented constant propogation of cast instructionsChris Lattner2001-10-312-3/+31
| | | | llvm-svn: 1064
* Initial version of GCC cleanup pass: just removes extraneous global symbol ↵Chris Lattner2001-10-311-0/+67
| | | | | | table entries for types llvm-svn: 1062
* Fix bug when inlining a method that refers to a global variableChris Lattner2001-10-311-2/+2
| | | | llvm-svn: 1056
* Fix broken assertion. Didn't allow for pointer caseChris Lattner2001-10-291-6/+3
| | | | llvm-svn: 1034
* Pull method symbols over when linking. Otherwise the result of the link ↵Chris Lattner2001-10-291-0/+1
| | | | | | will appear stripped llvm-svn: 1033
OpenPOWER on IntegriCloud