llvm-6502/include/llvm/Analysis
Andrew Trick 7ce804a625 Merging 182989: Fix ScalarEvolution::ComputeExitLimitFromCond for 'or' conditions.
Fixes PR16130 - clang produces incorrect code with loop/expression at -O2.

    This is a 2+ year old bug that's now holding up the release. It's a
    case where we knowingly made aggressive assumptions about undefined
    behavior. These assumptions are wrong when SCEV is computing a
    subexpression that does not directly control the branch. With this
    fix, we avoid making assumptions in those cases but still optimize the
    common case. SCEV's trip count computation for exits controlled by
    'or' expressions is now analagous to the trip count computation for
    loops with multiple exits. I had already fixed the multiple exit case
    to be conservative.

    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182989 91177308-0d34-0410-b5e6-96231b3b80d8



git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_33@183013 91177308-0d34-0410-b5e6-96231b3b80d8
2013-05-31 16:06:18 +00:00
..
AliasAnalysis.h Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since 2013-01-31 02:40:59 +00:00
AliasSetTracker.h Remove unneeded #includes. 2013-03-18 23:33:44 +00:00
BlockFrequencyImpl.h Add std prefixes to fix the build with xlc. 2013-03-20 21:00:22 +00:00
BlockFrequencyInfo.h Add some constantness to BranchProbabilityInfo and BlockFrequnencyInfo. 2011-12-20 20:03:10 +00:00
BranchProbabilityInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
CallGraph.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CallGraphSCCPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
CallPrinter.h Added -view-callgraph module pass. 2013-01-11 17:28:14 +00:00
CaptureTracking.h Remove unneeded #includes. Use forward declarations instead. 2013-03-10 00:34:01 +00:00
CFGPrinter.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
CodeMetrics.h Switch CodeMetrics itself over to use TTI to determine if an instruction 2013-01-21 13:04:33 +00:00
ConstantFolding.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
ConstantsScanner.h
DependenceAnalysis.h Fix a few typos in comments. 2013-03-05 22:05:16 +00:00
DominanceFrontier.h Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch 2011-12-20 02:50:00 +00:00
DominatorInternals.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
Dominators.h Add some constantness. 2013-03-05 22:01:15 +00:00
DomPrinter.h
DOTGraphTraitsPass.h Remove redundant 'llvm::' qualifications 2013-01-13 16:01:15 +00:00
FindUsedTypes.h land David Blaikie's patch to de-constify Type, with a few tweaks. 2011-07-18 04:54:35 +00:00
InlineCost.h Now that the inline cost analysis is a pass, we can easily have it 2013-01-21 11:55:09 +00:00
InstructionSimplify.h Document another instsimplify assumption. 2013-01-31 22:13:00 +00:00
Interval.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IntervalIterator.h Fix a few typos in comments. 2013-03-05 22:05:16 +00:00
IntervalPartition.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
IVUsers.h Remove duplicated forward declaration. 2013-03-06 00:04:32 +00:00
LazyValueInfo.h Move TargetData to DataLayout. 2012-10-08 16:38:25 +00:00
LibCallAliasAnalysis.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
LibCallSemantics.h Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
Lint.h
Loads.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
LoopInfo.h Remove unneeded const_cast. 2013-03-09 18:24:26 +00:00
LoopInfoImpl.h Remove #includes from the commonly used LoopInfo.h. 2013-02-09 01:04:28 +00:00
LoopIterator.h Remove unneeded #includes. 2013-02-09 13:29:10 +00:00
LoopPass.h LoopPass.h doesn't require Function.h. Remove unneeded #include. 2013-01-11 01:03:32 +00:00
MemoryBuiltins.h Revert r176408 and r176407 to address PR15540. 2013-04-09 18:16:05 +00:00
MemoryDependenceAnalysis.h Memory Dependence Analysis (not mem-dep test) take advantage of "invariant.load" metadata. 2013-03-06 17:48:48 +00:00
Passes.h Remove -print-dbginfo as it is unused & bitrotten. 2013-03-08 18:17:46 +00:00
PathNumbering.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PathProfileInfo.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
PHITransAddr.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
PostDominators.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ProfileDataLoader.h Use the new script to sort the includes of every file under lib. 2012-12-03 16:50:05 +00:00
ProfileDataTypes.h fix C++ comment in C header 2012-08-29 20:32:13 +00:00
ProfileInfo.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ProfileInfoLoader.h Sort the #include lines for the include/... tree with the script. 2012-12-03 17:02:12 +00:00
ProfileInfoTypes.h Profile: move a single enum out of ProfileInfoTypes.h into a new 2012-08-24 18:31:44 +00:00
PtrUseVisitor.h Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
RegionInfo.h RegionInfo: Add helpers to replace entry/exit recursively 2013-04-10 06:54:49 +00:00
RegionIterator.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionPass.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
RegionPrinter.h
ScalarEvolution.h Merging 182989: Fix ScalarEvolution::ComputeExitLimitFromCond for 'or' conditions. 2013-05-31 16:06:18 +00:00
ScalarEvolutionExpander.h SCEVExpander fix. RAUW needs to update the InsertedExpressions cache. 2013-01-14 21:00:37 +00:00
ScalarEvolutionExpressions.h Pacify -Wnon-virtual-dtor 2013-02-15 23:51:59 +00:00
ScalarEvolutionNormalization.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
SparsePropagation.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
TargetTransformInfo.h CostModel: Add parameter to instruction cost to further classify operand values 2013-04-04 23:26:21 +00:00
Trace.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
ValueTracking.h Move isKnownNonNull out of AliasAnalysis.h and into ValueTracking.cpp since 2013-01-31 02:40:59 +00:00
Verifier.h