-
Notifications
You must be signed in to change notification settings - Fork 12.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[EntryExitInstrumenter] Move passes out of clang into LLVM default pi…
…pelines (#92171) Move EntryExitInstrumenter(PostInlining=true) to as late as possible and EntryExitInstrumenter(PostInlining=false) to an early pre-inlining stage (but skip for ThinLTO post-link). This should fix the issues reported in rust-lang/rust#92109 and #52853. These are caused by https://reviews.llvm.org/D97608.
- Loading branch information
Showing
36 changed files
with
268 additions
and
162 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,20 @@ | ||
// REQUIRES: x86-registered-target | ||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -finstrument-functions -O0 -o - -emit-llvm %s | FileCheck %s | ||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -finstrument-functions -O2 -o - -emit-llvm %s | FileCheck %s | ||
// RUN: %clang_cc1 -triple x86_64-unknown-unknown -finstrument-functions-after-inlining -O2 -o - -emit-llvm %s | FileCheck -check-prefix=NOINLINE %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-unknown-unknown -finstrument-functions -O0 -o - -emit-llvm %s | FileCheck %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-unknown-unknown -finstrument-functions -O2 -o - -emit-llvm %s | FileCheck %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-unknown-unknown -finstrument-functions-after-inlining -O2 -o - -emit-llvm %s | FileCheck -check-prefix=NOINLINE %s | ||
|
||
__attribute__((always_inline)) int leaf(int x) { | ||
return x; | ||
// CHECK-LABEL: define {{.*}} @leaf | ||
// CHECK: call void @__cyg_profile_func_enter | ||
// CHECK-NOT: cyg_profile | ||
// CHECK: call void @__cyg_profile_func_exit | ||
// CHECK-NOT: cyg_profile | ||
// CHECK: ret | ||
// CHECK-LABEL: define {{.*}} @leaf(i32 noundef %x) #0 { | ||
} | ||
|
||
int root(int x) { | ||
return leaf(x); | ||
// CHECK-LABEL: define {{.*}} @root | ||
// CHECK: call void @__cyg_profile_func_enter | ||
// CHECK-NOT: cyg_profile | ||
|
||
// Inlined from leaf(): | ||
// CHECK: call void @__cyg_profile_func_enter | ||
// CHECK-NOT: cyg_profile | ||
// CHECK: call void @__cyg_profile_func_exit | ||
// CHECK-NOT: cyg_profile | ||
|
||
// CHECK: call void @__cyg_profile_func_exit | ||
// CHECK: ret | ||
|
||
// NOINLINE-LABEL: define {{.*}} @root | ||
// NOINLINE: call void @__cyg_profile_func_enter | ||
// NOINLINE-NOT: cyg_profile | ||
// NOINLINE: call void @__cyg_profile_func_exit | ||
// NOINLINE-NOT: cyg_profile | ||
// NOINLINE: ret | ||
// CHECK-LABEL: define {{.*}} @root(i32 noundef %x) #1 { | ||
// NOINLINE-LABEL: define {{.*}} @root(i32 noundef %x) #1 { | ||
} | ||
|
||
// CHECK: attributes #0 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter" "instrument-function-exit"="__cyg_profile_func_exit" | ||
// CHECK: attributes #1 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter" "instrument-function-exit"="__cyg_profile_func_exit" | ||
// NOINLINE: attributes #0 = { {{.*}}"instrument-function-entry-inlined"="__cyg_profile_func_enter" "instrument-function-exit-inlined"="__cyg_profile_func_exit" | ||
// NOINLINE: attributes #1 = { {{.*}}"instrument-function-entry-inlined"="__cyg_profile_func_enter" "instrument-function-exit-inlined"="__cyg_profile_func_exit" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,30 @@ | ||
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-functions | FileCheck %s | ||
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-function-entry-bare | FileCheck -check-prefix=BARE %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-functions | FileCheck -check-prefix=PREINLINE %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -triple x86_64-apple-darwin10 -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-function-entry-bare | FileCheck -check-prefix=BARE %s | ||
|
||
@interface ObjCClass | ||
@end | ||
|
||
@implementation ObjCClass | ||
|
||
// CHECK: @"\01+[ObjCClass initialize]" | ||
// CHECK: call void @__cyg_profile_func_enter | ||
// CHECK: call void @__cyg_profile_func_exit | ||
// BARE: @"\01+[ObjCClass initialize]" | ||
// BARE: call void @__cyg_profile_func_enter | ||
// PREINLINE: @"\01+[ObjCClass initialize]"{{\(.*\)}} #0 | ||
// BARE: @"\01+[ObjCClass initialize]"{{\(.*\)}} #0 | ||
+ (void)initialize { | ||
} | ||
|
||
// CHECK: @"\01+[ObjCClass load]" | ||
// CHECK-NOT: call void @__cyg_profile_func_enter | ||
// BARE: @"\01+[ObjCClass load]" | ||
// BARE-NOT: call void @__cyg_profile_func_enter | ||
// PREINLINE: declare void @llvm.dbg.declare(metadata, metadata, metadata) #1 | ||
// BARE: @"\01+[ObjCClass load]"{{\(.*\)}} #2 | ||
+ (void)load __attribute__((no_instrument_function)) { | ||
} | ||
|
||
// CHECK: @"\01-[ObjCClass dealloc]" | ||
// CHECK-NOT: call void @__cyg_profile_func_enter | ||
// BARE: @"\01-[ObjCClass dealloc]" | ||
// BARE-NOT: call void @__cyg_profile_func_enter | ||
// PREINLINE: @"\01-[ObjCClass dealloc]"{{\(.*\)}} #2 | ||
// BARE: @"\01-[ObjCClass dealloc]"{{\(.*\)}} #2 | ||
- (void)dealloc __attribute__((no_instrument_function)) { | ||
} | ||
|
||
// CHECK: declare void @__cyg_profile_func_enter(ptr, ptr) | ||
// CHECK: declare void @__cyg_profile_func_exit(ptr, ptr) | ||
// BARE: declare void @__cyg_profile_func_enter_bare | ||
// PREINLINE: attributes #0 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter" | ||
// PREINLINE-NOT: attributes #0 = { {{.*}}"instrument-function-entry"="__cyg_profile_func_enter_bare" | ||
// PREINLINE-NOT: attributes #2 = { {{.*}}"__cyg_profile_func_enter" | ||
// BARE: attributes #0 = { {{.*}}"instrument-function-entry-inlined"="__cyg_profile_func_enter_bare" | ||
// BARE-NOT: attributes #0 = { {{.*}}"__cyg_profile_func_enter" | ||
// BARE-NOT: attributes #2 = { {{.*}}"__cyg_profile_func_enter_bare" | ||
@end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,25 +1,13 @@ | ||
// RUN: %clang_cc1 -pg -triple powerpc-ibm-aix7.2.0.0 -emit-llvm %s -o - | FileCheck %s | ||
// RUN: %clang_cc1 -pg -triple powerpc64-ibm-aix7.2.0.0 -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK64 | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc-ibm-aix7.2.0.0 -emit-llvm %s -o - | FileCheck %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc64-ibm-aix7.2.0.0 -emit-llvm %s -o - | FileCheck %s | ||
|
||
void foo() { | ||
// CHECK: define void @foo() #0 { | ||
} | ||
|
||
void bar() { | ||
// CHECK: define void @bar() #0 { | ||
foo(); | ||
} | ||
// CHECK: @[[GLOB0:[0-9]+]] = internal global i32 0 | ||
// CHECK: @[[GLOB1:[0-9]+]] = internal global i32 0 | ||
// CHECK64: @[[GLOB0:[0-9]+]] = internal global i64 0 | ||
// CHECK64: @[[GLOB1:[0-9]+]] = internal global i64 0 | ||
// CHECK-LABEL: @foo( | ||
// CHECK-NEXT: entry: | ||
// CHECK-NEXT: call void @__mcount(ptr @[[GLOB0]]) | ||
// CHECK64-LABEL: @foo( | ||
// CHECK64-NEXT: entry: | ||
// CHECK64-NEXT: call void @__mcount(ptr @[[GLOB0]]) | ||
// CHECK-LABEL: @bar( | ||
// CHECK-NEXT: entry: | ||
// CHECK-NEXT: call void @__mcount(ptr @[[GLOB1]]) | ||
// CHECK64-LABEL: @bar( | ||
// CHECK64-NEXT: entry: | ||
// CHECK64-NEXT: call void @__mcount(ptr @[[GLOB1]]) | ||
|
||
// CHECK: attributes #0 = { {{.*}}"instrument-function-entry-inlined"="__mcount" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,58 @@ | ||
// RUN: %clang_cc1 -pg -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s | ||
// RUN: %clang_cc1 -pg -triple i386-unknown-unknown -emit-llvm -O2 -o - %s | FileCheck %s | ||
// RUN: %clang_cc1 -pg -triple powerpc-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple powerpc64-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple powerpc64le-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple i386-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple x86_64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple arm-netbsd-eabi -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple aarch64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple loongarch32 -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple loongarch64 -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple mips-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple mips-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple mipsel-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple mips64-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple mips64el-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv32-elf -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv64-elf -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv32-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv64-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv64-freebsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv64-freebsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple riscv64-openbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple powerpc-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple powerpc64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple powerpc64le-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple sparc-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -pg -triple sparc64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s -check-prefix=NO-MCOUNT | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple i386-unknown-unknown -emit-llvm -o - %s | FileCheck %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple i386-unknown-unknown -emit-llvm -O2 -o - %s | FileCheck %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc64-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc64le-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple i386-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple x86_64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple arm-netbsd-eabi -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple aarch64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple loongarch32 -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple loongarch64 -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple mips-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple mips-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple mipsel-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple mips64-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple mips64el-unknown-gnu-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv32-elf -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv64-elf -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv32-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv64-linux -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv64-freebsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv64-freebsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple riscv64-openbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple powerpc64le-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple sparc-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -pg -triple sparc64-netbsd -emit-llvm -o - %s | FileCheck -check-prefixes=CHECK-DOUBLE-PREFIXED,NO-MCOUNT1 %s | ||
// RUN: %clang_cc1 -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=NO-MCOUNT | ||
|
||
int bar(void) { | ||
// CHECK: define dso_local i32 @bar() #0 { | ||
return 0; | ||
} | ||
|
||
int foo(void) { | ||
// CHECK: define dso_local i32 @foo() #0 { | ||
return bar(); | ||
} | ||
|
||
int __attribute__((no_instrument_function)) no_instrument(void) { | ||
// CHECK: define dso_local i32 @no_instrument() #1 { | ||
return foo(); | ||
} | ||
|
||
int main(void) { | ||
// CHECK: define dso_local i32 @main() #0 { | ||
return no_instrument(); | ||
} | ||
|
||
// CHECK: call void @mcount | ||
// CHECK: call void @mcount | ||
// CHECK: call void @mcount | ||
// CHECK-NOT: call void @mcount | ||
// CHECK-PREFIXED: call void @_mcount | ||
// CHECK-PREFIXED: call void @_mcount | ||
// CHECK-PREFIXED: call void @_mcount | ||
// CHECK-PREFIXED-NOT: call void @_mcount | ||
// CHECK-DOUBLE-PREFIXED: call void @__mcount | ||
// CHECK-DOUBLE-PREFIXED: call void @__mcount | ||
// CHECK-DOUBLE-PREFIXED: call void @__mcount | ||
// CHECK-DOUBLE-PREFIXED-NOT: call void @__mcount | ||
// NO-MCOUNT-NOT: call void @{{.*}}mcount | ||
// NO-MCOUNT1-NOT: call void @{{.*}}mcount | ||
// CHECK: attributes #0 = { {{.*}} "instrument-function-entry-inlined"="mcount" | ||
// CHECK-NOT: attributes #1 = { {{.*}}"mcount" | ||
// CHECK-PREFIXED: attributes #0 = { {{.*}} "instrument-function-entry-inlined"="_mcount" | ||
// CHECK-PREFIXED-NOT: attributes #1 = { {{.*}}"_mcount" | ||
// CHECK-DOUBLE-PREFIXED: attributes #0 = { {{.*}} "instrument-function-entry-inlined"="__mcount" | ||
// CHECK-DOUBLE-PREFIXED-NOT: attributes #1 = { {{.*}}"__mcount" | ||
// NO-MCOUNT-NOT: attributes{{.*}}mcount | ||
// NO-MCOUNT1-NOT: attributes{{.*}}mcount |
Oops, something went wrong.