[llvm] r373182 - [SystemZ] Add SystemZPostRewrite in addPostRegAlloc() instead at -O0.
Jonas Paulsson via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 30 00:29:54 PDT 2019
Author: jonpa
Date: Mon Sep 30 00:29:54 2019
New Revision: 373182
URL: http://llvm.org/viewvc/llvm-project?rev=373182&view=rev
Log:
[SystemZ] Add SystemZPostRewrite in addPostRegAlloc() instead at -O0.
SystemZPostRewrite needs to be run before (it may emit COPYs) the Post-RA
pseudo pass also at -O0, so it should be added in addPostRegAlloc().
Review: Ulrich Weigand
Added:
llvm/trunk/test/CodeGen/SystemZ/cond-move-09.mir
Modified:
llvm/trunk/lib/Target/SystemZ/SystemZTargetMachine.cpp
Modified: llvm/trunk/lib/Target/SystemZ/SystemZTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/SystemZ/SystemZTargetMachine.cpp?rev=373182&r1=373181&r2=373182&view=diff
==============================================================================
--- llvm/trunk/lib/Target/SystemZ/SystemZTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/SystemZ/SystemZTargetMachine.cpp Mon Sep 30 00:29:54 2019
@@ -184,6 +184,7 @@ public:
bool addInstSelector() override;
bool addILPOpts() override;
void addPostRewrite() override;
+ void addPostRegAlloc() override;
void addPreSched2() override;
void addPreEmitPass() override;
};
@@ -217,12 +218,14 @@ void SystemZPassConfig::addPostRewrite()
addPass(createSystemZPostRewritePass(getSystemZTargetMachine()));
}
-void SystemZPassConfig::addPreSched2() {
+void SystemZPassConfig::addPostRegAlloc() {
// PostRewrite needs to be run at -O0 also (in which case addPostRewrite()
// is not called).
if (getOptLevel() == CodeGenOpt::None)
addPass(createSystemZPostRewritePass(getSystemZTargetMachine()));
+}
+void SystemZPassConfig::addPreSched2() {
if (getOptLevel() != CodeGenOpt::None)
addPass(&IfConverterID);
}
Added: llvm/trunk/test/CodeGen/SystemZ/cond-move-09.mir
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/SystemZ/cond-move-09.mir?rev=373182&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/SystemZ/cond-move-09.mir (added)
+++ llvm/trunk/test/CodeGen/SystemZ/cond-move-09.mir Mon Sep 30 00:29:54 2019
@@ -0,0 +1,29 @@
+# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z14 -O0 -start-after=regallocfast %s \
+# RUN: -o - | FileCheck %s
+#
+# Test that LOCRMux expansion works at -O0.
+
+--- |
+ define internal i32 @fun(i16 %arg) { bb: ret i32 0 }
+...
+
+# CHECK-LABEL: fun
+# CHECK: risbhg %r13, %r13, 0, 159, 32
+
+---
+name: 'fun'
+alignment: 16
+tracksRegLiveness: true
+frameInfo:
+ maxAlignment: 8
+machineFunctionInfo: {}
+body: |
+ bb.0.bb:
+ renamable $r0d = IMPLICIT_DEF
+ CGHI killed renamable $r0d, 8, implicit-def $cc
+ renamable $r13l = LHIMux 0
+ renamable $r13h = LHIMux -1
+ renamable $r13h = LOCRMux renamable $r13h, killed renamable $r13l, 14, 10, implicit $cc
+ renamable $r2l = COPY killed renamable $r13h
+ Return implicit killed $r2l
+...
More information about the llvm-commits
mailing list