summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename a variable, for consistency.Dan Gohman2010-08-291-5/+8
| | | | llvm-svn: 112429
* Use iterators instead of indices.Dan Gohman2010-08-291-2/+2
| | | | llvm-svn: 112428
* when merging two alias sets, the result set is volatile if eitherChris Lattner2010-08-291-0/+1
| | | | | | | | | of the sets is volatile. We were dropping the volatile bit of the merged in set, leading (luckily) to assertions in cases like PR7535. I cannot produce a testcase that repros with opt, but this is obviously correct. llvm-svn: 112402
* more cleanupChris Lattner2010-08-291-8/+8
| | | | llvm-svn: 112401
* clean this upChris Lattner2010-08-291-51/+53
| | | | llvm-svn: 112400
* Fix an index calculation thinko.Dan Gohman2010-08-281-1/+1
| | | | llvm-svn: 112337
* Improve the precision of getConstant().Owen Anderson2010-08-271-0/+5
| | | | llvm-svn: 112323
* When merging adjacent operands, scan ahead and merge all equalDan Gohman2010-08-271-11/+14
| | | | | | adjacent operands at once, instead of just two at a time. llvm-svn: 112299
* Make the {A,+,B}<L> + {C,+,D}<L> --> Other + {A+C,+,B+D}<L>Dan Gohman2010-08-271-23/+21
| | | | | | | | transformation collect all the addrecs with the same loop add combine them at once rather than starting everything over at the first chance. llvm-svn: 112290
* Switch ScalarEvolution's main Value*->SCEV* map from std::mapDan Gohman2010-08-271-28/+26
| | | | | | to DenseMap. llvm-svn: 112281
* Use LVI to eliminate conditional branches where we've tested a related ↵Owen Anderson2010-08-271-1/+2
| | | | | | | | condition previously. Update tests for this change. This fixes PR5652. llvm-svn: 112270
* Optimize SCEVComplexityCompare. Use a 3-way return instead of a 2-wayDan Gohman2010-08-271-48/+82
| | | | | | | return to avoid needing two calls to test for equivalence, and sort addrecs by their degree before examining their operands. llvm-svn: 112267
* In the default address space, any GEP off of null results in a trap value if ↵Owen Anderson2010-08-251-4/+5
| | | | | | | | | you try to load it. Thus, any load in the default address space that completes implies that the base value that it GEP'd from was not null. llvm-svn: 112015
* NULL loads are only invalid in the default address space.Owen Anderson2010-08-241-1/+1
| | | | llvm-svn: 111972
* Add support for inferring values for the default cases of switches.Owen Anderson2010-08-241-3/+22
| | | | llvm-svn: 111971
* Add support for inferring that a load from a pointer implies that it is not ↵Owen Anderson2010-08-241-4/+17
| | | | | | null. llvm-svn: 111959
* Don't assume that all constants with integer types are ConstantInts.Owen Anderson2010-08-241-2/+11
| | | | llvm-svn: 111906
* Let FE use derived types for DW_TAG_friend.Devang Patel2010-08-231-0/+1
| | | | | | Patch by Alexander Herz! llvm-svn: 111861
* Handle qualified constants that are directly folded by FE.Devang Patel2010-08-231-0/+10
| | | | | | PR 7920. llvm-svn: 111820
* Now that PassInfo and Pass::ID have been separated, move the rest of the ↵Owen Anderson2010-08-234-16/+12
| | | | | | passes over to the new registration API. llvm-svn: 111815
* CreateTemporaryType doesn't needs its Context argument.Dan Gohman2010-08-201-1/+1
| | | | llvm-svn: 111687
* Introduce a new temporary MDNode concept. Temporary MDNodes areDan Gohman2010-08-201-1/+15
| | | | | | | | not part of the IR, are not uniqued, and may be safely RAUW'd. This replaces a variety of alternate mechanisms for achieving the same effect. llvm-svn: 111681
* Convert DbgInfoPrinter to use errs() instead of outs().Dan Gohman2010-08-201-1/+1
| | | | llvm-svn: 111659
* Revert r111199; it breaks -debug-pass=Structure output.Dan Gohman2010-08-192-2/+2
| | | | llvm-svn: 111500
* refix PR1143 by making basicaa analyze zexts of indices aggresively,Chris Lattner2010-08-181-11/+30
| | | | | | which I broke with a recent patch. llvm-svn: 111452
* GetLinearExpression is only called when TD is non-null, pass as Chris Lattner2010-08-181-4/+4
| | | | | | a reference instead of pointer. llvm-svn: 111445
* rework GEP decomposition to make a new VariableGEPIndex struct instead ofChris Lattner2010-08-181-19/+39
| | | | | | | using a pair. This tidies up the code a bit. While setting things up, add a (currently unused) field to keep track of how the value is extended. llvm-svn: 111444
* move gep decomposition out of ValueTracking into BasicAA. The form ofChris Lattner2010-08-182-223/+229
| | | | | | | | | decomposition that it is doing is very basicaa specific and is only used by basicaa. Now with less tree breakingness. llvm-svn: 111433
* Use ConstantRange to propagate information through value definitions.Owen Anderson2010-08-181-4/+83
| | | | llvm-svn: 111425
* Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. TheDaniel Dunbar2010-08-182-213/+222
| | | | | | form of", it doesn't pass tests. llvm-svn: 111385
* Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer ↵Owen Anderson2010-08-181-21/+47
| | | | | | issues. llvm-svn: 111382
* move gep decomposition out of ValueTracking into BasicAA. The form ofChris Lattner2010-08-182-222/+213
| | | | | | | decomposition that it is doing is very basicaa specific and is only used by basicaa. llvm-svn: 111375
* fix PR7589: In brief:Chris Lattner2010-08-181-3/+3
| | | | | | | | | gep P, (zext x) != gep P, (sext x) DecomposeGEPExpression was getting this wrong, confusing basicaa. llvm-svn: 111352
* Tweak IVUsers' concept of "interesting" to exclude add recurrencesDan Gohman2010-08-171-12/+16
| | | | | | | | | where the step value is an induction variable from an outer loop, to avoid trouble trying to re-expand such expressions. This effectively hides such expressions from indvars and lsr, which prevents them from getting into trouble. llvm-svn: 111317
* Fix another iterator invalidation that caused a *really* nasty ↵Owen Anderson2010-08-161-6/+7
| | | | | | miscompilation in 403.gcc. llvm-svn: 111210
* Make dumpPassStructure be a PMDataManager abstraction, rather thanDan Gohman2010-08-162-2/+2
| | | | | | | | | | a Pass abstraction, since that's the level it's actually used at. Rename Pass' dumpPassStructure to dumpPass. This eliminates an awkward use of getAsPass() to convert a PMDataManager* into a Pass* just to permit a dumpPassStructure call. llvm-svn: 111199
* To create a copy of a SmallVector with an element removed from theDan Gohman2010-08-161-6/+7
| | | | | | | | | middle, copy the elements in two groups, rather than copying all the elements and then doing an erase on the middle of the result. These are SmallVectors, so we shouldn't expect to hit dynamic allocation in the common case. llvm-svn: 111151
* Tidy whitespace.Dan Gohman2010-08-161-5/+4
| | | | llvm-svn: 111147
* Add a comment.Dan Gohman2010-08-161-0/+5
| | | | llvm-svn: 111145
* Use const_iterator in a few places.Dan Gohman2010-08-161-3/+3
| | | | llvm-svn: 111144
* Use iterators instead of indices in a few more places.Dan Gohman2010-08-161-6/+9
| | | | llvm-svn: 111143
* Micro-optimize SCEVConstant comparison.Dan Gohman2010-08-161-4/+4
| | | | llvm-svn: 111142
* Move SCEVNAryExpr's virtual member functions out of line, and convertDan Gohman2010-08-161-0/+33
| | | | | | them to iterators. llvm-svn: 111140
* Use iterators instead of indices in simple cases.Dan Gohman2010-08-161-6/+4
| | | | llvm-svn: 111138
* Avoid gratuitous inefficiency in ifndef NDEBUG code.Dan Gohman2010-08-161-8/+8
| | | | llvm-svn: 111137
* Make one getAddExpr call when analyzing a+b+c+d+e+... instead of oneDan Gohman2010-08-161-6/+31
| | | | | | for each add instruction. Ditto for Mul. llvm-svn: 111136
* Delete an unused function.Dan Gohman2010-08-161-35/+0
| | | | llvm-svn: 111135
* Revert r111058, the lint check for indirectbr successors that aren'tDan Gohman2010-08-161-6/+0
| | | | | | | address-taken. This can occur normally, if the code which took the address got DCEd. llvm-svn: 111121
* Revert r111082. No warnings for this common pattern.Argyrios Kyrtzidis2010-08-151-1/+1
| | | | llvm-svn: 111102
* Add ATTRIBUTE_UNUSED to methods that are not supposed to be used.Argyrios Kyrtzidis2010-08-141-1/+1
| | | | llvm-svn: 111082
OpenPOWER on IntegriCloud