summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
...
* Teach AliasAnalysisEvaluator about PartialAlias.Dan Gohman2010-12-101-5/+14
| | | | llvm-svn: 121512
* Update this code to handle PartialAlias as MayAlias.Dan Gohman2010-12-101-1/+1
| | | | llvm-svn: 121508
* Take the first step towards making LVI non-recursive: get rid of the ↵Owen Anderson2010-12-091-101/+39
| | | | | | LVIQuery abstraction. llvm-svn: 121357
* Use type's file info while describing inheritance relationship.Devang Patel2010-12-081-1/+1
| | | | llvm-svn: 121289
* Add support to create debug info for functions and methods.Devang Patel2010-12-081-0/+77
| | | | llvm-svn: 121281
* Add support to create class type.Devang Patel2010-12-082-0/+46
| | | | llvm-svn: 121279
* Add support to create vector, array, enums etc...Devang Patel2010-12-082-6/+169
| | | | llvm-svn: 121224
* Global variable does not need linkage name.Devang Patel2010-12-081-3/+2
| | | | llvm-svn: 121212
* Add support to create local variable's debug info.Devang Patel2010-12-071-0/+33
| | | | llvm-svn: 121211
* Add support to create variables, structs etc.. using DIBuilder.Devang Patel2010-12-072-7/+224
| | | | | | This is still work in progress. llvm-svn: 121205
* PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() andJay Foad2010-12-074-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 Olesen2010-12-031-1/+2
| | | | llvm-svn: 120856
* Ignore '+' while creating mdnode name from ObjC symbol name.Devang Patel2010-12-031-1/+1
| | | | llvm-svn: 120853
* PR5207: Rename overloaded APInt methods set(), clear(), flip() toJay Foad2010-12-012-12/+12
| | | | | | setAllBits(), setBit(unsigned), etc. llvm-svn: 120564
* move GetPointerBaseWithConstantOffset out of GVN into ValueTracking.hChris Lattner2010-11-301-0/+41
| | | | llvm-svn: 120476
* PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.Jay Foad2010-11-301-2/+3
| | | | llvm-svn: 120413
* strength reduce this.Chris Lattner2010-11-301-1/+1
| | | | llvm-svn: 120381
* getLocationForDest should work for memset as well.Chris Lattner2010-11-301-1/+1
| | | | llvm-svn: 120380
* enhance basicaa to return "Mod" for a memcpy call when theChris Lattner2010-11-301-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 neverChris Lattner2010-11-301-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 Bommel2010-11-291-1/+12
| | | | llvm-svn: 120316
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* Add some dead stores to pacify my least favorite GCC warning: may beChandler Carruth2010-11-291-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 Sands2010-11-231-2/+4
| | | | llvm-svn: 120016
* Clarify that constant folding of instructions applies when all operandsDuncan Sands2010-11-231-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 Sands2010-11-221-1/+1
| | | | | | then replace the index with zero. llvm-svn: 119974
* Move the "gep undef" -> "undef" transform from instcombine toDuncan Sands2010-11-221-4/+11
| | | | | | InstructionSimplify. llvm-svn: 119970
* Initialize MemDep's TD member so buildbots don't trip over an uninitialized ↵Benjamin Kramer2010-11-211-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 Sands2010-11-211-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 Sands2010-11-211-2/+2
| | | | llvm-svn: 119941
* apply Dan's fix for PR8268 which allows constant folding to handle indexes overChris Lattner2010-11-211-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 andChris Lattner2010-11-211-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 Lattner2010-11-211-2/+2
| | | | llvm-svn: 119927
* Simplify code. No change in functionality.Benjamin Kramer2010-11-201-2/+2
| | | | llvm-svn: 119908
* Silence warning about an uninitialized variable.Benjamin Kramer2010-11-191-1/+1
| | | | llvm-svn: 119800
* Remove threading of Xor over selects and phis, with an explanationDuncan Sands2010-11-191-13/+18
| | | | | | of why such threading is pointless. llvm-svn: 119798
* Factor code for testing whether replacing one value with anotherDuncan Sands2010-11-181-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 Gohman2010-11-181-48/+48
| | | | llvm-svn: 119706
* Use llvm_unreachable for "impossible" situations.Dan Gohman2010-11-181-3/+6
| | | | llvm-svn: 119705
* Add support for PHI-translating sext, zext, and trunc instructions,Dan Gohman2010-11-181-18/+26
| | | | | | enabling more PRE. PR8586. llvm-svn: 119704
* Introduce memoization for ScalarEvolution dominates and properlyDominatesDan Gohman2010-11-182-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 Gohman2010-11-171-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, andDan Gohman2010-11-171-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::hasOperandDan Gohman2010-11-171-105/+167
| | | | | | to ScalarEvolution. Delete SCEV::~SCEV. SCEV is no longer virtual. llvm-svn: 119578
* Move SCEV::dominates and properlyDominates to ScalarEvolution.Dan Gohman2010-11-172-60/+93
| | | | llvm-svn: 119570
* Move SCEV::isLoopInvariant and hasComputableLoopEvolution to be memberDan Gohman2010-11-173-84/+138
| | | | | | | functions of ScalarEvolution, in preparation for memoization and other optimizations. llvm-svn: 119562
* Before replacing a phi node with a different value, itDuncan Sands2010-11-171-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::getAddRecExprDan Gohman2010-11-171-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 aDan Gohman2010-11-171-44/+43
| | | | | | default ctor with ConstantRange. llvm-svn: 119550
* Move some those Xor simplifications which don't require creating newDuncan Sands2010-11-171-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
OpenPOWER on IntegriCloud