[PATCH] D90065: [SystemZ] Define MaxInstLength to have the value of 6.

Jonas Paulsson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 24 00:21:14 PDT 2020


This revision was automatically updated to reflect the committed changes.
Closed by commit rG7c026a83ee90: [SystemZ] Define MaxInstLength to have the value of 6. (authored by jonpa).

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90065/new/

https://reviews.llvm.org/D90065

Files:
  llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
  llvm/test/CodeGen/SystemZ/Large/branch-range-13.py


Index: llvm/test/CodeGen/SystemZ/Large/branch-range-13.py
===================================================================
--- /dev/null
+++ llvm/test/CodeGen/SystemZ/Large/branch-range-13.py
@@ -0,0 +1,41 @@
+# Test that inline assembly get the right size value so that a branch across
+# a block containing them gets relaxed.
+
+# RUN: python %s | llc -mtriple=s390x-linux-gnu -mcpu=z196 -enable-post-misched=false \
+# RUN:    | FileCheck %s
+
+# Construct:
+#
+# entry:
+#   branch to block
+#
+# block:
+#   sequence of call asm
+#   unconditional branch to block
+#
+# exit:
+#   ret void
+
+# CHECK-LABEL: f1
+# CHECK: jg
+# CHECK-NEXT: .Lfunc_end0:
+
+from __future__ import print_function
+
+num = 11000
+
+print('define void @f1() {')
+print('entry:')
+print('  br label %block')
+print('')
+print('block:')
+
+for i in range(num):
+    print('  tail call i64 asm "lang\\09$0,$2,$1\\0A", "=d,=*Q,d,*Q"(i32* undef, i32 undef, i32* undef)')
+
+print('  br label %block')
+
+print('')
+print('exit:')
+print('  ret void')
+print('}')
Index: llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
===================================================================
--- llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
+++ llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmInfo.cpp
@@ -17,6 +17,8 @@
   CalleeSaveStackSlotSize = 8;
   IsLittleEndian = false;
 
+  MaxInstLength = 6;
+
   CommentString = "#";
   ZeroDirective = "\t.space\t";
   Data64bitsDirective = "\t.quad\t";


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90065.300462.patch
Type: text/x-patch
Size: 1499 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201024/91f41035/attachment.bin>


More information about the llvm-commits mailing list