summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/SCCP.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Fix unused variable warnings.Devang Patel2008-11-211-0/+2
| | | | llvm-svn: 59778
* Replace explicit loop with utility function.Nick Lewycky2008-11-031-4/+2
| | | | llvm-svn: 58593
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-2/+2
| | | | llvm-svn: 55779
* improve encapsulation of the BBExecutable set.Chris Lattner2008-08-231-8/+4
| | | | llvm-svn: 55271
* Switch an assortment of maps, sets and vectors to more efficient versions,Chris Lattner2008-08-231-28/+25
| | | | | | patch contributed by m-s! llvm-svn: 55270
* Temporarily revert r54792. It's causing an ICE during bootstrapping.Bill Wendling2008-08-141-5/+5
| | | | llvm-svn: 54804
* Use DenseMap. Patch by Pratik Solanki.Devang Patel2008-08-141-5/+5
| | | | llvm-svn: 54792
* Fix SCCP's handling of struct value loads and stores. SCCP doesn'tDan Gohman2008-08-131-2/+0
| | | | | | | track individual leaf values in such cases, so it needs to treat struct values as normal values in this case. llvm-svn: 54760
* Enable first-class aggregates support.Dan Gohman2008-07-231-41/+0
| | | | | | | | | | | | 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
* Tidy up some commments and use the getAggregateOperand andDan Gohman2008-06-201-9/+9
| | | | | | getInsertedValueOperand accessors. Thanks Matthijs! llvm-svn: 52543
* Fix the conditions under which SCCP should examine insertvalueDan Gohman2008-06-201-1/+18
| | | | | | instructions. Thanks to Matthijs Kooijman for pointing this out! llvm-svn: 52542
* Teach SCCP about insertvalue and extractvalue, and aboutDan Gohman2008-06-201-13/+107
| | | | | | | propagating constants across aggregate return values when insertvalue and extractvalue are used. llvm-svn: 52520
* Fix PR2358 by resolving calls with undef arguments to overdefined.Chris Lattner2008-05-241-0/+6
| | | | llvm-svn: 51535
* Allow for switch with no cases. Was causing faultDale Johannesen2008-05-231-0/+2
| | | | | | in gcc.dg/pr27531-1.c. llvm-svn: 51464
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-7/+7
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* Fix various DOUTs to not call the extremely expensive Value::getName() Chris Lattner2008-05-111-5/+5
| | | | | | | | method. DOUT statements are disabled when assertions are off, but the side effects of getName() are still evaluated. Just call getNameSTart, which is close enough and doesn't cause heap traffic. llvm-svn: 50958
* Simplify code by using SwitchInst::findCaseValue instead of reimplementing it.Chris Lattner2008-05-101-14/+2
| | | | llvm-svn: 50957
* Remove 'unwinds to' support from mainline. This patch undoes r47802 r47989Nick Lewycky2008-04-251-5/+0
| | | | | | r48047 r48084 r48085 r48086 r48088 r48096 r48099 r48109 and r48123. llvm-svn: 50265
* code restructuring, not functionality change.Chris Lattner2008-04-241-22/+24
| | | | llvm-svn: 50203
* Don't replace multiple result of calls with undef, Chris Lattner2008-04-241-2/+4
| | | | | | | sccp tracks getresult values, not call values in this case. llvm-svn: 50202
* code cleanup, no functionality change.Chris Lattner2008-04-241-19/+21
| | | | llvm-svn: 50201
* Rewrite multiple return value handling in SCCP. Before, the -sccp passChris Lattner2008-04-231-112/+114
| | | | | | | would turn every getresult instruction into undef. This helps with rdar://5778210 llvm-svn: 50140
* Be conservative if getresult operand is neither call nor invoke.Devang Patel2008-04-091-2/+3
| | | | llvm-svn: 49430
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-1/+1
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Don't include <map> in Pass.h, which doesn't need it. This requiresDan Gohman2008-03-211-0/+1
| | | | | | adding <map> to many files that actually do need it. llvm-svn: 48667
* Add TODO reminder.Devang Patel2008-03-111-0/+1
| | | | llvm-svn: 48227
* Initial multiple return values support.Devang Patel2008-03-111-19/+95
| | | | llvm-svn: 48210
* SCCP also needs to be taught to follow unwind_toNick Lewycky2008-03-091-0/+4
| | | | llvm-svn: 48109
* Not all users of a BB are Instructions any more.Nick Lewycky2008-03-081-1/+6
| | | | llvm-svn: 48047
* Make Transforms to be 4.3 warnings-cleanAnton Korobeynikov2008-02-201-2/+2
| | | | llvm-svn: 47371
* Fix PR1938 by forcing the code that uses an undefined value to branch oneChris Lattner2008-01-281-4/+19
| | | | | | | | way or the other. Rewriting the code itself prevents subsequent analysis passes from making contradictory conclusions about the code that could cause an infeasible path to be made feasible. llvm-svn: 46427
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Disable null pointer folding transforms for non-generic address spaces. This ↵Christopher Lamb2007-12-291-1/+3
| | | | | | should probably be a target-specific predicate based on address space. That way for targets where this isn't applicable the predicate can be optimized away. llvm-svn: 45403
* Use empty() member functions when that's what's being tested for insteadDan Gohman2007-10-031-1/+1
| | | | | | of comparing begin() and end(). llvm-svn: 42585
* Place SCCPSolver also in the anonymous namespace. ThisDuncan Sands2007-07-201-3/+3
| | | | | | pacifies g++-4.2. llvm-svn: 40089
* Fix PR1431Devang Patel2007-05-171-1/+1
| | | | | | Test case at Transformations/SCCP/2007-05-16-InvokeCrash.ll llvm-svn: 37185
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-4/+4
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-4/+4
| | | | | | | 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/+7
| | | | llvm-svn: 36632
* fix long linesChris Lattner2007-04-141-4/+4
| | | | llvm-svn: 36031
* minor cleanupsChris Lattner2007-03-041-7/+8
| | | | llvm-svn: 34904
* For PR1195:Reid Spencer2007-02-151-4/+4
| | | | | | | Rename PackedType -> VectorType, ConstantPacked -> ConstantVector, and PackedTyID -> VectorTyID. No functional changes. llvm-svn: 34293
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-3/+4
| | | | | | | 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
* Switch this back to using an std::map. DenseMap entries are getting invalidatedChris Lattner2007-02-021-5/+5
| | | | llvm-svn: 33799
* Remove more malloc thrashing, this speeds up IPSCCP on kimwitu another 6.7%.Chris Lattner2007-02-021-10/+10
| | | | llvm-svn: 33796
* Convert an std::set to SmallSet, this speeds up IPSCCP 17% on kimwitu.Chris Lattner2007-02-021-5/+5
| | | | llvm-svn: 33794
* eliminate a malloc/free for (almost) every GEP processed. This speeds upChris Lattner2007-02-021-2/+3
| | | | | | IPSCCP 3.3% on kimwitu. llvm-svn: 33793
* switch hash_map's over to DenseMap in SCCP. This speeds up SCCP by 30% inChris Lattner2007-02-021-19/+21
| | | | | | a release-assert build on kimwitu++. llvm-svn: 33792
* Changes to support making the shift instructions be true BinaryOperators.Reid Spencer2007-02-021-1/+0
| | | | | | | | | | | | This feature is needed in order to support shifts of more than 255 bits on large integer types. This changes the syntax for llvm assembly to make shl, ashr and lshr instructions look like a binary operator: shl i32 %X, 1 instead of shl i32 %X, i8 1 Additionally, this should help a few passes perform additional optimizations. llvm-svn: 33776
OpenPOWER on IntegriCloud