1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 19:52:54 +01:00
llvm-mirror/include/llvm/Analysis
Max Kazantsev 90a71c8d58 [SCEV][NFC] Remove TBB, FBB parameters from exit limit computations
Methods `computeExitLimitFromCondCached` and `computeExitLimitFromCondImpl` take
true and false branches as parameters and only use them for asserts and for identifying
whether true/false branch belongs to the loop (which can be done once earlier). This fact
complicates generalization of exit limit computation logic on guards because the guards
don't have blocks to which they go in case of failure explicitly.

The motivation of this patch is that currently this part of SCEV knows nothing about guards
and only works with explicit branches. As result, it fails to prove that a loop

  for (i = 0; i < 100; i++)
    guard(i < 10);

exits after 10th iteration, while in the equivalent example

  for (i = 0; i < 100; i++)
    if (i >= 10) break;

SCEV easily proves this fact. We are going to change it in near future, and this is why
we need to make these methods operate on more abstract level.

This patch refactors this code to get rid of these parameters as meaningless and prepare
ground for teaching these methods to work with guards as well as they work with explicit
branching instructions.

Differential Revision: https://reviews.llvm.org/D44419

llvm-svn: 327615
2018-03-15 09:38:00 +00:00
..
AliasAnalysis.h [AliasAnalysis] Shrink AliasResults; NFC 2018-03-10 03:34:43 +00:00
AliasAnalysisEvaluator.h [ModRefInfo] Add must alias info to ModRefInfo. 2017-12-21 21:41:53 +00:00
AliasSetTracker.h
AssumptionCache.h
BasicAliasAnalysis.h
BlockFrequencyInfo.h Revert r320104: infinite loop profiling bug fix 2017-12-08 19:38:07 +00:00
BlockFrequencyInfoImpl.h MachineFunction: Return reference from getFunction(); NFC 2017-12-15 22:22:58 +00:00
BranchProbabilityInfo.h [BranchProbabilityInfo] Handle irreducible loops. 2017-11-01 15:16:50 +00:00
CallGraph.h Remove CallGraphTraits and use equivalent methods in GraphTraits 2018-02-01 19:40:35 +00:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h
CFG.h [LV][CFG] Add irreducible CFG detection for outer loops 2018-03-02 12:24:25 +00:00
CFGPrinter.h
CFLAliasAnalysisUtils.h
CFLAndersAliasAnalysis.h
CFLSteensAliasAnalysis.h
CGSCCPassManager.h [NFC] fix trivial typos in comments 2018-01-23 05:49:30 +00:00
CmpInstAnalysis.h
CodeMetrics.h
ConstantFolding.h [Evaluator] Evaluate load/store with bitcast 2018-03-13 10:19:50 +00:00
DemandedBits.h
DependenceAnalysis.h
DivergenceAnalysis.h Pass Divergence Analysis data to Selection DAG to drive divergence 2018-03-05 15:12:21 +00:00
DominanceFrontier.h
DominanceFrontierImpl.h
DomPrinter.h
DOTGraphTraitsPass.h
EHPersonalities.h
GlobalsModRef.h
IndirectCallPromotionAnalysis.h
IndirectCallSiteVisitor.h
InlineCost.h [NFC] fix trivial typos in comments 2018-01-23 05:49:30 +00:00
InstructionSimplify.h [NFC] Extract out a helper function for SimplifyCall(CS, Q) 2017-12-27 00:16:12 +00:00
Interval.h
IntervalIterator.h
IntervalPartition.h
IteratedDominanceFrontier.h
IVUsers.h
LazyBlockFrequencyInfo.h
LazyBranchProbabilityInfo.h
LazyCallGraph.h
LazyValueInfo.h [JumpThreading] PR36133 enable/disable DominatorTree for LVI analysis 2018-02-16 16:35:17 +00:00
Lint.h
Loads.h
LoopAccessAnalysis.h Revert r320548:[SLP] Vectorize jumbled memory loads 2017-12-20 15:26:59 +00:00
LoopAnalysisManager.h Add MemorySSA as loop dependency, disabled by default [NFC]. 2017-11-21 15:45:46 +00:00
LoopInfo.h [PM/Unswitch] Teach SimpleLoopUnswitch to do non-trivial unswitching, 2017-11-17 19:58:36 +00:00
LoopInfoImpl.h [PM/Unswitch] Teach SimpleLoopUnswitch to do non-trivial unswitching, 2017-11-17 19:58:36 +00:00
LoopIterator.h [LV][CFG] Add irreducible CFG detection for outer loops 2018-03-02 12:24:25 +00:00
LoopPass.h
LoopUnrollAnalyzer.h
MemoryBuiltins.h
MemoryDependenceAnalysis.h Revert "[memcpyopt] Teach memcpyopt to optimize across basic blocks" 2017-12-28 05:10:33 +00:00
MemoryLocation.h
MemorySSA.h [MemorySSA] Split PtrIntPair as this fails on win/arm. 2018-03-08 19:15:00 +00:00
MemorySSAUpdater.h
ModuleSummaryAnalysis.h
ObjCARCAliasAnalysis.h
ObjCARCAnalysisUtils.h Improve caching scheme in ProvenanceAnalysis. 2018-03-12 20:36:25 +00:00
ObjCARCInstKind.h
ObjectUtils.h
OptimizationRemarkEmitter.h
OrderedBasicBlock.h
Passes.h
PHITransAddr.h
PostDominators.h [Dominators] Remove verifyDomTree and add some verifying for Post Dom Trees 2018-02-28 11:00:08 +00:00
ProfileSummaryInfo.h [PGO] Function section hotness prefix should look at all blocks 2017-12-20 17:53:10 +00:00
PtrUseVisitor.h [NFC] fix trivial typos in comments and documents 2018-01-29 05:17:03 +00:00
RegionInfo.h Declare PostDominatorTree as a class 2018-02-09 18:41:42 +00:00
RegionInfoImpl.h RegionInfo: Use report_fatal_error instead of llvm_unreachable 2018-01-05 17:51:36 +00:00
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h [SCEV][NFC] Remove TBB, FBB parameters from exit limit computations 2018-03-15 09:38:00 +00:00
ScalarEvolutionAliasAnalysis.h
ScalarEvolutionExpander.h [SCEV] Fix Typo. NFC. 2017-12-20 15:06:26 +00:00
ScalarEvolutionExpressions.h [SCEV] Make getPostIncExpr guaranteed to return AddRec 2018-02-12 05:09:38 +00:00
ScalarEvolutionNormalization.h
ScopedNoAliasAA.h
SparsePropagation.h
SyntheticCountsUtils.h Remove CallGraphTraits and use equivalent methods in GraphTraits 2018-02-01 19:40:35 +00:00
TargetFolder.h
TargetLibraryInfo.def [SimplifyLibCalls] Inline calls to cabs when it's safe to do so 2017-12-16 01:26:25 +00:00
TargetLibraryInfo.h
TargetTransformInfo.h [TTI] add explanatory comments for getArithmeticInstrCost; NFC 2018-03-07 22:43:08 +00:00
TargetTransformInfoImpl.h [LoopStrengthReduce, x86] don't add cost for a cmp that will be macro-fused (PR35681) 2018-02-05 23:43:05 +00:00
Trace.h
TypeBasedAliasAnalysis.h
TypeMetadataUtils.h
ValueLattice.h [IPSCCP] Add getCompare which returns either true, false, undef or null. 2018-03-05 17:33:50 +00:00
ValueLatticeUtils.h
ValueTracking.h [NFC] Factor out a helper function for checking if a block has a potential early implicit exit. 2018-03-08 21:25:30 +00:00
VectorUtils.h