[llvm] [SystemZ] Add serialization strings for some MO target flags. (PR #203053)

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 11 04:53:44 PDT 2026


https://github.com/JonPsson1 updated https://github.com/llvm/llvm-project/pull/203053

>From d4da7806c8064ddba360c19ce93e95d10f306850 Mon Sep 17 00:00:00 2001
From: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: Wed, 10 Jun 2026 18:32:32 +0200
Subject: [PATCH 1/2] [SystemZ] Add serialization strings for some MO target
 flags.

---
 llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp |  3 +++
 llvm/test/CodeGen/SystemZ/target-flags.ll    | 10 ++++++++++
 2 files changed, 13 insertions(+)
 create mode 100644 llvm/test/CodeGen/SystemZ/target-flags.ll

diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
index 85268e1c549a4..f3a570d7fe0a4 100644
--- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
@@ -2426,6 +2426,9 @@ SystemZInstrInfo::getSerializableDirectMachineOperandTargetFlags() const {
   using namespace SystemZII;
 
   static const std::pair<unsigned, const char *> TargetFlags[] = {
+      {MO_SYMBOL_MODIFIER, "systemz-symbol-modifier"},
+      {MO_GOT, "systemz-got"},
+      {MO_INDNTPOFF, "systemz-indntpoff"},
       {MO_ADA_DATA_SYMBOL_ADDR, "systemz-ada-datasymboladdr"},
       {MO_ADA_INDIRECT_FUNC_DESC, "systemz-ada-indirectfuncdesc"},
       {MO_ADA_DIRECT_FUNC_DESC, "systemz-ada-directfuncdesc"}};
diff --git a/llvm/test/CodeGen/SystemZ/target-flags.ll b/llvm/test/CodeGen/SystemZ/target-flags.ll
new file mode 100644
index 0000000000000..5bb315f92e0aa
--- /dev/null
+++ b/llvm/test/CodeGen/SystemZ/target-flags.ll
@@ -0,0 +1,10 @@
+; RUN: llc -mtriple=s390x-linux-gnu -stop-after=systemz-isel --simplify-mir < %s | FileCheck %s
+
+ at G = external global i64
+
+define i64 @fun() {
+entry:
+; CHECK:    %{{.*}}:addr64bit = LGRL target-flags(systemz-got) @G
+  %Res = load i64, ptr @G
+  ret i64 %Res
+}

>From 6ec345231c5bb580ce081acc0df8a850ab225404 Mon Sep 17 00:00:00 2001
From: Jonas Paulsson <paulson1 at linux.ibm.com>
Date: Thu, 11 Jun 2026 13:52:56 +0200
Subject: [PATCH 2/2] updated per review.

---
 llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp |  1 -
 llvm/test/CodeGen/SystemZ/target-flags.ll    | 10 +++++++---
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
index f3a570d7fe0a4..f3327c5ace475 100644
--- a/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
+++ b/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp
@@ -2426,7 +2426,6 @@ SystemZInstrInfo::getSerializableDirectMachineOperandTargetFlags() const {
   using namespace SystemZII;
 
   static const std::pair<unsigned, const char *> TargetFlags[] = {
-      {MO_SYMBOL_MODIFIER, "systemz-symbol-modifier"},
       {MO_GOT, "systemz-got"},
       {MO_INDNTPOFF, "systemz-indntpoff"},
       {MO_ADA_DATA_SYMBOL_ADDR, "systemz-ada-datasymboladdr"},
diff --git a/llvm/test/CodeGen/SystemZ/target-flags.ll b/llvm/test/CodeGen/SystemZ/target-flags.ll
index 5bb315f92e0aa..e25c8972fb263 100644
--- a/llvm/test/CodeGen/SystemZ/target-flags.ll
+++ b/llvm/test/CodeGen/SystemZ/target-flags.ll
@@ -1,10 +1,14 @@
 ; RUN: llc -mtriple=s390x-linux-gnu -stop-after=systemz-isel --simplify-mir < %s | FileCheck %s
 
 @G = external global i64
-
-define i64 @fun() {
-entry:
+define i64 @fun0() {
 ; CHECK:    %{{.*}}:addr64bit = LGRL target-flags(systemz-got) @G
   %Res = load i64, ptr @G
   ret i64 %Res
 }
+
+ at x = thread_local(initialexec) global i32 0
+define ptr at fun1() {
+; CHECK:    %{{.*}}:addr64bit = LARL target-flags(systemz-indntpoff) @x
+  ret ptr at x
+}



More information about the llvm-commits mailing list