aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms
Commit message (Collapse)AuthorAgeFilesLines
...
* Support internal linkageChris Lattner2001-11-261-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1382 91177308-0d34-0410-b5e6-96231b3b80d8
* Build IPO directoryChris Lattner2001-11-261-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1381 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement support for internal methodsChris Lattner2001-11-261-5/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1380 91177308-0d34-0410-b5e6-96231b3b80d8
* Include const prop as part of -raiseChris Lattner2001-11-261-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1379 91177308-0d34-0410-b5e6-96231b3b80d8
* Misc cleanupsChris Lattner2001-11-261-53/+53
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1377 91177308-0d34-0410-b5e6-96231b3b80d8
* Expose constant propogation of an instruction in a clean wayChris Lattner2001-11-261-37/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1376 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement DCE of global valuesChris Lattner2001-11-262-0/+65
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1360 91177308-0d34-0410-b5e6-96231b3b80d8
* Support array indexingChris Lattner2001-11-261-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1345 91177308-0d34-0410-b5e6-96231b3b80d8
* Support Composite's, not just structsChris Lattner2001-11-261-14/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1344 91177308-0d34-0410-b5e6-96231b3b80d8
* losslessCastableTypes is moved to Type classChris Lattner2001-11-261-50/+133
| | | | | | | getStructOffsetType supports array indexing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1343 91177308-0d34-0410-b5e6-96231b3b80d8
* Support selectable structure transformationsChris Lattner2001-11-261-13/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1342 91177308-0d34-0410-b5e6-96231b3b80d8
* Support mutation of array indexingChris Lattner2001-11-261-20/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1341 91177308-0d34-0410-b5e6-96231b3b80d8
* Clean up code, implement array indexing stuffChris Lattner2001-11-261-423/+175
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1340 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement array indexing reverse engineeringChris Lattner2001-11-261-177/+298
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1339 91177308-0d34-0410-b5e6-96231b3b80d8
* Print incoming arguments and return values.Vikram S. Adve2001-11-151-14/+46
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1315 91177308-0d34-0410-b5e6-96231b3b80d8
* -cleangcc pass now remove type names that are never referenced and type ↵Chris Lattner2001-11-151-3/+43
| | | | | | names for pointers to primitive types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1312 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove much cruft from the MemAccessInst instructionChris Lattner2001-11-143-16/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1298 91177308-0d34-0410-b5e6-96231b3b80d8
* Better heuristics for handling arraysChris Lattner2001-11-144-60/+218
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1296 91177308-0d34-0410-b5e6-96231b3b80d8
* * 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1288 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid assertion failure when taking size of unsized array. Todo item herEChris Lattner2001-11-131-0/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1286 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix minor bugChris Lattner2001-11-121-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1273 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed insert instructions only for CONSTANTS - back to originalRuchira Sasanka2001-11-121-5/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1271 91177308-0d34-0410-b5e6-96231b3b80d8
* Initail checking of structure swapperChris Lattner2001-11-101-0/+98
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1248 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial checkin of structure mutatorChris Lattner2001-11-101-0/+501
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1246 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove false optimization that basically broke everythingChris Lattner2001-11-091-19/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1219 91177308-0d34-0410-b5e6-96231b3b80d8
* * 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1218 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve raising significantlyChris Lattner2001-11-084-75/+267
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1214 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix: cannot modify Phi operands while iterating over them!Vikram S. Adve2001-11-081-16/+23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1203 91177308-0d34-0410-b5e6-96231b3b80d8
* Add #includes to enable buiding in Release modeChris Lattner2001-11-072-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1174 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix minor bug for shiftsChris Lattner2001-11-061-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1160 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bugsChris Lattner2001-11-062-6/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1152 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix many bugs. Implement PHI transforms & other cyclesChris Lattner2001-11-061-54/+152
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1151 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug with ADD nodes and malloc promotionChris Lattner2001-11-051-9/+29
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1144 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't print spurious linking warnings about methods that are never used.Chris Lattner2001-11-052-30/+35
| | | | | | | Cleanup ExprTypeConvert a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1141 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the expression map correctly.Chris Lattner2001-11-053-49/+188
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1140 91177308-0d34-0410-b5e6-96231b3b80d8
* New file for expression tree conversionChris Lattner2001-11-041-0/+494
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1128 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor code to share stuffChris Lattner2001-11-044-603/+148
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1127 91177308-0d34-0410-b5e6-96231b3b80d8
* * Relax restriction that prevented malloc promotion in certain casesChris Lattner2001-11-041-21/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1125 91177308-0d34-0410-b5e6-96231b3b80d8
* * 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1122 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert backward conversion of expression trees into a new more powerful ↵Chris Lattner2001-11-041-11/+297
| | | | | | bidirectional approach. Add transforms for more instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1121 91177308-0d34-0410-b5e6-96231b3b80d8
* Minor method renameChris Lattner2001-11-042-5/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1119 91177308-0d34-0410-b5e6-96231b3b80d8
* Add transformations for Load and GetElementPtr. Fix broken transform with shr.Chris Lattner2001-11-041-0/+99
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1118 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix cast instructions that end up in bad places in GCC outputChris Lattner2001-11-041-0/+84
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1117 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid making a broken transformation!Chris Lattner2001-11-031-20/+33
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1115 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 ] // git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1114 91177308-0d34-0410-b5e6-96231b3b80d8
* * 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; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1110 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1105 91177308-0d34-0410-b5e6-96231b3b80d8
* Changes to compile the TSP benchmark successfully. Favor warning instead of ↵Chris Lattner2001-11-031-38/+51
| | | | | | assertion failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1103 91177308-0d34-0410-b5e6-96231b3b80d8
* 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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1102 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't forget to link type names together too. Fix for Olden/mst benchmarkChris Lattner2001-11-031-0/+45
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1094 91177308-0d34-0410-b5e6-96231b3b80d8