[PATCH] D46637: [TTI] Add uniform/non-uniform constant Pow2 detection to TargetTransformInfo::getInstructionThroughput
    Simon Pilgrim via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Mon May 21 08:44:54 PDT 2018
    
    
  
RKSimon added inline comments.
================
Comment at: lib/Analysis/TargetTransformInfo.cpp:760-772
+      if (auto *CI = dyn_cast<ConstantInt>(Splat))
+        if (CI->getValue().isPowerOf2())
+          OpProps = TargetTransformInfo::OP_PowerOf2;
+    } else if (auto *CDS = dyn_cast<ConstantDataSequential>(V)) {
+      OpProps = TargetTransformInfo::OP_PowerOf2;
+      for (unsigned i = 0, e = CDS->getNumElements(); i != e; ++i) {
+        if (auto *CI = dyn_cast<ConstantInt>(CDS->getElementAsConstant(i)))
----------------
ABataev wrote:
> This analysis should be guarded by the check of the `OVP` parameter if it is `nullptr` or not.
I tried that but it got rather messy. An alternative would be to make OVP a reference instead of a pointer, since its always used - what do you think?
Repository:
  rL LLVM
https://reviews.llvm.org/D46637
    
    
More information about the llvm-commits
mailing list