[PATCH] [PATCH 1/2] Add a "probe-stack" attribute

John Kåre Alsaker john.mailinglists at gmail.com
Sun May 10 23:58:29 PDT 2015


Added the test


http://reviews.llvm.org/D9653

Files:
  lib/Transforms/IPO/Inliner.cpp
  test/Transforms/Inline/inline-probe-stack.ll

Index: lib/Transforms/IPO/Inliner.cpp
===================================================================
--- lib/Transforms/IPO/Inliner.cpp
+++ lib/Transforms/IPO/Inliner.cpp
@@ -132,6 +132,12 @@
 
   AdjustCallerSSPLevel(Caller, Callee);
 
+  // If the callee requires stack probes, we ensure that the caller will
+  // require those too
+  if (Callee->hasFnAttribute("probe-stack")) {
+    Caller->addFnAttr("probe-stack", "");
+  }
+
   // Look at all of the allocas that we inlined through this call site.  If we
   // have already inlined other allocas through other calls into this function,
   // then we know that they have disjoint lifetimes and that we can merge them.
Index: test/Transforms/Inline/inline-probe-stack.ll
===================================================================
--- /dev/null
+++ test/Transforms/Inline/inline-probe-stack.ll
@@ -0,0 +1,12 @@
+; RUN: opt %s -inline -S | FileCheck %s
+
+define internal void @inner() "probe-stack" {
+  ret void
+}
+
+define void @outer() {
+  call void @inner()
+  ret void
+}
+; CHECK: define void @outer() #0
+; CHECK: attributes #0 = { "probe-stack" }

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D9653.25446.patch
Type: text/x-patch
Size: 1126 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150511/3acf7346/attachment.bin>


More information about the llvm-commits mailing list