summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Clean up some multiple-return-value code that is no longerDan Gohman2008-10-031-5/+1
| | | | | | applicable. llvm-svn: 57033
* remove redundant test (mayBeOverriden() includes hasLinkOnceLinkage)Nuno Lopes2008-09-291-1/+1
| | | | llvm-svn: 56786
* Rename isWeakForLinker to mayBeOverridden. Use itDuncan Sands2008-09-291-1/+1
| | | | | | | instead of hasWeakLinkage in a bunch of optimization passes. llvm-svn: 56782
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* Enable first-class aggregates support.Dan Gohman2008-07-231-3/+1
| | | | | | | | | | | | Remove the GetResultInst instruction. It is still accepted in LLVM assembly and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove support for return instructions with multiple values. These are auto-upgraded to use InsertValueInst instructions. The IRBuilder still accepts multiple-value returns, and auto-upgrades them to InsertValueInst instructions. llvm-svn: 53941
* Use a CallSite to find the nth argument of a call/invoke instruction instead ofMatthijs Kooijman2008-06-191-11/+11
| | | | | | | using getOperand() directly. This makes things work with invoke instructions as well. llvm-svn: 52489
* Reapply r52397 (make IPConstProp promote returned arguments), but fixed thisMatthijs Kooijman2008-06-181-3/+18
| | | | | | | | time. Sorry for the trouble! This time, also add a testcase, which I should have done in the first place... llvm-svn: 52455
* Reapply r52396, it was unrelated to the breakage (that was caused by r52397, myMatthijs Kooijman2008-06-181-53/+76
| | | | | | commit after this). llvm-svn: 52453
* revert recent patch which is causing widespread breakage.Chris Lattner2008-06-171-85/+53
| | | | llvm-svn: 52415
* Learn IPConstProp to propagate arguments that are directly returned. StrictlyMatthijs Kooijman2008-06-171-2/+11
| | | | | | | | speaking these are not constant values. However, when a function always returns one of its arguments, then from the point of view of each caller the return value is constant (or at least a known value) and can be replaced. llvm-svn: 52397
* Learn IPConstProp to look at individual return values and propagate themMatthijs Kooijman2008-06-171-53/+76
| | | | | | | | | | | individually. Also learn IPConstProp how returning first class aggregates work, in addition to old style multiple return instructions. Modify the return-constants testscase to confirm this behaviour. llvm-svn: 52396
* Fix PR2411, where ip constant prop would propagate theChris Lattner2008-06-091-0/+5
| | | | | | result of a weak function. llvm-svn: 52137
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-2/+4
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* simplify code for propagation of constant arguments into Chris Lattner2008-04-231-46/+49
| | | | | | callees. llvm-svn: 50142
* Fix a number of bugs in ipconstantprop, simplify the code, fit in 80 cols,Chris Lattner2008-04-231-41/+39
| | | | | | fix read after free bug (PR2238). llvm-svn: 50141
* Incorporate feedback.Devang Patel2008-03-201-24/+24
| | | | | | | | - Fix loop nest. - Use RetVals.size() - Check for null return value. llvm-svn: 48605
* Handle multiple ret values.Devang Patel2008-03-111-21/+59
| | | | llvm-svn: 48254
* Make Transforms to be 4.3 warnings-cleanAnton Korobeynikov2008-02-201-1/+2
| | | | llvm-svn: 47371
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-0/+4
| | | | llvm-svn: 36632
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-1/+2
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* For PR1136: Rename GlobalVariable::isExternal as isDeclaration to avoidReid Spencer2007-01-301-1/+1
| | | | | | confusion with external linkage types. llvm-svn: 33663
* Eliminate static ctors due to Statistic objectsChris Lattner2006-12-191-5/+4
| | | | llvm-svn: 32693
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-2/+2
| | | | | | is 'unsigned'. llvm-svn: 32279
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-3/+3
| | | | llvm-svn: 29925
* Remove trailing whitespaceMisha Brukman2005-04-211-5/+5
| | | | llvm-svn: 21427
* This mega patch converts us from using Function::a{iterator|begin|end} toChris Lattner2005-03-151-4/+4
| | | | | | | | using Function::arg_{iterator|begin|end}. Likewise Module::g* -> Module::global_*. This patch is contributed by Gabor Greif, thanks! llvm-svn: 20597
* Only cound if we actually made a change.Chris Lattner2004-12-111-3/+6
| | | | llvm-svn: 18800
* Remove note to selfChris Lattner2004-11-141-4/+0
| | | | llvm-svn: 17734
* If a function always returns a constant, replace all calls sites with thatChris Lattner2004-11-141-11/+80
| | | | | | | | | | | constant value. This makes the return value dead and allows for simplification in the caller. This implements IPConstantProp/return-constant.ll This triggers several dozen times throughout SPEC. llvm-svn: 17730
* Actually, leave the check in. This prevents us from counting dead argumentsChris Lattner2004-11-111-1/+1
| | | | | | as IPCP opportunities. llvm-svn: 17680
* Fix bug: IPConstantProp/deadarg.llChris Lattner2004-11-111-2/+2
| | | | llvm-svn: 17679
* Make IP Constant prop more aggressive about handling self recursive calls.Chris Lattner2004-11-101-2/+4
| | | | | | This implements IPConstantProp/recursion.ll llvm-svn: 17666
* Do not let dead constant expressions hanging off of functions prevent IPCP.Chris Lattner2004-11-091-0/+3
| | | | | | | This allows to elimination of a bunch of global pool descriptor args from programs being pool allocated (and is also generally useful!) llvm-svn: 17657
* 'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner2004-09-201-4/+4
| | | | | | | from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. llvm-svn: 16436
* Changes For Bug 352Reid Spencer2004-09-011-1/+1
| | | | | | | | 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
* Avoid an unnecessary isa<Constant>.Reid Spencer2004-07-181-3/+1
| | | | llvm-svn: 14963
* bug 122:Reid Spencer2004-07-181-5/+1
| | | | | | - Minimize redundant isa<GlobalValue> usage llvm-svn: 14948
* Finegrainify namespacificationChris Lattner2003-11-211-4/+3
| | | | llvm-svn: 10138
* Put all LLVM code into the llvm namespace, as per bug 109.Brian Gaeke2003-11-111-0/+4
| | | | llvm-svn: 9903
* Propagating constants to arguments can make other arguments constant. For nowChris Lattner2003-10-271-5/+15
| | | | | | do something dumb, and inefficient, but more complete. llvm-svn: 9542
* We might as well strip off any CPRs before propagationChris Lattner2003-10-231-1/+4
| | | | llvm-svn: 9437
* Check in initial version of ipcpChris Lattner2003-10-231-0/+110
llvm-svn: 9423
OpenPOWER on IntegriCloud