LLVM
8.0.1
|
Divergence analysis frontend for GPU kernels. More...
#include "llvm/Analysis/DivergenceAnalysis.h"
Public Member Functions | |
GPUDivergenceAnalysis (Function &F, const DominatorTree &DT, const PostDominatorTree &PDT, const LoopInfo &LI, const TargetTransformInfo &TTI) | |
Runs the divergence analysis on , a GPU kernel. More... | |
bool | hasDivergence () const |
Whether any divergence was detected. More... | |
const Function & | getFunction () const |
The GPU kernel this analysis result is for. More... | |
bool | isDivergent (const Value &V) const |
Whether V is divergent. More... | |
bool | isUniform (const Value &V) const |
Whether V is uniform/non-divergent. More... | |
void | print (raw_ostream &OS, const Module *) const |
Print all divergent values in the kernel. More... | |
Divergence analysis frontend for GPU kernels.
Definition at line 177 of file DivergenceAnalysis.h.
GPUDivergenceAnalysis::GPUDivergenceAnalysis | ( | Function & | F, |
const DominatorTree & | DT, | ||
const PostDominatorTree & | PDT, | ||
const LoopInfo & | LI, | ||
const TargetTransformInfo & | TTI | ||
) |
Runs the divergence analysis on , a GPU kernel.
Definition at line 427 of file DivergenceAnalysis.cpp.
References llvm::DivergenceAnalysis::addUniformOverride(), Arg, llvm::Function::args(), llvm::DivergenceAnalysis::compute(), llvm::instructions(), llvm::TargetTransformInfo::isAlwaysUniform(), llvm::TargetTransformInfo::isSourceOfDivergence(), and llvm::DivergenceAnalysis::markDivergent().
The GPU kernel this analysis result is for.
Definition at line 191 of file DivergenceAnalysis.h.
References llvm::DivergenceAnalysis::getFunction(), and llvm::DivergenceAnalysis::isDivergent().
|
inline |
Whether any divergence was detected.
Definition at line 188 of file DivergenceAnalysis.h.
References llvm::DivergenceAnalysis::hasDetectedDivergence().
Whether V
is divergent.
Definition at line 449 of file DivergenceAnalysis.cpp.
References llvm::DivergenceAnalysis::isDivergent().
Whether V
is uniform/non-divergent.
Definition at line 197 of file DivergenceAnalysis.h.
References llvm::DivergenceAnalysis::isDivergent(), and llvm::DivergenceAnalysis::print().
void GPUDivergenceAnalysis::print | ( | raw_ostream & | OS, |
const Module * | mod | ||
) | const |
Print all divergent values in the kernel.
Definition at line 453 of file DivergenceAnalysis.cpp.
References llvm::DivergenceAnalysis::getFunction(), llvm::Value::getName(), and llvm::DivergenceAnalysis::print().