[llvm] [ValueTracking] Filter out non-interesting conditions (PR #118493)

Yingwei Zheng via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 12 04:14:55 PST 2025


================
@@ -18,18 +18,34 @@
 #define LLVM_ANALYSIS_DOMCONDITIONCACHE_H
 
 #include "llvm/ADT/ArrayRef.h"
+#include "llvm/ADT/BitmaskEnum.h"
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/ADT/SmallVector.h"
+#include <cstdint>
 
 namespace llvm {
 
 class Value;
 class BranchInst;
 
+enum class DomConditionFlag : uint8_t {
+  None = 0,
+  KnownBits = 1 << 0,
+  KnownFPClass = 1 << 1,
+  PowerOfTwo = 1 << 2,
+  ICmp = 1 << 3,
+};
+
+LLVM_DECLARE_ENUM_AS_BITMASK(
+    DomConditionFlag,
+    /*LargestValue=*/static_cast<uint8_t>(DomConditionFlag::ICmp));
+
 class DomConditionCache {
 private:
   /// A map of values about which a branch might be providing information.
-  using AffectedValuesMap = DenseMap<Value *, SmallVector<BranchInst *, 1>>;
+  using AffectedValuesMap =
----------------
dtcxzyw wrote:

Fixed: https://llvm-compile-time-tracker.com/compare.php?from=219b23972d310829d868695bdd6cfc130c8e83a3&to=944a88971dd80d4993534f4b9d19a783d5e7c155&stat=instructions:u

https://github.com/llvm/llvm-project/pull/118493


More information about the llvm-commits mailing list