[DAG] Do not call computeKnownBits from isKnownToBeAPowerOfTwo
authorJay Foad <jay.foad@amd.com>
Thu, 27 Apr 2023 08:33:24 +0000 (09:33 +0100)
committerJay Foad <jay.foad@amd.com>
Thu, 27 Apr 2023 10:05:56 +0000 (11:05 +0100)
The only way known bits could help identify a known power of two is if
it knows exactly which power of two it is, i.e. if it is a known
constant. But in that case the value should have been simplified to a
constant already. So save some compile time by not calling
computeKnownBits.

Differential Revision: https://reviews.llvm.org/D149325

llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index bdbd2f8..3fff6e2 100644 (file)
@@ -4022,10 +4022,7 @@ bool SelectionDAG::isKnownToBeAPowerOfTwo(SDValue Val) const {
 
   // More could be done here, though the above checks are enough
   // to handle some common cases.
-
-  // Fall back to computeKnownBits to catch other known cases.
-  KnownBits Known = computeKnownBits(Val);
-  return (Known.countMaxPopulation() == 1) && (Known.countMinPopulation() == 1);
+  return false;
 }
 
 unsigned SelectionDAG::ComputeNumSignBits(SDValue Op, unsigned Depth) const {