diff options
Diffstat (limited to 'contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp b/contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp index 0ccd59ef2bfd..3d1be1e1cce0 100644 --- a/contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp +++ b/contrib/llvm-project/llvm/lib/Analysis/DivergenceAnalysis.cpp @@ -412,6 +412,12 @@ bool DivergenceAnalysis::isDivergent(const Value &V) const {    return DivergentValues.find(&V) != DivergentValues.end();  } +bool DivergenceAnalysis::isDivergentUse(const Use &U) const { +  Value &V = *U.get(); +  Instruction &I = *cast<Instruction>(U.getUser()); +  return isDivergent(V) || isTemporalDivergent(*I.getParent(), V); +} +  void DivergenceAnalysis::print(raw_ostream &OS, const Module *) const {    if (DivergentValues.empty())      return; @@ -449,6 +455,10 @@ bool GPUDivergenceAnalysis::isDivergent(const Value &val) const {    return DA.isDivergent(val);  } +bool GPUDivergenceAnalysis::isDivergentUse(const Use &use) const { +  return DA.isDivergentUse(use); +} +  void GPUDivergenceAnalysis::print(raw_ostream &OS, const Module *mod) const {    OS << "Divergence of kernel " << DA.getFunction().getName() << " {\n";    DA.print(OS, mod);  | 
