summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert previous patch. Still breaking things.Evan Cheng2006-10-031-49/+1
| | | | llvm-svn: 30698
* Another attempt at making ArgPromotion smarter. This patch no longer breaks ↵Owen Anderson2006-09-281-1/+49
| | | | | | Burg. llvm-svn: 30657
* revert previous two patches. They cause miscompilation of ↵Chris Lattner2006-09-151-35/+1
| | | | | | MultiSource/Applications/Burg llvm-svn: 30397
* Revert my previous work on ArgumentPromotion. Further investigation has ↵Owen Anderson2006-09-151-34/+46
| | | | | | | | revealed these changes to be incorrect. They just weren't showing up in any of our current testcases. llvm-svn: 30385
* Make ArgumentPromotion handle recursive functions that pass pointers in ↵Owen Anderson2006-09-021-11/+33
| | | | | | their recursive calls. llvm-svn: 30057
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-2/+2
| | | | llvm-svn: 29925
* Make iostream #inclusion explicitChris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25514
* Preserve calling conventions when doing IPOChris Lattner2005-05-091-1/+5
| | | | llvm-svn: 21798
* preserve the tail markerChris Lattner2005-05-061-0/+2
| | | | llvm-svn: 21734
* Remove trailing whitespaceMisha Brukman2005-04-211-8/+8
| | | | llvm-svn: 21427
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-7/+7
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Fix VS warnings.Chris Lattner2005-01-081-1/+1
| | | | llvm-svn: 19382
* Remove debugging codeChris Lattner2004-11-131-1/+0
| | | | llvm-svn: 17719
* Argument promotion transforms functions to unconditionally load theirChris Lattner2004-11-131-3/+51
| | | | | | | | | | argument pointers. This is only valid to do if the function already unconditionally loaded an argument or if the pointer passed in is known to be valid. Make sure to do the required checks. This fixed ArgumentPromotion/control-flow.ll and the Burg program. llvm-svn: 17718
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-1/+1
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Add commentChris Lattner2004-09-191-1/+1
| | | | llvm-svn: 16400
* Convert this pass to be a CallGraphSCCPass instead of a Pass, which eliminatesChris Lattner2004-09-181-39/+33
| | | | | | | the worklist and makes it more efficient. This does not change functionality at all. llvm-svn: 16390
* Fix typo in commentChris Lattner2004-09-171-1/+1
| | | | llvm-svn: 16384
* Changes For Bug 352Reid Spencer2004-09-011-4/+4
| | | | | | | | Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. llvm-svn: 16137
* bug 122:Reid Spencer2004-07-181-30/+1
| | | | | | - Excise dead CPR procesing. llvm-svn: 14944
* Make order of argument addition deterministic. In particular, the layoutChris Lattner2004-06-211-10/+35
| | | | | | | of ConstantInt objects in memory used to determine which order arguments were added in in some cases. llvm-svn: 14276
* Fairly substantial changes to update the alias analysis we are querying asChris Lattner2004-05-231-39/+92
| | | | | | | we make the transformation. This allows us to use interprocedural alias analyses successfully. llvm-svn: 13691
* Implement ArgumentPromotion/aggregate-promote.llChris Lattner2004-03-081-25/+145
| | | | | | | | | | | | | | | | | | This allows pointers to aggregate objects, whose elements are only read, to be promoted and passed in by element instead of by reference. This can enable a LOT of subsequent optimizations in the caller function. It's worth pointing out that this stuff happens a LOT of C++ programs, because objects in templates are generally passed around by reference. When these templates are instantiated on small aggregate or scalar types, however, it is more efficient to pass them in by value than by reference. This transformation triggers most on C++ codes (e.g. 334 times on eon), but does happen on C codes as well. For example, on mesa it triggers 72 times, and on gcc it triggers 35 times. this is amazingly good considering that we are using 'basicaa' so far. llvm-svn: 12202
* Implement: ArgumentPromotion/chained.llChris Lattner2004-03-071-0/+5
| | | | llvm-svn: 12200
* Fix another minor bug, exposed by perlbmkChris Lattner2004-03-071-3/+11
| | | | llvm-svn: 12198
* Fix a minor bug and turn debug output into, well, debug output.Chris Lattner2004-03-071-2/+2
| | | | llvm-svn: 12195
* New LLVM pass: argument promotion. This version only handles simple scalarChris Lattner2004-03-071-0/+328
variables. llvm-svn: 12193
OpenPOWER on IntegriCloud