brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · f72a20f Raw
35 lines · plain
1; RUN: opt < %s -passes=pgo-instr-gen -enable-vtable-value-profiling -S 2>&1 | FileCheck %s2 3; Test that unsupported warning is emitted for non-ELF object files.4target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"5target triple = "arm64-apple-macosx14.0.0"6 7; CHECK: warning: {{.*}} VTable value profiling is presently not supported for non-ELF object formats8 9@_ZTV4Base = constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr null, ptr @_ZN4Base4funcEi] }, !type !0, !type !110@_ZTV7Derived = constant { [3 x ptr] } { [3 x ptr] [ptr null, ptr null, ptr @_ZN7Derived4funcEi] }, !type !0, !type !1, !type !2, !type !311 12@llvm.compiler.used = appending global [2 x ptr] [ptr @_ZTV4Base, ptr @_ZTV7Derived], section "llvm.metadata"13 14define i32 @_Z4funci(i32 %a) {15entry:16  %call = call ptr @_Z10createTypev()17  %vtable = load ptr, ptr %call18  %0 = call i1 @llvm.public.type.test(ptr %vtable, metadata !"_ZTS7Derived")19  call void @llvm.assume(i1 %0)20  %1 = load ptr, ptr %vtable21  %call1 = call i32 %1(ptr  %call, i32 %a)22  ret i32 %call123}24 25declare ptr @_Z10createTypev() 26declare i1 @llvm.public.type.test(ptr, metadata)27declare void @llvm.assume(i1)28declare i32 @_ZN4Base4funcEi(ptr, i32)29declare i32 @_ZN7Derived4funcEi(ptr , i32)30 31!0 = !{i64 16, !"_ZTS4Base"}32!1 = !{i64 16, !"_ZTSM4BaseFiiE.virtual"}33!2 = !{i64 16, !"_ZTS7Derived"}34!3 = !{i64 16, !"_ZTSM7DerivedFiiE.virtual"}35