summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to useJay Foad2011-07-221-2/+1
| | | | | | ArrayRef. llvm-svn: 135761
* Allow getBlockFreq to return 0.Jakub Staszak2011-07-221-4/+4
| | | | llvm-svn: 135742
* Convert ConstantExpr::getGetElementPtr andJay Foad2011-07-213-8/+5
| | | | | | ConstantExpr::getInBoundsGetElementPtr to use ArrayRef. llvm-svn: 135673
* There are two ways to map a variable to its lexical scope. Lexical scope ↵Devang Patel2011-07-201-0/+6
| | | | | | information is embedded in MDNode describing the variable. It is also available as a part of DebugLoc attached with DBG_VALUE instruction. DebugLoc attached with an instruction is less reliable in optimized code so use information embedded in the MDNode. llvm-svn: 135629
* Distinguish between two copies of one inlined variable.Devang Patel2011-07-191-0/+11
| | | | llvm-svn: 135528
* Reapply r135457. This needs llvm-gcc change, that I forgot to check-in ↵Devang Patel2011-07-192-2/+19
| | | | | | yesterday. llvm-svn: 135504
* Revert "Make a provision to encode inline location in a variable. This will ↵Bob Wilson2011-07-192-19/+2
| | | | | | | | enable dwarf writer to easily distinguish between two instances of a inlined variable in one basic block." This reverts commit 9fec5e346efdf744b151ae6604f912908315fa7a. llvm-svn: 135486
* Convert SimplifyGEPInst to use ArrayRef.Jay Foad2011-07-192-9/+10
| | | | llvm-svn: 135482
* Convert TargetData::getIndexedOffset to use ArrayRef.Jay Foad2011-07-192-8/+6
| | | | llvm-svn: 135478
* Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.Jay Foad2011-07-193-35/+33
| | | | llvm-svn: 135477
* Make a provision to encode inline location in a variable. This will enable ↵Devang Patel2011-07-192-2/+19
| | | | | | dwarf writer to easily distinguish between two instances of a inlined variable in one basic block. llvm-svn: 135457
* Migrate LLVM and Clang to use the new makeArrayRef(...) functions where ↵Frits van Bommel2011-07-181-6/+3
| | | | | | | | previously explicit non-default constructors were used. Mostly mechanical with some manual reformatting. llvm-svn: 135390
* land David Blaikie's patch to de-constify Type, with a few tweaks.Chris Lattner2011-07-1814-185/+185
| | | | llvm-svn: 135375
* Silence compiler warnings.Benjamin Kramer2011-07-161-5/+4
| | | | llvm-svn: 135358
* Remove "LoopInfo.h" include from BranchProbabilityInfo.h.Jakub Staszak2011-07-161-0/+5
| | | | llvm-svn: 135353
* Fix SCEVEXpander to handle arbitrary phi expansion. Includes twoAndrew Trick2011-07-161-7/+18
| | | | | | | related bug fixes and corresponding assertions for uninitialized data and missing NULL check. Test cases will be included with the new LFTR. llvm-svn: 135333
* Fix pointer heuristic. Check whether predicator is ICMP_NE instead of if it isJakub Staszak2011-07-151-2/+2
| | | | | | not isEquality(). llvm-svn: 135296
* Convert CallInst and InvokeInst APIs to use ArrayRef.Jay Foad2011-07-151-5/+5
| | | | llvm-svn: 135265
* Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef.Jay Foad2011-07-133-38/+32
| | | | llvm-svn: 135040
* stop using WriteTypeSymbolic.Chris Lattner2011-07-091-3/+1
| | | | llvm-svn: 134833
* Preserve debug loc.Devang Patel2011-07-051-1/+1
| | | | llvm-svn: 134441
* Teach IVUsers to stop at non-affine expressions unless they are bothDan Gohman2011-07-011-7/+10
| | | | | | | | | | | | | | | | | outside the loop and reducible. This more completely hides them from LSR, which isn't usually able to do anything meaningful with non-affine expressions anyway, and this consequently hides them from SCEVExpander, which is acutely unprepared for non-affine expressions. Replace test/CodeGen/X86/lsr-nonaffine.ll with a new test that tests the new behavior. This works around the bug in PR10117 / rdar://problem/9633149, and is generally an improvement besides. llvm-svn: 134268
* Improve constant folding of undef for cmp and select operators.Dan Gohman2011-07-011-4/+4
| | | | llvm-svn: 134223
* Cleanup. Fix a stupid variable name.Andrew Trick2011-06-281-3/+3
| | | | llvm-svn: 133995
* SCEVExpander: give new insts a name that identifies the reponsible pass.Andrew Trick2011-06-281-3/+4
| | | | llvm-svn: 133992
* indvars --disable-iv-rewrite: sever ties with IVUsers.Andrew Trick2011-06-281-15/+0
| | | | llvm-svn: 133988
* Move onlyUsedByLifetimeMarkers to ValueTracking so that it can be used by otherNick Lewycky2011-06-271-0/+16
| | | | | | passes as well. llvm-svn: 133904
* Fix struct member's scope. Patch by Xi Wang.Devang Patel2011-06-241-2/+2
| | | | llvm-svn: 133828
* Calculate backedge probability correctly.Jakub Staszak2011-06-231-24/+0
| | | | llvm-svn: 133776
* Missing files for the BlockFrequency analysis added.Jakub Staszak2011-06-231-0/+59
| | | | llvm-svn: 133767
* Introduce BlockFrequency analysis for BasicBlocks.Jakub Staszak2011-06-233-0/+26
| | | | llvm-svn: 133766
* Revert "revert 133714"Rafael Espindola2011-06-232-58/+1
| | | | | | | | This reverts commit e8e00f5efb4a22238f2407bf813de4606f30c5aa. The cmake build on OS X is still broken. llvm-svn: 133718
* revert 133714Dylan Noblesmith2011-06-232-1/+58
| | | | | | It broke the build worse. llvm-svn: 133716
* 133713 broke the build, revert it.Rafael Espindola2011-06-232-58/+1
| | | | llvm-svn: 133714
* Support: make floating-exception header privateDylan Noblesmith2011-06-232-1/+58
| | | | | | | | It has only one user. This eliminates the last include of config.h from the public headers -- ideally, config.h shouldn't even be installed by `make install` anymore. llvm-svn: 133713
* New binops need debug loc.Devang Patel2011-06-221-1/+3
| | | | llvm-svn: 133642
* IVUsers no longer needs to record the phis.Andrew Trick2011-06-211-8/+7
| | | | llvm-svn: 133518
* Revamp the "ConstantStruct::get" methods. Previously, these were scatteredChris Lattner2011-06-201-1/+1
| | | | | | | | | | | | | | | all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. llvm-svn: 133412
* simplify some code.Chris Lattner2011-06-181-8/+3
| | | | llvm-svn: 133362
* Simplify code. No functionality change.Benjamin Kramer2011-06-181-18/+18
| | | | llvm-svn: 133351
* Introduce MachineBranchProbabilityInfo class, which has similar API toJakub Staszak2011-06-161-1/+1
| | | | | | | | BranchProbabilityInfo (expect setEdgeWeight which is not available here). Branch Weights are kept in MachineBasicBlocks. To turn off this analysis set -use-mbpi=false. llvm-svn: 133184
* Add a limit to the number of instructions memdep will scan in a single ↵Eli Friedman2011-06-151-1/+22
| | | | | | | | | | block. This prevents (at least in some cases) O(N^2) runtime in passes like DSE. The limit in this patch is probably too high, but it is enough to stop DSE from going completely insane on a testcase I have (which has a single block with around 50,000 non-aliasing stores in it). rdar://9471075 llvm-svn: 133111
* Add "unknown" results for memdep, which mean "I don't know whether a ↵Eli Friedman2011-06-152-32/+37
| | | | | | dependence for the given instruction exists in the given block". This cleans up all the existing hacks in memdep which represent this concept by returning clobber with various unrelated instructions. llvm-svn: 133031
* Move class into an anonymous namespace.Benjamin Kramer2011-06-131-1/+2
| | | | llvm-svn: 132925
* Branch profiling: floating-point avoidance.Andrew Trick2011-06-111-54/+63
| | | | | | | | | Patch by: Jakub Staszak! Introduces BranchProbability. Changes unsigned to uint32_t all over and uint64_t only when overflow is expected. llvm-svn: 132867
* Initialize BasicAA's AliasCache to set it to use fewer buckets byDan Gohman2011-06-101-1/+7
| | | | | | | | default, since it usually has very few elements. This speeds up alias queries in many cases, because AliasCache.clear() doesn't have to visit as many buckets. llvm-svn: 132862
* Teach the CallGraph to ignore calls to intrinsics.John McCall2011-06-092-3/+3
| | | | llvm-svn: 132797
* Reapply r131781, now that the GVN bug with partially-aliasing loadsDan Gohman2011-06-041-1/+11
| | | | | | is disabled. llvm-svn: 132632
* Disable the main feature of 130180, the elimination of loads that areDan Gohman2011-06-041-0/+6
| | | | | | | | | | redundant with partially-aliasing loads. When computing what portion of a clobbering load value is needed, it doesn't consider phi-translation which may have occurred between the clobbing load and the redundant load. llvm-svn: 132631
* Revert r131781 again. Apparently there is more going on here.Dan Gohman2011-06-041-11/+1
| | | | llvm-svn: 132625
OpenPOWER on IntegriCloud