Skip to content

Commit bb5b4b0

Browse files
address review
1 parent 138384a commit bb5b4b0

File tree

1 file changed

+5
-14
lines changed

1 file changed

+5
-14
lines changed

llvm/lib/Target/AMDGPU/AMDGPUUniformIntrinsicCombine.cpp

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,10 @@ using namespace llvm;
4141
using namespace llvm::AMDGPU;
4242
using namespace llvm::PatternMatch;
4343

44-
/// Tracks uniformity of newly created instructions.
45-
using UniformityTracker = ValueMap<const Value *, bool>;
46-
4744
/// Wrapper for querying uniformity info that first checks new instructions.
48-
static bool isDivergentUseWithNew(const Use &U, const UniformityInfo &UI,
49-
const UniformityTracker &Tracker) {
45+
static bool
46+
isDivergentUseWithNew(const Use &U, const UniformityInfo &UI,
47+
const ValueMap<const Value *, bool> &Tracker) {
5048
Value *V = U.get();
5149
if (auto It = Tracker.find(V); It != Tracker.end())
5250
return !It->second; // divergent if marked false
@@ -56,7 +54,7 @@ static bool isDivergentUseWithNew(const Use &U, const UniformityInfo &UI,
5654
/// Optimizes uniform intrinsics.
5755
static bool optimizeUniformIntrinsic(IntrinsicInst &II,
5856
const UniformityInfo &UI,
59-
UniformityTracker &Tracker) {
57+
ValueMap<const Value *, bool> &Tracker) {
6058
llvm::Intrinsic::ID IID = II.getIntrinsicID();
6159

6260
switch (IID) {
@@ -77,10 +75,6 @@ static bool optimizeUniformIntrinsic(IntrinsicInst &II,
7775
return false;
7876
LLVM_DEBUG(dbgs() << "Found uniform ballot intrinsic: " << II << '\n');
7977

80-
// If there are no ICmp users, return early.
81-
if (none_of(II.users(), [](User *U) { return isa<ICmpInst>(U); }))
82-
return false;
83-
8478
bool Changed = false;
8579
for (User *U : make_early_inc_range(II.users())) {
8680
if (auto *ICmp = dyn_cast<ICmpInst>(U)) {
@@ -122,7 +116,7 @@ static bool optimizeUniformIntrinsic(IntrinsicInst &II,
122116
/// Iterate over intrinsics in the module to optimise.
123117
static bool runUniformIntrinsicCombine(Module &M, ModuleAnalysisManager &AM) {
124118
bool IsChanged = false;
125-
UniformityTracker Tracker;
119+
ValueMap<const Value *, bool> Tracker;
126120

127121
FunctionAnalysisManager &FAM =
128122
AM.getResult<FunctionAnalysisManagerModuleProxy>(M).getManager();
@@ -140,9 +134,6 @@ static bool runUniformIntrinsicCombine(Module &M, ModuleAnalysisManager &AM) {
140134
for (User *U : F.users()) {
141135
auto *II = cast<IntrinsicInst>(U);
142136
Function *ParentF = II->getFunction();
143-
if (ParentF->isDeclaration())
144-
continue;
145-
146137
const auto &UI = FAM.getResult<UniformityInfoAnalysis>(*ParentF);
147138
IsChanged |= optimizeUniformIntrinsic(*II, UI, Tracker);
148139
}

0 commit comments

Comments
 (0)