summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/GlobalOpt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* If we found a dead global, we should at least delete it...Chris Lattner2004-10-081-0/+1
| | | | llvm-svn: 16858
* * Pull out the meat of runOnModule into another function for clarity.Chris Lattner2004-10-081-45/+101
| | | | | | | | | | * Do not lead dangling dead constants prevent optimization * Iterate global optimization while we're making progress. These changes allow us to be more aggressive, handling cases like GlobalOpt/iterate.llx without a problem (turning it into 'ret int 0'). llvm-svn: 16857
* We might as well delete the known-dead global sooner rather than later sinceChris Lattner2004-10-081-0/+2
| | | | | | we know it is dead. llvm-svn: 16855
* Implement SRA for global variables. This allows the other global variableChris Lattner2004-10-081-32/+137
| | | | | | | | | | | optimizations to trigger much more often. This allows the elimination of several dozen more global variables in Programs/External. Note that we only do this for non-constant globals: constant globals will already be optimized out if the accesses to them permit it. This implements Transforms/GlobalOpt/globalsra.llx llvm-svn: 16842
* Improve comments, no functionality changesChris Lattner2004-10-071-18/+53
| | | | llvm-svn: 16814
* Fix a bug in the safety analysis routineChris Lattner2004-10-071-3/+3
| | | | llvm-svn: 16804
* * Rename pass to globalopt, since we do more than just constifyChris Lattner2004-10-071-0/+250
* Instead of handling dead functions specially, just nuke them. * Be more aggressive about cleaning up after constification, in particular, handle getelementptr instructions and constantexprs. * Be a little bit more structured about how we process globals. *** Delete globals that are only stored to, and never read. These are clearly not useful, so they should go. This implements deadglobal.llx This last one triggers quite a few times. In particular, 2208 in the external tests, 1865 of which are in 252.eon. This shrinks eon from 1995094 to 1732341 bytes of bytecode. llvm-svn: 16802
OpenPOWER on IntegriCloud