1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/include/llvm/Analysis
Andrew Kaylor fd49f275f8 Initial implementation of optimization bisect support.
This patch implements a optimization bisect feature, which will allow optimizations to be selectively disabled at compile time in order to track down test failures that are caused by incorrect optimizations.

The bisection is enabled using a new command line option (-opt-bisect-limit).  Individual passes that may be skipped call the OptBisect object (via an LLVMContext) to see if they should be skipped based on the bisect limit.  A finer level of control (disabling individual transformations) can be managed through an addition OptBisect method, but this is not yet used.

The skip checking in this implementation is based on (and replaces) the skipOptnoneFunction check.  Where that check was being called, a new call has been inserted in its place which checks the bisect limit and the optnone attribute.  A new function call has been added for module and SCC passes that behaves in a similar way.

Differential Revision: http://reviews.llvm.org/D19172

llvm-svn: 267022
2016-04-21 17:58:54 +00:00
..
AliasAnalysis.h Split IntrReadArgMem into IntrReadMem and IntrArgMemOnly 2016-04-21 17:48:02 +00:00
AliasAnalysisEvaluator.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
AliasSetTracker.h [AliasSetTracker] Correctly handle changing the size of an entry 2016-04-14 22:00:11 +00:00
AssumptionCache.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
BasicAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
BlockFrequencyInfo.h Add getBlockProfileCount method to BlockFrequencyInfo 2016-03-23 18:18:26 +00:00
BlockFrequencyInfoImpl.h Use getEdgeProbability() instead of getEdgeWeight() in BFI and remove getEdgeWeight() interfaces from MBPI. 2015-12-18 21:53:24 +00:00
BranchProbabilityInfo.h Const correctness for BranchProbabilityInfo (NFC) 2016-04-07 21:59:28 +00:00
CallGraph.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
CallGraphSCCPass.h Initial implementation of optimization bisect support. 2016-04-21 17:58:54 +00:00
CallPrinter.h [CG] Rename the DOT printing pass to actually reference "DOT". 2016-03-10 11:04:40 +00:00
CaptureTracking.h [CaptureTracker] Provide an ordered basic block to PointerMayBeCapturedBefore 2015-07-31 14:31:35 +00:00
CFG.h Add some constantness to GetSuccessorNumber(). 2015-11-20 23:02:06 +00:00
CFGPrinter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
CFLAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
CGSCCPassManager.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
CodeMetrics.h Add convergent property to CodeMetrics. 2016-02-12 21:01:31 +00:00
ConstantFolding.h Re-add ConstantFoldInstOperands form taking opcode and return type. 2016-03-14 22:34:17 +00:00
DemandedBits.h Port DemandedBits to the new pass manager. 2016-04-18 23:55:01 +00:00
DependenceAnalysis.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
DivergenceAnalysis.h [DivergenceAnalysis] Separated definition of class into header. 2015-09-21 17:58:14 +00:00
DominanceFrontier.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
DominanceFrontierImpl.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DomPrinter.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
DOTGraphTraitsPass.h DOTGraphTraits: Allow the decision to show a graph to consider the analysis 2015-12-17 12:48:25 +00:00
EHPersonalities.h Add Rust's personality function to the list of known personality functions 2016-03-15 20:35:45 +00:00
GlobalsModRef.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
InlineCost.h Revert revisions 262636, 262643, 262679, and 262682. 2016-03-08 00:36:35 +00:00
InstructionSimplify.h [opaque pointer types] [breaking-change] [NFC] SimplifyGEPInst: take the source element type of the GEP as an argument. 2016-01-17 22:46:43 +00:00
Interval.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IntervalIterator.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IntervalPartition.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
IteratedDominanceFrontier.h Correct IDF calculator for ReverseIDF 2016-04-19 06:13:28 +00:00
IVUsers.h -Wdeprecated-clean: Fix cases of violating the rule of 5 in ways that are deprecated in C++11 2015-08-03 22:30:24 +00:00
LazyCallGraph.h Initial implementation of optimization bisect support. 2016-04-21 17:58:54 +00:00
LazyValueInfo.h [LVI] Cleanup whitespaces. NFC 2015-07-28 15:53:21 +00:00
Lint.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
Loads.h NFC. Move isDereferenceable to Loads.h/cpp 2016-02-24 12:49:04 +00:00
LoopAccessAnalysis.h [LLE] Add missing check for unit stride 2016-03-09 20:47:55 +00:00
LoopInfo.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
LoopInfoImpl.h ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
LoopIterator.h
LoopPass.h Initial implementation of optimization bisect support. 2016-04-21 17:58:54 +00:00
LoopPassManager.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
LoopUnrollAnalyzer.h [LoopUnrollAnalyzer] Check that we're using SCEV for the same loop we're simulating. 2016-02-26 02:57:05 +00:00
MemoryBuiltins.h Calculate __builtin_object_size when pointer depends on a condition 2016-04-13 12:25:25 +00:00
MemoryDependenceAnalysis.h [memdep] Just require domtree for memdep. 2016-03-11 13:46:00 +00:00
MemoryLocation.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
ModuleSummaryAnalysis.h [ThinLTO] Move summary computation from BitcodeWriter to new pass 2016-04-11 13:58:45 +00:00
ObjCARCAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
ObjCARCAnalysisUtils.h Add support for objc_unsafeClaimAutoreleasedReturnValue to the 2016-01-27 19:05:08 +00:00
ObjCARCInstKind.h Add support for objc_unsafeClaimAutoreleasedReturnValue to the 2016-01-27 19:05:08 +00:00
OrderedBasicBlock.h [CaptureTracker] Provide an ordered basic block to PointerMayBeCapturedBefore 2015-07-31 14:31:35 +00:00
Passes.h [PM/AA] Port alias analysis evaluator to the new pass manager, and use 2016-02-20 03:46:03 +00:00
PHITransAddr.h Reformat partially. 2015-09-14 12:51:53 +00:00
PostDominators.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
PtrUseVisitor.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
RegionInfo.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
RegionInfoImpl.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
RegionIterator.h Remove explicit RNSuccIterator copy assignment in favor of implicit default 2015-03-04 07:51:50 +00:00
RegionPass.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
RegionPrinter.h [RegionInfo] Add debug-time region viewer functions 2015-08-10 13:21:59 +00:00
ScalarEvolution.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
ScalarEvolutionAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
ScalarEvolutionExpander.h Remove PreserveNames template parameter from IRBuilder 2016-03-13 21:05:13 +00:00
ScalarEvolutionExpressions.h [SCEV] Add boolean accessors for NSW, NUW and NW; NFC 2016-02-04 18:21:54 +00:00
ScalarEvolutionNormalization.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
ScopedNoAliasAA.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
SparsePropagation.h Make more headers self-contained. 2016-01-27 18:03:37 +00:00
TargetFolder.h Revert r240137 (Fixed/added namespace ending comments using clang-tidy. NFC) 2015-06-23 09:49:53 +00:00
TargetLibraryInfo.def [NVPTX] Infer __nvvm_reflect as nounwind, readnone 2016-03-31 21:29:57 +00:00
TargetLibraryInfo.h [NFC] Header cleanup 2016-04-18 09:17:29 +00:00
TargetTransformInfo.h [TTI] Add getInliningThresholdMultiplier. 2016-04-15 01:38:48 +00:00
TargetTransformInfoImpl.h [TTI] Add getInliningThresholdMultiplier. 2016-04-15 01:38:48 +00:00
Trace.h
TypeBasedAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
ValueTracking.h Add optimization for 'icmp slt (or A, B), A' and some related idioms based on knowledge of the sign bit for A and B. 2016-04-21 00:53:14 +00:00
VectorUtils.h [ValueTracking, VectorUtils] Refactor getIntrinsicIDForCall 2016-04-19 19:10:21 +00:00