[PATCH] D18541: [SystemZ] Save/restore r6 and r7 if function contains landing pad.

Marcin Koƛcielnicki via llvm-commits llvm-commits at lists.llvm.org
Sun Jun 26 15:42:50 PDT 2016


koriakin retitled this revision from "[CodeGen] Consider register modified if it's used to pass landing pad parameters." to "[SystemZ] Save/restore r6 and r7 if function contains landing pad.".
koriakin updated the summary for this revision.
koriakin updated this revision to Diff 61917.
koriakin added a comment.

Back to original version (SystemZ only).


Repository:
  rL LLVM

http://reviews.llvm.org/D18541

Files:
  lib/Target/SystemZ/SystemZFrameLowering.cpp
  test/DebugInfo/SystemZ/eh_frame_personality.ll

Index: test/DebugInfo/SystemZ/eh_frame_personality.ll
===================================================================
--- test/DebugInfo/SystemZ/eh_frame_personality.ll
+++ test/DebugInfo/SystemZ/eh_frame_personality.ll
@@ -20,7 +20,9 @@
 ; CHECK-FUNC: .cfi_startproc
 ; CHECK-FUNC: .cfi_personality 0, __gxx_personality_v0
 ; CHECK-FUNC: .cfi_lsda 0, .Lexception0
-; CHECK-FUNC: stmg	%r14, %r15, 112(%r15)
+; CHECK-FUNC: stmg	%r6, %r15, 48(%r15)
+; CHECK-FUNC: .cfi_offset %r6, -112
+; CHECK-FUNC: .cfi_offset %r7, -104
 ; CHECK-FUNC: .cfi_offset %r14, -48
 ; CHECK-FUNC: .cfi_offset %r15, -40
 ; CHECK-FUNC: aghi	%r15, -160
Index: lib/Target/SystemZ/SystemZFrameLowering.cpp
===================================================================
--- lib/Target/SystemZ/SystemZFrameLowering.cpp
+++ lib/Target/SystemZ/SystemZFrameLowering.cpp
@@ -81,6 +81,12 @@
     for (unsigned I = MFI->getVarArgsFirstGPR(); I < SystemZ::NumArgGPRs; ++I)
       SavedRegs.set(SystemZ::ArgGPRs[I]);
 
+  // If there are any landing pads, entering them will modify r6/r7.
+  if (!MF.getMMI().getLandingPads().empty()) {
+    SavedRegs.set(SystemZ::R6D);
+    SavedRegs.set(SystemZ::R7D);
+  }
+
   // If the function requires a frame pointer, record that the hard
   // frame pointer will be clobbered.
   if (HasFP)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18541.61917.patch
Type: text/x-patch
Size: 1304 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160626/a4a6e734/attachment.bin>


More information about the llvm-commits mailing list