summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
Commit message (Collapse)AuthorAgeFilesLines
* Use BlockFrequency instead of uint32_t in BlockFrequencyInfo.Jakub Staszak2011-07-271-1/+1
| | | | llvm-svn: 136278
* Explicitly cast narrowing conversions inside {}s that will become errors inJeffrey Yasskin2011-07-271-1/+2
| | | | | | C++0x. llvm-svn: 136211
* Minor simplification.Eli Friedman2011-07-271-2/+2
| | | | llvm-svn: 136202
* Fix AliasSetTracker so that it doesn't make any assumptions about ↵Eli Friedman2011-07-271-51/+46
| | | | | | instructions it doesn't know about (like the atomic instructions I'm adding). llvm-svn: 136198
* SCEV: Added a data structure for storing not-taken info per loopAndrew Trick2011-07-261-127/+212
| | | | | | | exit. Added an interfaces for querying either the loop's exact/max backedge taken count or a specific loop exit's not-taken count. llvm-svn: 136100
* Add helper function for getting true/false constants in a uniformDuncan Sands2011-07-261-34/+48
| | | | | | | way for i1 and vector of i1 types. Use these to make some code more self-documenting. llvm-svn: 136079
* Rename BlockFrequency to BlockFrequencyInfo and MachineBlockFrequency toJakub Staszak2011-07-253-13/+13
| | | | | | MachineBlockFrequencyInfo. llvm-svn: 135937
* Shorten some expressions by using ArrayRef::slice().Frits van Bommel2011-07-251-2/+1
| | | | llvm-svn: 135910
* Convert GetElementPtrInst to use ArrayRef.Jay Foad2011-07-253-7/+6
| | | | llvm-svn: 135904
* 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
OpenPOWER on IntegriCloud