[PATCH] D88114: [clang]Test ensuring -fembed-bitcode passed to cc1 captures pre-opt bitcode.

Mircea Trofin via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 23 09:01:29 PDT 2020


mtrofin updated this revision to Diff 293762.
mtrofin added a comment.

newline at end of file


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D88114

Files:
  clang/test/Frontend/embed-bitcode-noopt.c
  clang/test/Frontend/embed-bitcode-noopt.ll


Index: clang/test/Frontend/embed-bitcode-noopt.ll
===================================================================
--- /dev/null
+++ clang/test/Frontend/embed-bitcode-noopt.ll
@@ -0,0 +1,30 @@
+; Ensure calling bypassing the driver with -fembed-bitcode embeds bitcode pre-
+; optimizations
+
+; RUN: %clang_cc1 -O2 -triple x86_64-unknown-linux-gnu -emit-obj %s -o %t.o -fembed-bitcode=all
+; RUN: llvm-objcopy --dump-section=.llvmbc=%t.bc %t.o /dev/null
+
+; Also check that the .llvmcmd section captures the optimization options.
+; RUN: llvm-dis %t.bc -o - | FileCheck %s --check-prefix=CHECK-BC
+; RUN: llvm-objcopy --dump-section=.llvmcmd=- %t.o /dev/null | FileCheck %s --check-prefix=CHECK-CMD
+
+; CHECK-BC-LABEL: define void @bar() #0 {
+; CHECK-BC-NEXT:  ret void  
+; CHECK-BC-NEXT: }
+; CHECK-BC-LABEL: define void @foo() {
+; CHECK-BC-NEXT: call void @bar()
+; CHECK-BC-NEXT: ret void
+; CHECK-BC-NEXT: }
+; CHECK-BC-LABEL: attributes #0 = { alwaysinline }
+; CHECK-CMD: -O2
+
+define void @bar() #0 {
+    ret void
+}
+
+define void @foo() {
+  call void @bar()
+  ret void
+}
+
+attributes #0 = { alwaysinline }
Index: clang/test/Frontend/embed-bitcode-noopt.c
===================================================================
--- /dev/null
+++ clang/test/Frontend/embed-bitcode-noopt.c
@@ -0,0 +1,30 @@
+// Ensure calling bypassing the driver with -fembed-bitcode embeds bitcode pre-
+// optimizations
+// REQUIRES: x86-registered-target
+// RUN: %clang_cc1 %s -O2 -emit-obj -triple=x86_64-unknown-linux-gnu -o %t.o -fembed-bitcode=all
+// RUN: llvm-objcopy --dump-section=.llvmbc=%t.bc %t.o /dev/null
+
+// Also check that the .llvmcmd section captures the optimization options.
+// RUN: llvm-dis %t.bc -o - | FileCheck %s --check-prefix=CHECK-BC
+// RUN: llvm-objcopy --dump-section=.llvmcmd=- %t.o /dev/null | FileCheck %s --check-prefix=CHECK-CMD
+
+// CHECK-BC-LABEL: define void @bar() #0 {
+// CHECK-BC-NEXT: entry:
+// CHECK-BC-NEXT: ret void
+// CHECK-BC-NEXT: }
+// CHECK-BC-LABEL: define void @foo() #1 {
+// CHECK-BC-NEXT: entry:
+// CHECK-BC-NEXT: call void @bar()
+// CHECK-BC-NEXT: ret void
+// CHECK-BC-NEXT: }
+// CHECK-BC-LABEL: attributes #0 = {{.*}} alwaysinline
+// CHECK-CMD: -O2
+
+__attribute__((always_inline)) void bar() {
+  return;
+}
+
+void foo() {
+  bar();
+  return;
+}


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D88114.293762.patch
Type: text/x-patch
Size: 2323 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20200923/655f45b5/attachment.bin>


More information about the cfe-commits mailing list