[llvm] [GlobalISelMatchTable] Don't hoist C++ predicates over operand recorders (PR #159329)

Fabian Ritter via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 17 04:58:36 PDT 2025


================
@@ -486,12 +494,25 @@ std::unique_ptr<PredicateMatcher> GroupMatcher::popFirstCondition() {
   return P;
 }
 
+/// Check if the Condition, which is a predicate of M, cannot be hoisted outside
+/// of (i.e., checked before) M.
+static bool cannotHoistCondition(const PredicateMatcher &Condition,
+                                 const Matcher &M) {
+  // The condition can't be hoisted if it is a C++ predicate that refers to
+  // operands and the operands are registered within the matcher.
+
----------------
ritter-x2a wrote:

Done.

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


More information about the llvm-commits mailing list