[llvm] [GlobalIsel] Add Gallery to MIR Patterns (PR #89974)

Thorsten Schütt via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 24 23:42:35 PDT 2024


https://github.com/tschuett updated https://github.com/llvm/llvm-project/pull/89974

>From ba56f97273a24e3ff2b6244bbf5badd892dbc2c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Sch=C3=BCtt?= <schuett at gmail.com>
Date: Wed, 24 Apr 2024 20:46:27 +0200
Subject: [PATCH 1/2] [GlobalIsel]  Add Gallery to MIr Patterns

---
 llvm/docs/GlobalISel/MIRPatterns.rst | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/llvm/docs/GlobalISel/MIRPatterns.rst b/llvm/docs/GlobalISel/MIRPatterns.rst
index 728e3247014452..97717005ebd619 100644
--- a/llvm/docs/GlobalISel/MIRPatterns.rst
+++ b/llvm/docs/GlobalISel/MIRPatterns.rst
@@ -514,3 +514,21 @@ of operands.
     (match (does_not_bind $tmp, $x)
            (G_MUL $dst, $x, $tmp)),
     (apply (COPY $dst, $x))>;
+
+
+ Gallery
+----------------
+
+We should use precise patterns that state our intentions. Please avoid
+using wip_match_opcode in patterns.
+
+.. code-block:: text
+  :caption: Example fold ext(trunc)
+
+(match (wip_match_opcode G_ZEXT):$root,
+
+(match (G_TRUNC $src, $x),
+       (G_ZEXT $root, $src),
+
+(match (G_TRUNC $src, $x, (MIFlags NoUWrap)),
+       (G_ZEXT $root, $src),

>From 0e72c2da2e86458d8432bb34a65a535c4cdb5d04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thorsten=20Sch=C3=BCtt?= <schuett at gmail.com>
Date: Thu, 25 Apr 2024 08:41:58 +0200
Subject: [PATCH 2/2] address review comments

---
 llvm/docs/GlobalISel/MIRPatterns.rst | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/llvm/docs/GlobalISel/MIRPatterns.rst b/llvm/docs/GlobalISel/MIRPatterns.rst
index 97717005ebd619..023cfc5fc0e279 100644
--- a/llvm/docs/GlobalISel/MIRPatterns.rst
+++ b/llvm/docs/GlobalISel/MIRPatterns.rst
@@ -523,12 +523,20 @@ We should use precise patterns that state our intentions. Please avoid
 using wip_match_opcode in patterns.
 
 .. code-block:: text
-  :caption: Example fold ext(trunc)
+  :caption: Example fold ext(trunc:nuw)
 
 (match (wip_match_opcode G_ZEXT):$root,
+   [{ return Helper.matchZextOfTrunc(${root}, ${matchinfo}); }]),
+   (apply [{ Helper.applyBuildFnMO(${root}, ${matchinfo}); }])>;
+
 
 (match (G_TRUNC $src, $x),
-       (G_ZEXT $root, $src),
+          (G_ZEXT $root, $src),
+   [{ return Helper.matchZextOfTrunc(${root}, ${matchinfo}); }]),
+   (apply [{ Helper.applyBuildFnMO(${root}, ${matchinfo}); }])>;
+
 
 (match (G_TRUNC $src, $x, (MIFlags NoUWrap)),
-       (G_ZEXT $root, $src),
+          (G_ZEXT $root, $src),
+   [{ return Helper.matchZextOfTrunc(${root}, ${matchinfo}); }]),
+   (apply [{ Helper.applyBuildFnMO(${root}, ${matchinfo}); }])>;



More information about the llvm-commits mailing list