Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Revert r112432. It appears to be exposing a problem in the emacs build. | Dan Gohman | 2010-08-31 | 1 | -9/+4 | |
| | | | | llvm-svn: 112638 | |||||
* | Speculatively revert r112433. | Dan Gohman | 2010-08-31 | 1 | -24/+21 | |
| | | | | llvm-svn: 112608 | |||||
* | It is possible to try to merge a not-constant with a constantrage, when ↵ | Owen Anderson | 2010-08-30 | 1 | -2/+3 | |
| | | | | | | | | | dealing with ptrtoint ConstantExpr's. Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. llvm-svn: 112489 | |||||
* | Don't print two "0x" prefixes. Use a raw_ostream overload instead of ↵ | Benjamin Kramer | 2010-08-30 | 1 | -2/+1 | |
| | | | | | | llvm::format. llvm-svn: 112479 | |||||
* | two changes: 1) make AliasSet hold the list of call sites with an | Chris Lattner | 2010-08-29 | 1 | -14/+20 | |
| | | | | | | | | | | | | | | assertingvh so we get a violent explosion if the pointer dangles. 2) Fix AliasSetTracker::deleteValue to remove call sites with by-pointer comparisons instead of by-alias queries. Using findAliasSetForCallSite can cause alias sets to get merged when they shouldn't, and can also miss alias sets when the call is readonly. #2 fixes PR6889, which only repros with a .c file :( llvm-svn: 112452 | |||||
* | Make IVUsers iterative instead of recursive. | Dan Gohman | 2010-08-29 | 1 | -78/+89 | |
| | | | | | | | This has the side effect of reversing the order of most of IVUser's results. llvm-svn: 112442 | |||||
* | Restructure the {A,+,B}<L> * {C,+,D}<L> folding so that it folds | Dan Gohman | 2010-08-29 | 1 | -21/+24 | |
| | | | | | | | all applicable addrecs before recursing on getMulExpr, instead of recursing on getMulExpr for each one. llvm-svn: 112433 | |||||
* | Batch up subtracts along with adds, when analyzing long chains of | Dan Gohman | 2010-08-29 | 1 | -4/+9 | |
| | | | | | | operations. llvm-svn: 112432 | |||||
* | Micro-optimize GroupByComplexity. | Dan Gohman | 2010-08-29 | 1 | -2/+3 | |
| | | | | llvm-svn: 112431 | |||||
* | Hold AddRec->getLoop() in a variable, to make the Mul code more consistent | Dan Gohman | 2010-08-29 | 1 | -3/+4 | |
| | | | | | | with the Add code. llvm-svn: 112430 | |||||
* | Rename a variable, for consistency. | Dan Gohman | 2010-08-29 | 1 | -5/+8 | |
| | | | | llvm-svn: 112429 | |||||
* | Use iterators instead of indices. | Dan Gohman | 2010-08-29 | 1 | -2/+2 | |
| | | | | llvm-svn: 112428 | |||||
* | when merging two alias sets, the result set is volatile if either | Chris Lattner | 2010-08-29 | 1 | -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 cleanup | Chris Lattner | 2010-08-29 | 1 | -8/+8 | |
| | | | | llvm-svn: 112401 | |||||
* | clean this up | Chris Lattner | 2010-08-29 | 1 | -51/+53 | |
| | | | | llvm-svn: 112400 | |||||
* | Fix an index calculation thinko. | Dan Gohman | 2010-08-28 | 1 | -1/+1 | |
| | | | | llvm-svn: 112337 | |||||
* | Improve the precision of getConstant(). | Owen Anderson | 2010-08-27 | 1 | -0/+5 | |
| | | | | llvm-svn: 112323 | |||||
* | When merging adjacent operands, scan ahead and merge all equal | Dan Gohman | 2010-08-27 | 1 | -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 Gohman | 2010-08-27 | 1 | -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::map | Dan Gohman | 2010-08-27 | 1 | -28/+26 | |
| | | | | | | to DenseMap. llvm-svn: 112281 | |||||
* | Use LVI to eliminate conditional branches where we've tested a related ↵ | Owen Anderson | 2010-08-27 | 1 | -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-way | Dan Gohman | 2010-08-27 | 1 | -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 Anderson | 2010-08-25 | 1 | -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 Anderson | 2010-08-24 | 1 | -1/+1 | |
| | | | | llvm-svn: 111972 | |||||
* | Add support for inferring values for the default cases of switches. | Owen Anderson | 2010-08-24 | 1 | -3/+22 | |
| | | | | llvm-svn: 111971 | |||||
* | Add support for inferring that a load from a pointer implies that it is not ↵ | Owen Anderson | 2010-08-24 | 1 | -4/+17 | |
| | | | | | | null. llvm-svn: 111959 | |||||
* | Don't assume that all constants with integer types are ConstantInts. | Owen Anderson | 2010-08-24 | 1 | -2/+11 | |
| | | | | llvm-svn: 111906 | |||||
* | Let FE use derived types for DW_TAG_friend. | Devang Patel | 2010-08-23 | 1 | -0/+1 | |
| | | | | | | Patch by Alexander Herz! llvm-svn: 111861 | |||||
* | Handle qualified constants that are directly folded by FE. | Devang Patel | 2010-08-23 | 1 | -0/+10 | |
| | | | | | | PR 7920. llvm-svn: 111820 | |||||
* | Now that PassInfo and Pass::ID have been separated, move the rest of the ↵ | Owen Anderson | 2010-08-23 | 4 | -16/+12 | |
| | | | | | | passes over to the new registration API. llvm-svn: 111815 | |||||
* | CreateTemporaryType doesn't needs its Context argument. | Dan Gohman | 2010-08-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 111687 | |||||
* | Introduce a new temporary MDNode concept. Temporary MDNodes are | Dan Gohman | 2010-08-20 | 1 | -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 Gohman | 2010-08-20 | 1 | -1/+1 | |
| | | | | llvm-svn: 111659 | |||||
* | Revert r111199; it breaks -debug-pass=Structure output. | Dan Gohman | 2010-08-19 | 2 | -2/+2 | |
| | | | | llvm-svn: 111500 | |||||
* | refix PR1143 by making basicaa analyze zexts of indices aggresively, | Chris Lattner | 2010-08-18 | 1 | -11/+30 | |
| | | | | | | which I broke with a recent patch. llvm-svn: 111452 | |||||
* | GetLinearExpression is only called when TD is non-null, pass as | Chris Lattner | 2010-08-18 | 1 | -4/+4 | |
| | | | | | | a reference instead of pointer. llvm-svn: 111445 | |||||
* | rework GEP decomposition to make a new VariableGEPIndex struct instead of | Chris Lattner | 2010-08-18 | 1 | -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 of | Chris Lattner | 2010-08-18 | 2 | -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 Anderson | 2010-08-18 | 1 | -4/+83 | |
| | | | | llvm-svn: 111425 | |||||
* | Revert r111375, "move gep decomposition out of ValueTracking into BasicAA. The | Daniel Dunbar | 2010-08-18 | 2 | -213/+222 | |
| | | | | | | form of", it doesn't pass tests. llvm-svn: 111385 | |||||
* | Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer ↵ | Owen Anderson | 2010-08-18 | 1 | -21/+47 | |
| | | | | | | issues. llvm-svn: 111382 | |||||
* | move gep decomposition out of ValueTracking into BasicAA. The form of | Chris Lattner | 2010-08-18 | 2 | -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 Lattner | 2010-08-18 | 1 | -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 recurrences | Dan Gohman | 2010-08-17 | 1 | -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 Anderson | 2010-08-16 | 1 | -6/+7 | |
| | | | | | | miscompilation in 403.gcc. llvm-svn: 111210 | |||||
* | Make dumpPassStructure be a PMDataManager abstraction, rather than | Dan Gohman | 2010-08-16 | 2 | -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 the | Dan Gohman | 2010-08-16 | 1 | -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 Gohman | 2010-08-16 | 1 | -5/+4 | |
| | | | | llvm-svn: 111147 | |||||
* | Add a comment. | Dan Gohman | 2010-08-16 | 1 | -0/+5 | |
| | | | | llvm-svn: 111145 | |||||
* | Use const_iterator in a few places. | Dan Gohman | 2010-08-16 | 1 | -3/+3 | |
| | | | | llvm-svn: 111144 |