15#ifndef LLVM_ANALYSIS_LEGACYDIVERGENCEANALYSIS_H
16#define LLVM_ANALYSIS_LEGACYDIVERGENCEANALYSIS_H
30class TargetTransformInfo;
65 std::unique_ptr<DivergenceInfo>
gpuDA;
92 std::unique_ptr<DivergenceInfo> gpuDA;
This file defines the DenseSet and SmallDenseSet classes.
Machine Check Debug Module
This header defines various interfaces for pass management in LLVM.
A container for analyses that lazily runs them and caches their results.
Represent the analysis usage information of a pass.
Implements a dense probed hash-table based set.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
FunctionPass class - This class is used to implement most global optimizations.
DenseSet< const Use * > DivergentUses
DenseSet< const Value * > DivergentValues
std::unique_ptr< DivergenceInfo > gpuDA
bool isUniform(const Value *V) const
bool isDivergentUse(const Use *U) const
bool isDivergent(const Value *V) const
void run(Function &F, TargetTransformInfo &TTI, DominatorTree &DT, PostDominatorTree &PDT, const LoopInfo &LI)
void removeValue(const Value *V)
bool shouldUseGPUDivergenceAnalysis(const Function &F, const TargetTransformInfo &TTI, const LoopInfo &LI)
void print(raw_ostream &OS, const Module *) const
bool isUniformUse(const Use *U) const
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
LegacyDivergenceAnalysis()
A Module instance is used to store all the information related to an LLVM module.
PostDominatorTree Class - Concrete subclass of DominatorTree that is used to compute the post-dominat...
A set of analyses that are preserved following a run of a transformation pass.
A Use represents the edge between a Value definition and its users.
LLVM Value Representation.
bool erase(const ValueT &V)
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.