Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Teach AliasAnalysisEvaluator about PartialAlias. | Dan Gohman | 2010-12-10 | 1 | -5/+14 | |
| | | | | llvm-svn: 121512 | |||||
* | Update this code to handle PartialAlias as MayAlias. | Dan Gohman | 2010-12-10 | 1 | -1/+1 | |
| | | | | llvm-svn: 121508 | |||||
* | Take the first step towards making LVI non-recursive: get rid of the ↵ | Owen Anderson | 2010-12-09 | 1 | -101/+39 | |
| | | | | | | LVIQuery abstraction. llvm-svn: 121357 | |||||
* | Use type's file info while describing inheritance relationship. | Devang Patel | 2010-12-08 | 1 | -1/+1 | |
| | | | | llvm-svn: 121289 | |||||
* | Add support to create debug info for functions and methods. | Devang Patel | 2010-12-08 | 1 | -0/+77 | |
| | | | | llvm-svn: 121281 | |||||
* | Add support to create class type. | Devang Patel | 2010-12-08 | 2 | -0/+46 | |
| | | | | llvm-svn: 121279 | |||||
* | Add support to create vector, array, enums etc... | Devang Patel | 2010-12-08 | 2 | -6/+169 | |
| | | | | llvm-svn: 121224 | |||||
* | Global variable does not need linkage name. | Devang Patel | 2010-12-08 | 1 | -3/+2 | |
| | | | | llvm-svn: 121212 | |||||
* | Add support to create local variable's debug info. | Devang Patel | 2010-12-07 | 1 | -0/+33 | |
| | | | | llvm-svn: 121211 | |||||
* | Add support to create variables, structs etc.. using DIBuilder. | Devang Patel | 2010-12-07 | 2 | -7/+224 | |
| | | | | | | This is still work in progress. llvm-svn: 121205 | |||||
* | PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and | Jay Foad | 2010-12-07 | 4 | -22/+18 | |
| | | | | | | | | zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method trunc(), to be const and to return a new value instead of modifying the object in place. llvm-svn: 121120 | |||||
* | Also inore '()' while creating mdnode name from ObjC symbol name. | Jakob Stoklund Olesen | 2010-12-03 | 1 | -1/+2 | |
| | | | | llvm-svn: 120856 | |||||
* | Ignore '+' while creating mdnode name from ObjC symbol name. | Devang Patel | 2010-12-03 | 1 | -1/+1 | |
| | | | | llvm-svn: 120853 | |||||
* | PR5207: Rename overloaded APInt methods set(), clear(), flip() to | Jay Foad | 2010-12-01 | 2 | -12/+12 | |
| | | | | | | setAllBits(), setBit(unsigned), etc. llvm-svn: 120564 | |||||
* | move GetPointerBaseWithConstantOffset out of GVN into ValueTracking.h | Chris Lattner | 2010-11-30 | 1 | -0/+41 | |
| | | | | llvm-svn: 120476 | |||||
* | PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void. | Jay Foad | 2010-11-30 | 1 | -2/+3 | |
| | | | | llvm-svn: 120413 | |||||
* | strength reduce this. | Chris Lattner | 2010-11-30 | 1 | -1/+1 | |
| | | | | llvm-svn: 120381 | |||||
* | getLocationForDest should work for memset as well. | Chris Lattner | 2010-11-30 | 1 | -1/+1 | |
| | | | | llvm-svn: 120380 | |||||
* | enhance basicaa to return "Mod" for a memcpy call when the | Chris Lattner | 2010-11-30 | 1 | -0/+5 | |
| | | | | | | queried location doesn't overlap the source, and add a testcase. llvm-svn: 120370 | |||||
* | Teach basicaa that memset's modref set is at worst "mod" and never | Chris Lattner | 2010-11-30 | 1 | -0/+2 | |
| | | | | | | | | | | contains "ref". Enhance DSE to use a modref query instead of a store-specific hack to generalize the "ignore may-alias stores" optimization to handle memset and memcpy. llvm-svn: 120368 | |||||
* | Teach ConstantFoldInstruction() how to fold insertvalue and extractvalue. | Frits van Bommel | 2010-11-29 | 1 | -1/+12 | |
| | | | | llvm-svn: 120316 | |||||
* | Merge System into Support. | Michael J. Spencer | 2010-11-29 | 1 | -1/+1 | |
| | | | | llvm-svn: 120298 | |||||
* | Add some dead stores to pacify my least favorite GCC warning: may be | Chandler Carruth | 2010-11-29 | 1 | -3/+3 | |
| | | | | | | | | | | | uninitialized. The warning is terrible, has incorrect source locations, and has a huge false positive rate such as *all* of these. If anyone has a better solution, please let me know. Alternatively, I'll happily add -Wno-uninitialized to the -Werror build mode. Maybe I can even do it *only* when building with GCC instead of Clang. llvm-svn: 120281 | |||||
* | Expand a little on the description of what InstructionSimplify does. | Duncan Sands | 2010-11-23 | 1 | -2/+4 | |
| | | | | llvm-svn: 120016 | |||||
* | Clarify that constant folding of instructions applies when all operands | Duncan Sands | 2010-11-23 | 1 | -10/+11 | |
| | | | | | | | | are constant. There was in fact one exception to this (phi nodes) - so remove that exception (InstructionSimplify handles this so there should be no loss). llvm-svn: 120015 | |||||
* | If a GEP index simply advances by multiples of a type of zero size, | Duncan Sands | 2010-11-22 | 1 | -1/+1 | |
| | | | | | | then replace the index with zero. llvm-svn: 119974 | |||||
* | Move the "gep undef" -> "undef" transform from instcombine to | Duncan Sands | 2010-11-22 | 1 | -4/+11 | |
| | | | | | | InstructionSimplify. llvm-svn: 119970 | |||||
* | Initialize MemDep's TD member so buildbots don't trip over an uninitialized ↵ | Benjamin Kramer | 2010-11-21 | 1 | -0/+2 | |
| | | | | | | | | pointer (TD is passed to PHITransAddr). I wonder why this didn't explode earlier. llvm-svn: 119944 | |||||
* | Add a rather pointless InstructionSimplify transform, inspired by recent ↵ | Duncan Sands | 2010-11-21 | 1 | -2/+10 | |
| | | | | | | | | | | constant folding improvements: if P points to a type of size zero, turn "gep P, N" into "P". More generally, if a gep index type has size zero, instcombine could replace the index with zero, but that is not done here. llvm-svn: 119942 | |||||
* | Fix spelling. | Duncan Sands | 2010-11-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 119941 | |||||
* | apply Dan's fix for PR8268 which allows constant folding to handle indexes over | Chris Lattner | 2010-11-21 | 1 | -7/+15 | |
| | | | | | | | | | | | zero sized elements. This allows us to compile: #include <string> void foo() { std::string s; } into an empty function. llvm-svn: 119933 | |||||
* | add "getLocation" method to AliasAnalysis for getting the source and | Chris Lattner | 2010-11-21 | 1 | -0/+23 | |
| | | | | | | | | destination location of a memcpy/memmove. I'm not clear about whether TBAA works on these, so I'm leaving it out for now. Dan, please revisit this when convenient. llvm-svn: 119928 | |||||
* | implement PR8576, deleting dead stores with intervening may-alias stores. | Chris Lattner | 2010-11-21 | 1 | -2/+2 | |
| | | | | llvm-svn: 119927 | |||||
* | Simplify code. No change in functionality. | Benjamin Kramer | 2010-11-20 | 1 | -2/+2 | |
| | | | | llvm-svn: 119908 | |||||
* | Silence warning about an uninitialized variable. | Benjamin Kramer | 2010-11-19 | 1 | -1/+1 | |
| | | | | llvm-svn: 119800 | |||||
* | Remove threading of Xor over selects and phis, with an explanation | Duncan Sands | 2010-11-19 | 1 | -13/+18 | |
| | | | | | | of why such threading is pointless. llvm-svn: 119798 | |||||
* | Factor code for testing whether replacing one value with another | Duncan Sands | 2010-11-18 | 1 | -17/+2 | |
| | | | | | | | | preserves LCSSA form out of ScalarEvolution and into the LoopInfo class. Use it to check that SimplifyInstruction simplifications are not breaking LCSSA form. Fixes PR8622. llvm-svn: 119727 | |||||
* | Strip trailing whitespace. | Dan Gohman | 2010-11-18 | 1 | -48/+48 | |
| | | | | llvm-svn: 119706 | |||||
* | Use llvm_unreachable for "impossible" situations. | Dan Gohman | 2010-11-18 | 1 | -3/+6 | |
| | | | | llvm-svn: 119705 | |||||
* | Add support for PHI-translating sext, zext, and trunc instructions, | Dan Gohman | 2010-11-18 | 1 | -18/+26 | |
| | | | | | | enabling more PRE. PR8586. llvm-svn: 119704 | |||||
* | Introduce memoization for ScalarEvolution dominates and properlyDominates | Dan Gohman | 2010-11-18 | 2 | -74/+83 | |
| | | | | | | queries, and SCEVExpander getRelevantLoop queries. llvm-svn: 119595 | |||||
* | Factor out the code for purging a SCEV from all the various memoization maps. | Dan Gohman | 2010-11-17 | 1 | -26/+13 | |
| | | | | | | | Some of these maps may merge in the future, but for now it's convenient to have a utility function for them. llvm-svn: 119587 | |||||
* | Merge the implementations of isLoopInvariant and hasComputableLoopEvolution, and | Dan Gohman | 2010-11-17 | 1 | -71/+58 | |
| | | | | | | | memoize the results. This improves compile time in code which highly complex expressions which get queried many times. llvm-svn: 119584 | |||||
* | Make SCEV::getType() and SCEV::print non-virtual. Move SCEV::hasOperand | Dan Gohman | 2010-11-17 | 1 | -105/+167 | |
| | | | | | | to ScalarEvolution. Delete SCEV::~SCEV. SCEV is no longer virtual. llvm-svn: 119578 | |||||
* | Move SCEV::dominates and properlyDominates to ScalarEvolution. | Dan Gohman | 2010-11-17 | 2 | -60/+93 | |
| | | | | llvm-svn: 119570 | |||||
* | Move SCEV::isLoopInvariant and hasComputableLoopEvolution to be member | Dan Gohman | 2010-11-17 | 3 | -84/+138 | |
| | | | | | | | functions of ScalarEvolution, in preparation for memoization and other optimizations. llvm-svn: 119562 | |||||
* | Before replacing a phi node with a different value, it | Duncan Sands | 2010-11-17 | 1 | -11/+15 | |
| | | | | | | | | | | needs to be checked that this won't break LCSSA form. Change the existing checking method to a more direct one: rather than seeing if all predecessors belong to the loop, check that the replacing value is either not in any loop or is in a loop that contains the phi node. llvm-svn: 119556 | |||||
* | Verify SCEVAddRecExpr's invariant in ScalarEvolution::getAddRecExpr | Dan Gohman | 2010-11-17 | 1 | -0/+3 | |
| | | | | | | | instead of in SCEVAddRecExpr's constructor, in preparation for an upcoming change. llvm-svn: 119554 | |||||
* | Fix ScalarEvolution's range memoization to avoid using a | Dan Gohman | 2010-11-17 | 1 | -44/+43 | |
| | | | | | | default ctor with ConstantRange. llvm-svn: 119550 | |||||
* | Move some those Xor simplifications which don't require creating new | Duncan Sands | 2010-11-17 | 1 | -30/+78 | |
| | | | | | | | | instructions out of InstCombine and into InstructionSimplify. While there, introduce an m_AllOnes pattern to simplify matching with integers and vectors with all bits equal to one. llvm-svn: 119536 |