1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/include/llvm/Analysis
Reid Kleckner 2a197a86b4 [IR] Lazily number instructions for local dominance queries
Essentially, fold OrderedBasicBlock into BasicBlock, and make it
auto-invalidate the instruction ordering when new instructions are
added. Notably, we don't need to invalidate it when removing
instructions, which is helpful when a pass mostly delete dead
instructions rather than transforming them.

The downside is that Instruction grows from 56 bytes to 64 bytes.  The
resulting LLVM code is substantially simpler and automatically handles
invalidation, which makes me think that this is the right speed and size
tradeoff.

The important change is in SymbolTableTraitsImpl.h, where the numbering
is invalidated. Everything else should be straightforward.

We probably want to implement a fancier re-numbering scheme so that
local updates don't invalidate the ordering, but I plan for that to be
future work, maybe for someone else.

Reviewed By: lattner, vsk, fhahn, dexonsmith

Differential Revision: https://reviews.llvm.org/D51664
2020-02-18 14:44:24 -08:00
..
Utils Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. 2019-12-13 14:30:21 +00:00
AliasAnalysis.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
AliasAnalysisEvaluator.h
AliasSetTracker.h AliasSetTracker - fix uninitialized variable warnings. NFCI. 2019-11-04 15:35:20 +00:00
AssumptionCache.h AssumptionCache: remove old affected values after RAUW. 2019-08-16 09:34:27 +00:00
BasicAliasAnalysis.h
BlockFrequencyInfo.h
BlockFrequencyInfoImpl.h [BFI] Add a debug check for unknown block queries. 2020-02-04 10:05:28 -08:00
BranchProbabilityInfo.h [BrachProbablityInfo] Add invalidate method. 2020-01-17 10:47:51 -08:00
CallGraph.h Introduce a CallGraph updater helper class 2020-02-08 14:16:48 -06:00
CallGraphSCCPass.h
CallPrinter.h
CaptureTracking.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
CFG.h Recommit "[GVN] Preserve loop related analysis/canonical forms." 2019-07-31 09:27:54 +00:00
CFGPrinter.h
CFLAliasAnalysisUtils.h
CFLAndersAliasAnalysis.h Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
CFLSteensAliasAnalysis.h Change TargetLibraryInfo analysis passes to always require Function 2019-09-07 03:09:36 +00:00
CGSCCPassManager.h [PM][CGSCC] Add a helper to update the call graph from SCC passes 2020-02-02 23:32:18 -06:00
CmpInstAnalysis.h
CodeMetrics.h
ConstantFolding.h
DDG.h [DDG] Data Dependence Graph - Topological Sort (Memory Leak Fix) 2019-12-03 10:08:25 -05:00
DemandedBits.h
DependenceAnalysis.h [NFC][DA] Remove duplicate code in checkSrcSubscript and checkDstSubscript 2019-12-27 10:06:19 -05:00
DependenceGraphBuilder.h [DDG] Data Dependence Graph - Ordinals 2019-12-19 10:57:33 -05:00
DivergenceAnalysis.h [DivergenceAnalysis] Add methods for querying divergence at use 2019-07-29 10:22:09 +00:00
DominanceFrontier.h
DominanceFrontierImpl.h
DomPrinter.h
DomTreeUpdater.h
DOTGraphTraitsPass.h Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
EHPersonalities.h
GlobalsModRef.h [GlobalsModRef] Add invalidate method 2020-01-17 10:33:54 -08:00
GuardUtils.h Further cleanup manipulation of widenable branches [NFC] 2019-11-21 15:07:30 -08:00
IndirectCallPromotionAnalysis.h
IndirectCallVisitor.h
InlineCost.h [llvm] Ensure InlineCost-related fields are initialized 2020-01-28 13:38:45 -08:00
InstructionPrecedenceTracking.h
InstructionSimplify.h Add InstCombine/InstructionSimplify support for Freeze Instruction 2019-11-12 12:13:26 +09:00
Interval.h
IntervalIterator.h
IntervalPartition.h Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
IteratedDominanceFrontier.h Minor cleanup. 2019-07-12 16:13:29 +00:00
IVDescriptors.h
IVUsers.h
LazyBlockFrequencyInfo.h
LazyBranchProbabilityInfo.h
LazyCallGraph.h Re-land "Add LazyCallGraph API to add function to RefSCC" 2020-02-17 16:59:25 -05:00
LazyValueInfo.h Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
LegacyDivergenceAnalysis.h Resubmit: [DA][TTI][AMDGPU] Add option to select GPUDA with TTI 2020-01-24 10:39:40 -08:00
Lint.h
Loads.h [Alignment][NFC] Finish transition for Loads 2019-10-21 15:10:26 +00:00
LoopAccessAnalysis.h Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
LoopAnalysisManager.h [LoopPassManager + MemorySSA] Only enable use of MemorySSA for LPMs known to preserve it. 2019-08-21 17:00:57 +00:00
LoopCacheAnalysis.h Title: Fix build warning for operator<< when using GCC 7. 2019-08-12 22:20:54 +00:00
LoopInfo.h [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
LoopInfoImpl.h [NFC] Fixes -Wrange-loop-analysis warnings 2020-01-01 20:01:37 +01:00
LoopIterator.h
LoopPass.h NFC. Remove obsolete SimpleAnalysis infrastructure 2020-01-23 13:58:30 +07:00
LoopUnrollAnalyzer.h
MemoryBuiltins.h [InstCombine] Annotate strdup with deref_or_null 2019-09-17 10:12:48 +00:00
MemoryDependenceAnalysis.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
MemoryLocation.h [AArch64][SVE] Add patterns for unpredicated load/store to frame-indices. 2020-01-22 14:32:27 +00:00
MemorySSA.h [MemorySSA] Combine verifications. 2019-11-25 16:05:38 -08:00
MemorySSAUpdater.h [MemorySSA] Make Phi cleanups consistent. 2019-08-20 22:47:58 +00:00
ModuleSummaryAnalysis.h
MustExecute.h [MustExecute] Forward iterate over conditional branches 2019-10-31 00:06:43 -05:00
ObjCARCAliasAnalysis.h
ObjCARCAnalysisUtils.h
ObjCARCInstKind.h [ObjC][ARC] Delete ObjC runtime calls on global variables annotated 2019-06-14 22:06:32 +00:00
OptimizationRemarkEmitter.h [Remarks] Extend the RemarkStreamer to support other emitters 2020-02-04 17:16:02 -08:00
OrderedInstructions.h [IR] Lazily number instructions for local dominance queries 2020-02-18 14:44:24 -08:00
Passes.h [MustExec] Add a generic "must-be-executed-context" explorer 2019-08-23 15:17:27 +00:00
PHITransAddr.h
PhiValues.h [PhiValues] Remove redundant map searches 2019-11-23 10:32:56 +02:00
PostDominators.h [CodeMoverUtils] Added an API to check if an instruction can be safely 2019-11-22 21:29:08 +00:00
ProfileSummaryInfo.h [PGO][PGSO] ProfileSummary changes. 2019-09-24 22:17:51 +00:00
PtrUseVisitor.h Reland [DataLayout] Fix occurrences that size and range of pointers are assumed to be the same. 2019-12-13 14:30:21 +00:00
RegionInfo.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
RegionInfoImpl.h Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
RegionIterator.h
RegionPass.h
RegionPrinter.h
ScalarEvolution.h [SCEV] Make SCEV verification available from command line with new PM 2019-12-02 13:08:20 +07:00
ScalarEvolutionAliasAnalysis.h
ScalarEvolutionExpander.h Revert "[SCEV] Move ScalarEvolutionExpander.cpp to Transforms/Utils (NFC)." 2020-01-04 18:44:38 +00:00
ScalarEvolutionExpressions.h Move static function to inline function - this fixes a conceivable 2020-01-16 16:12:46 -08:00
ScalarEvolutionNormalization.h
ScopedNoAliasAA.h
SparsePropagation.h
StackSafetyAnalysis.h
SyncDependenceAnalysis.h
SyntheticCountsUtils.h
TargetFolder.h Reapply "[IRBuilder] Virtualize IRBuilder" 2020-02-17 19:04:11 +01:00
TargetLibraryInfo.def [ConstantFolding] Fold calls to FP remainder function 2020-02-12 13:21:18 +02:00
TargetLibraryInfo.h Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
TargetTransformInfo.h Resubmit: [DA][TTI][AMDGPU] Add option to select GPUDA with TTI 2020-01-24 10:39:40 -08:00
TargetTransformInfoImpl.h Update TTI's getUserCost to return TCC_Free on freeze 2020-02-04 13:56:53 +09:00
Trace.h
TypeBasedAliasAnalysis.h
TypeMetadataUtils.h Reland: Dead Virtual Function Elimination 2019-10-17 09:58:57 +00:00
ValueLattice.h [ValueLattice] Update markConstantRange to return false equal ranges. 2020-02-15 22:06:55 +01:00
ValueLatticeUtils.h
ValueTracking.h [ValueTracking] Update implied reasoning to accept expanded cmp (NFC). 2020-02-07 10:27:29 +00:00
VecFuncs.def Lower generic MASSV entries to PowerPC subtarget-specific entries 2019-11-04 17:17:24 +00:00
VectorUtils.h [VectorUtils] Accept IRBuilderBase; NFC 2020-02-18 18:02:04 +01:00