diff --git a/llvm/include/llvm/Analysis/DivergenceAnalysis.h b/llvm/include/llvm/Analysis/DivergenceAnalysis.h --- a/llvm/include/llvm/Analysis/DivergenceAnalysis.h +++ b/llvm/include/llvm/Analysis/DivergenceAnalysis.h @@ -18,6 +18,7 @@ #include "llvm/ADT/DenseSet.h" #include "llvm/Analysis/SyncDependenceAnalysis.h" #include "llvm/IR/PassManager.h" +#include "llvm/Support/Compiler.h" #include namespace llvm { @@ -156,6 +157,7 @@ const TargetTransformInfo &TTI, bool KnownReducible); /// Whether any divergence was detected. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool hasDivergence() const { return ContainsIrreducible || DA->hasDetectedDivergence(); } @@ -164,20 +166,24 @@ const Function &getFunction() const { return F; } /// Whether \p V is divergent at its definition. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isDivergent(const Value &V) const { return ContainsIrreducible || DA->isDivergent(V); } /// Whether \p U is divergent. Uses of a uniform value can be divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isDivergentUse(const Use &U) const { return ContainsIrreducible || DA->isDivergentUse(U); } /// Whether \p V is uniform/non-divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isUniform(const Value &V) const { return !isDivergent(V); } /// Whether \p U is uniform/non-divergent. Uses of a uniform value can be /// divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isUniformUse(const Use &U) const { return !isDivergentUse(U); } }; diff --git a/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h b/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h --- a/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h +++ b/llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h @@ -20,6 +20,7 @@ #include "llvm/Analysis/PostDominators.h" #include "llvm/IR/PassManager.h" #include "llvm/Pass.h" +#include "llvm/Support/Compiler.h" #include namespace llvm { @@ -34,25 +35,32 @@ class LegacyDivergenceAnalysisImpl { public: // Returns true if V is divergent at its definition. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isDivergent(const Value *V) const; // Returns true if U is divergent. Uses of a uniform value can be divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isDivergentUse(const Use *U) const; // Returns true if V is uniform/non-divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isUniform(const Value *V) const { return !isDivergent(V); } // Returns true if U is uniform/non-divergent. Uses of a uniform value can be // divergent. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool isUniformUse(const Use *U) const { return !isDivergentUse(U); } // Keep the analysis results uptodate by removing an erased value. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") void removeValue(const Value *V) { DivergentValues.erase(V); } // Print all divergent branches in the function. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") void print(raw_ostream &OS, const Module *) const; // Whether analysis should be performed by GPUDivergenceAnalysis. + LLVM_DEPRECATED("Use UniformityAnalysis instead", "UniformityAnalysis") bool shouldUseGPUDivergenceAnalysis(const Function &F, const TargetTransformInfo &TTI, const LoopInfo &LI); diff --git a/llvm/lib/Analysis/DivergenceAnalysis.cpp b/llvm/lib/Analysis/DivergenceAnalysis.cpp --- a/llvm/lib/Analysis/DivergenceAnalysis.cpp +++ b/llvm/lib/Analysis/DivergenceAnalysis.cpp @@ -89,6 +89,9 @@ #define DEBUG_TYPE "divergence" +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + DivergenceAnalysisImpl::DivergenceAnalysisImpl( const Function &F, const Loop *RegionLoop, const DominatorTree &DT, const LoopInfo &LI, SyncDependenceAnalysis &SDA, bool IsLCSSAForm) @@ -407,3 +410,5 @@ } return PreservedAnalyses::all(); } + +#pragma clang diagnostic pop diff --git a/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp b/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp --- a/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp +++ b/llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp @@ -91,6 +91,9 @@ cl::desc("turn the LegacyDivergenceAnalysis into " "a wrapper for GPUDivergenceAnalysis")); +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + namespace { class DivergencePropagator { @@ -433,3 +436,5 @@ LegacyDivergenceAnalysisImpl::print(dbgs(), F.getParent())); return PreservedAnalyses::all(); } + +#pragma clang diagnostic pop diff --git a/llvm/unittests/Analysis/DivergenceAnalysisTest.cpp b/llvm/unittests/Analysis/DivergenceAnalysisTest.cpp --- a/llvm/unittests/Analysis/DivergenceAnalysisTest.cpp +++ b/llvm/unittests/Analysis/DivergenceAnalysisTest.cpp @@ -26,6 +26,9 @@ #include "llvm/Support/SourceMgr.h" #include "gtest/gtest.h" +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + namespace llvm { namespace { @@ -428,3 +431,5 @@ } // end anonymous namespace } // end namespace llvm + +#pragma clang diagnostic pop