[PATCH] D62614: Fix for the OCL/LC to failure on some OCLPerf tests

Stanislav Mekhanoshin via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 29 11:52:17 PDT 2019

rampitec added inline comments.

Comment at: lib/Analysis/LegacyDivergenceAnalysis.cpp:112
   // users to Worklist.
-  void findUsersOutsideInfluenceRegion(
+  bool findUsersOutsideInfluenceRegion(
       Instruction &I, const DenseSet<BasicBlock *> &InfluenceRegion);
Describe the return value.

Comment at: lib/Analysis/LegacyDivergenceAnalysis.cpp:180
   //   i++;
   //   if (foo(i)) ... // uniform
   // } while (i < tid);
Given that pass only runs when TTI.hasBranchDivergence() this change seems reasonable to me. I do not really believe an index of a loop with the divergent condition is uniform. It is only uniform across the enabled lanes, but not across of the whole wave. Basically you make it divergent or uniform depending on uses, which makes it a semi-uniform value, more or less. I think this logic needs a better description though.



More information about the llvm-commits mailing list