[PATCH] D15857: [InstCombine] Defend against worst-case exponential execution time

David Majnemer via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 4 09:57:17 PST 2016


majnemer added a subscriber: majnemer.

================
Comment at: lib/Transforms/InstCombine/InstCombineAndOrXor.cpp:1775-1777
@@ -1756,3 +1774,5 @@
   SmallPtrSet<Value*, 2> OrValues;
-  if (CollectBitParts(&I, 0, BitMask, BitValues, BitProvenance, OrValues))
+  unsigned NumOrsRemaining = BitMask.getBitWidth();
+  if (CollectBitParts(&I, 0, BitMask, BitValues, BitProvenance, OrValues,
+                      NumOrsRemaining))
     return nullptr;
----------------
This seems a bit much if you have i128.  What is NumOrsRemaining typically when this optimization kicks in?


Repository:
  rL LLVM

http://reviews.llvm.org/D15857





More information about the llvm-commits mailing list