[PATCH] D90353: [ThinLTO] add test for nossp inlining

Nick Desaulniers via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 28 16:36:46 PDT 2020


nickdesaulniers created this revision.
nickdesaulniers added a reviewer: pcc.
Herald added subscribers: llvm-commits, steven_wu, hiraditya, inglorion.
Herald added a project: LLVM.
nickdesaulniers requested review of this revision.

Additional test for pr/47479.

Signed-off-by: Nick Desaulniers <ndesaulniers at google.com>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D90353

Files:
  llvm/test/ThinLTO/X86/Inputs/nossp.ll
  llvm/test/ThinLTO/X86/nossp.ll


Index: llvm/test/ThinLTO/X86/nossp.ll
===================================================================
--- /dev/null
+++ llvm/test/ThinLTO/X86/nossp.ll
@@ -0,0 +1,51 @@
+; RUN: opt -module-summary %s -o %t1.bc
+; RUN: opt -module-summary %p/Inputs/nossp.ll -o %t2.bc
+; RUN: llvm-lto2 run %t1.bc %t2.bc -o %t3.bc -save-temps \
+; RUN:   -r=%t1.bc,nossp_caller,px \
+; RUN:   -r=%t1.bc,ssp_caller,px \
+; RUN:   -r=%t1.bc,nossp_caller2,px \
+; RUN:   -r=%t1.bc,ssp_caller2,px \
+; RUN:   -r=%t1.bc,nossp_callee,x \
+; RUN:   -r=%t1.bc,ssp_callee,x \
+; RUN:   -r=%t2.bc,nossp_callee,px \
+; RUN:   -r=%t2.bc,ssp_callee,px \
+; RUN:   -r=%t2.bc,foo
+; RUN: llvm-dis %t3.bc.1.4.opt.bc -o - | FileCheck %s
+
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-pc-linux-gnu"
+
+declare void @nossp_callee() nossp
+declare void @ssp_callee() ssp
+
+; nossp caller should be able to inline nossp callee.
+define void @nossp_caller() nossp {
+; CHECK-LABEL: @nossp_caller
+; CHECK-NEXT: tail call void @foo
+  tail call void @nossp_callee()
+  ret void
+}
+
+; ssp caller should be able to inline ssp callee.
+define void @ssp_caller() ssp {
+; CHECK-LABEL: @ssp_caller
+; CHECK-NEXT: tail call void @foo
+  tail call void @ssp_callee()
+  ret void
+}
+
+; nossp caller should *NOT* be able to inline ssp callee.
+define void @nossp_caller2() nossp {
+; CHECK-LABEL: @nossp_caller2
+; CHECK-NEXT: tail call void @ssp_callee
+  tail call void @ssp_callee()
+  ret void
+}
+
+; ssp caller should *NOT* be able to inline nossp callee.
+define void @ssp_caller2() ssp {
+; CHECK-LABEL: @ssp_caller2
+; CHECK-NEXT: tail call void @nossp_callee
+  tail call void @nossp_callee()
+  ret void
+}
Index: llvm/test/ThinLTO/X86/Inputs/nossp.ll
===================================================================
--- /dev/null
+++ llvm/test/ThinLTO/X86/Inputs/nossp.ll
@@ -0,0 +1,14 @@
+target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
+target triple = "x86_64-pc-linux-gnu"
+
+declare void @foo()
+
+define void @nossp_callee() nossp {
+  call void @foo()
+  ret void
+}
+
+define void @ssp_callee() ssp {
+  call void @foo()
+  ret void
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D90353.301475.patch
Type: text/x-patch
Size: 2236 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201028/d8dcbb8b/attachment.bin>


More information about the llvm-commits mailing list