LLVM 17.0.0git
|
#include "llvm/Analysis/LegacyDivergenceAnalysis.h"
Public Member Functions | |
bool | isDivergent (const Value *V) const |
bool | isDivergentUse (const Use *U) const |
bool | isUniform (const Value *V) const |
bool | isUniformUse (const Use *U) const |
void | removeValue (const Value *V) |
void | print (raw_ostream &OS, const Module *) const |
bool | shouldUseGPUDivergenceAnalysis (const Function &F, const TargetTransformInfo &TTI, const LoopInfo &LI) |
void | run (Function &F, TargetTransformInfo &TTI, DominatorTree &DT, PostDominatorTree &PDT, const LoopInfo &LI) |
Protected Attributes | |
std::unique_ptr< DivergenceInfo > | gpuDA |
DenseSet< const Value * > | DivergentValues |
DenseSet< const Use * > | DivergentUses |
Definition at line 34 of file LegacyDivergenceAnalysis.h.
Definition at line 332 of file LegacyDivergenceAnalysis.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), DivergentValues, and gpuDA.
Referenced by isUniform(), and print().
Definition at line 339 of file LegacyDivergenceAnalysis.cpp.
References llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::count(), DivergentUses, DivergentValues, and gpuDA.
Referenced by isUniformUse().
Definition at line 43 of file LegacyDivergenceAnalysis.h.
References isDivergent().
Definition at line 47 of file LegacyDivergenceAnalysis.h.
References isDivergentUse().
void LegacyDivergenceAnalysisImpl::print | ( | raw_ostream & | OS, |
const Module * | |||
) | const |
Definition at line 346 of file LegacyDivergenceAnalysis.cpp.
References Arg, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::begin(), DivergentValues, llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::empty(), F, llvm::Value::getName(), gpuDA, I, llvm::BasicBlock::instructionsWithoutDebug(), isDivergent(), llvm_unreachable, and OS.
Referenced by llvm::LegacyDivergenceAnalysisPass::run(), and llvm::LegacyDivergenceAnalysis::runOnFunction().
Definition at line 50 of file LegacyDivergenceAnalysis.h.
References DivergentValues, and llvm::detail::DenseSetImpl< ValueT, MapTy, ValueInfoT >::erase().
void LegacyDivergenceAnalysisImpl::run | ( | Function & | F, |
llvm::TargetTransformInfo & | TTI, | ||
llvm::DominatorTree & | DT, | ||
llvm::PostDominatorTree & | PDT, | ||
const LoopInfo & | LI | ||
) |
Definition at line 314 of file LegacyDivergenceAnalysis.cpp.
References DivergentUses, DivergentValues, F, gpuDA, and shouldUseGPUDivergenceAnalysis().
Referenced by llvm::LegacyDivergenceAnalysisPass::run(), and llvm::LegacyDivergenceAnalysis::runOnFunction().
bool LegacyDivergenceAnalysisImpl::shouldUseGPUDivergenceAnalysis | ( | const Function & | F, |
const TargetTransformInfo & | TTI, | ||
const LoopInfo & | LI | ||
) |
Definition at line 302 of file LegacyDivergenceAnalysis.cpp.
References llvm::containsIrreducibleCFG(), F, UseGPUDA, and llvm::TargetTransformInfo::useGPUDivergenceAnalysis().
Referenced by run().
Definition at line 71 of file LegacyDivergenceAnalysis.h.
Referenced by isDivergentUse(), run(), and llvm::LegacyDivergenceAnalysis::runOnFunction().
Definition at line 68 of file LegacyDivergenceAnalysis.h.
Referenced by isDivergent(), isDivergentUse(), print(), removeValue(), run(), and llvm::LegacyDivergenceAnalysis::runOnFunction().
|
protected |
Definition at line 65 of file LegacyDivergenceAnalysis.h.
Referenced by isDivergent(), isDivergentUse(), print(), run(), and llvm::LegacyDivergenceAnalysis::runOnFunction().