aboutsummaryrefslogtreecommitdiff
path: root/lib/Analysis
AgeCommit message (Collapse)Author
2010-06-07The FoldingSet hash data includes pointer values, so it isn'tDan Gohman
determinstic. Instead, give SCEV objects an arbitrary sequence number. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105548 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Optimize this code somewhat by taking advantage of the factDan Gohman
that the operands are sorted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105546 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Micro-optimize this, to speed up this hotspot in debug builds a little.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105544 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Micro-optimize this.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105542 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Optimize ScalarEvolution's SCEVComplexityCompare predicate: don't goDan Gohman
scrounging through SCEVUnknown contents and SCEVNAryExpr operands; instead just do a simple deterministic comparison of the precomputed hash data. Also, since this is more precise, it eliminates the need for the slow N^2 duplicate detection code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105540 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-07Create new accessors to get arguments for call/invoke instructions. It breaksBill Wendling
encapsulation to force the users of these classes to know about the internal data structure of the Operands structure. It also can lead to errors, like in the MSIL writer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105539 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-05Revert 105492 & 105493 due to a testcase regression. Radar 7424645.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105511 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-05LSR needs to remember inserted instructions even in postinc mode, becauseDan Gohman
there could be multiple subexpressions within a single expansion which require insert point adjustment. This fixes PR7306. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105510 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04Support for nested functions/classes in debug output. Radar 7424645.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105492 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-04Fix normalization and de-normalization of non-affine SCEVs.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105480 91177308-0d34-0410-b5e6-96231b3b80d8
2010-06-01Fix the noalias checking so that it doesn't worry aboutDan Gohman
an argument aliasing itself. Thanks Duncan! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105288 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Fix AliasDebugger to be aware of operand values too.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105012 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Add lint checks for function attributes.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105009 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Fix lint's memcpy and memmove checks, and its basic block traversal.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104970 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Detect self-referential values.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104957 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Revert 104841, 104842, 104876 due to buildbot failures. Radar 7424645.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104953 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Eli pointed out that va_arg instruction result values don'tDan Gohman
reference the stack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104951 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Teach lint how to look through simple store+load pairs and otherDan Gohman
effective no-op constructs, to make it more effective on unoptimized IR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104950 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Move FindAvailableLoadedValue isSafeToLoadUnconditionally out ofDan Gohman
lib/Transforms/Utils and into lib/Analysis so that Analysis passes can use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104949 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28ConstantFoldConstantExpression can theoretically return null.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104948 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-28Add a lint check for returning the address of stack memory.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104936 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-27Support for nested functions/classes in debug output. Radar 7424645.Stuart Hastings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104841 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Avoid counting InlineAsm as a call - it prevents loop unrolling.Jakob Stoklund Olesen
PR7026 Patch by Pekka Jääskeläinen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104780 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Fix Lint printing warnings multiple times. Remove the ErrorStrDan Gohman
option from lintModule, which was an artifact from being based on Verifier code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104765 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Reinstate checking of stackrestore, with checking for both ReadDan Gohman
and Write, and add a comment explaining this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104756 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Stackrestore is not a load.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104752 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Remove a TODO which isn't practical.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104748 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-26Implement checking of the tail keyword.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104744 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-20Rename variable. add comment.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104274 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-14Add support to preserve type info for the variables that are removed by the ↵Devang Patel
optimizer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103798 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-12Clear CachedFunctionInfo upon Pass::releaseMemory. Because ValueMap will abortNick Lewycky
on RAUW of functions, this is a correctness issue instead of a mere memory usage problem. No testcase until the new MergeFunctions can land. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103653 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-10Fix whitespace in debug output to be consistent.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Remove DIGlobal.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103325 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Add DINameSpace::Verify().Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103318 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Verify variable directly.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103305 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Verify compile unit also.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103300 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Wrap const MDNode * inside DIDescriptor.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103295 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Use overloaded operators instead of DIDescriptor::getNode()Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103276 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Avoid DIDescriptor::getNode(). Use overloaded operators instead.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103272 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Add some words to this output to indicate what the numbers mean.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103264 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Add a simple module-level debug info printer. It just sets up aDan Gohman
DebugInfoFinder and iterates over all the contents calling print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103262 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Fix the new print functions to call print instead of dump.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103261 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-07Convert the DebugInfo classes dump() methods into print(raw_ostream &)Dan Gohman
methods, and add dump functions implemented in terms of the print. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103254 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04Use the SCEVAddRecExpr::getPostIncExpr utility function insteadDan Gohman
of doing the same thing manually. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102997 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04Fix a copy+pasto.Dan Gohman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102996 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-04Do not ignore debug loc attached with llvm.dbg.declare while collecting ↵Devang Patel
debug info used by a module. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102995 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03Use getConstant instead of getIntegerSCEV. The two are basically theDan Gohman
same, now that getConstant has overloads consistent with ConstantInt::get. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102965 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03Silence warnings about -1 being converted to an unsigned value.Dan Gohman
Also, pass true for isSigned even when creating constants for unsigned comparisons, because the point is to create an all-ones constant, rather than UINT64_MAX, even for integers wider than 64 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102946 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03Use isTrueWhenEqual and isFalseWhenEqual instead of assuming thatDan Gohman
SimplifyICmpOperands will simplify such cases to EQ or NE. This makes the correcntess of the code independent on SimplifyICmpOperands doing certain simplifications. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102927 91177308-0d34-0410-b5e6-96231b3b80d8
2010-05-03In ScalarEvolution::print, don't bother printing out the SCEVs forDan Gohman
comparison instructions, since they aren't interesting, despite having integer result types. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102925 91177308-0d34-0410-b5e6-96231b3b80d8