1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-22 20:43:44 +02:00
llvm-mirror/include/llvm/Analysis
Adam Nemet 071e00e973 [BFI] Add new LazyBFI analysis pass
Summary:
This is necessary for D21771.  In order to add the hotness attribute to
optimization remarks we need BFI to be available in all passes that emit
optimization remarks.

However we don't want to pay for computing BFI unless the hotness
attribute is requested.

This is achieved by making BFI lazy at the very high-level through a new
analysis pass -- BFI is not calculated unless requested.

I am adding a test to check the laziness under D21771 where the first
user of the analysis is added.

Reviewers: hfinkel, dexonsmith, davidxl

Subscribers: davidxl, dexonsmith, llvm-commits

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

llvm-svn: 275250
2016-07-13 05:01:48 +00:00
..
AliasAnalysis.h Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
AliasAnalysisEvaluator.h PM: Remove some redundant name() methods 2016-04-22 17:25:43 +00:00
AliasSetTracker.h Use the same underlying type for bitfields 2016-06-24 04:05:25 +00:00
AssumptionCache.h [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
BasicAliasAnalysis.h [BasicAA] Extend inbound GEP negative offset logic to GlobalVariables 2016-05-26 19:30:49 +00:00
BlockFrequencyInfo.h [BFI] Add new LazyBFI analysis pass 2016-07-13 05:01:48 +00:00
BlockFrequencyInfoImpl.h [BFI/MBFI]: cfg graph view with color scheme 2016-06-28 06:58:21 +00:00
BranchProbabilityInfo.h Revert r272891 "[JumpThreading] Prevent dangling pointer problems in BranchProbabilityInfo" 2016-06-16 16:25:53 +00:00
CallGraph.h [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
CallGraphSCCPass.h Interprocedural Register Allocation (IPRA) Analysis 2016-06-10 16:19:46 +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
CFLAndersAliasAnalysis.h [CFLAA] Move the graph builder out from CFLSteens. NFC. 2016-07-09 02:54:42 +00:00
CFLSteensAliasAnalysis.h [CFLAA] Move the graph builder out from CFLSteens. NFC. 2016-07-09 02:54:42 +00:00
CGSCCPassManager.h [PM] Improve the debugging and logging facilities of the CGSCC bits of 2016-06-27 23:26:08 +00:00
CodeMetrics.h Add convergent property to CodeMetrics. 2016-02-12 21:01:31 +00:00
ConstantFolding.h CodeGen: Use PLT relocations for relative references to unnamed_addr functions. 2016-04-22 20:40:10 +00:00
DemandedBits.h Port DemandedBits to the new pass manager. 2016-04-18 23:55:01 +00:00
DependenceAnalysis.h [PM] Port of the DepndenceAnalysis to the new PM. 2016-05-12 22:19:39 +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 X86: permit using SjLj EH on x86 targets as an option 2016-05-31 01:48:07 +00:00
GlobalsModRef.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
IndirectCallPromotionAnalysis.h Refactor indirect call promotion profitability analysis (NFC) 2016-07-12 21:13:44 +00:00
IndirectCallSiteVisitor.h Refactor indirect call promotion profitability analysis (NFC) 2016-07-12 21:13:44 +00:00
InlineCost.h Use ProfileSummaryInfo in inline cost analysis. 2016-06-09 22:23:21 +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 Apply clang-tidy's modernize-loop-convert to lib/Analysis. 2016-06-26 17:27:42 +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
LazyBlockFrequencyInfo.h [BFI] Add new LazyBFI analysis pass 2016-07-13 05:01:48 +00:00
LazyCallGraph.h [LCG] Hoist the definitions of the stream operator friends to be inline 2016-07-07 07:52:07 +00:00
LazyValueInfo.h [PM] Port LVI to the new PM. 2016-06-13 22:01:25 +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 Revert "InstCombine rule to fold truncs whose value is available" 2016-07-08 22:15:08 +00:00
LoopAccessAnalysis.h [PM] name the new PM LAA class LoopAccessAnalysis (LAA) /NFC 2016-07-08 21:21:44 +00:00
LoopInfo.h [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
LoopInfoImpl.h ADT: Remove == and != comparisons between ilist iterators and pointers 2016-02-21 20:39:50 +00:00
LoopIterator.h Remove unneeded #includes. 2013-02-09 13:29:10 +00:00
LoopPass.h Re-commit optimization bisect support (r267022) without new pass manager support. 2016-04-22 22:06:11 +00:00
LoopPassManager.h PM: Check that loop passes preserve a basic set of analyses 2016-05-03 21:35:08 +00:00
LoopUnrollAnalyzer.h Revert "Revert "[Unroll] Implement a conservative and monotonically increasing cost tracking system during the full unroll heuristic analysis that avoids counting any instruction cost until that instruction becomes "live" through a side-effect or use outside the..."" 2016-05-13 21:23:25 +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: fix assertion and refactor check for hidden use from inline ASM in a helper function 2016-05-06 08:25:33 +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] Port of the DepndenceAnalysis to the new PM. 2016-05-12 22:19:39 +00:00
PHITransAddr.h Reformat partially. 2015-09-14 12:51:53 +00:00
PostDominators.h [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
ProfileSummaryInfo.h [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +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 Unify XDEBUG and EXPENSIVE_CHECKS (into the latter), and add an option to the cmake build to enable them. 2016-04-29 15:22:48 +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 Factor out a loopHasNoAbnormalExits; NFC 2016-06-09 01:13:54 +00:00
ScalarEvolutionAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
ScalarEvolutionExpander.h [SCEV] Keep SCEVExpander insert points consistent. 2016-06-01 20:03:09 +00:00
ScalarEvolutionExpressions.h [SCEV] Don't unnecessarily namespace; NFC 2016-06-23 18:03:32 +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 [PM] Remove support for omitting the AnalysisManager argument to new 2016-06-17 00:11:01 +00:00
TargetTransformInfo.h Add TLI.allowsMisalignedMemoryAccesses to LoadStoreVectorizer 2016-07-11 20:46:17 +00:00
TargetTransformInfoImpl.h Add TLI.allowsMisalignedMemoryAccesses to LoadStoreVectorizer 2016-07-11 20:46:17 +00:00
Trace.h Fix include guards so they exactly match file names. 2013-01-10 00:45:19 +00:00
TypeBasedAliasAnalysis.h [PM] Make the AnalysisManager parameter to run methods a reference. 2016-03-11 11:05:24 +00:00
TypeMetadataUtils.h IR: Introduce llvm.type.checked.load intrinsic. 2016-06-25 00:23:04 +00:00
ValueTracking.h Remove dead TLI arg of isKnownNonNull and propagate deadness. NFC. 2016-07-02 23:47:27 +00:00
VectorUtils.h SLPVectorizer: Move propagateMetadata to VectorUtils 2016-06-30 21:17:59 +00:00