================
@@ -0,0 +1,60 @@
+;; Test if temporary labels are generated for each indirect callsite with a 
callee_type metadata.
+;; Test if the .callgraph section contains the numerical callee type id for 
each of the temporary 
+;; labels generated. 
+
+; RUN: llc -mtriple=x86_64-unknown-linux --call-graph-section -o - < %s | 
FileCheck %s
+
+declare !type !0 void @foo()
+
+declare !type !1 i32 @bar(i8 signext)
+
+declare !type !2 ptr @baz(ptr)
+
+; CHECK: ball:
+; CHECK-NEXT: .Lfunc_begin0:
+define void @ball() {
+entry:
+  %retval = alloca i32, align 4
+  %fp_foo = alloca ptr, align 8
+  %a = alloca i8, align 1
+  %fp_bar = alloca ptr, align 8
+  %fp_baz = alloca ptr, align 8
+  store i32 0, ptr %retval, align 4
+  store ptr @foo, ptr %fp_foo, align 8
+  %fp_foo_val = load ptr, ptr %fp_foo, align 8
+  ; CHECK: .Ltmp0:
+  call void (...) %fp_foo_val(), !callee_type !1
+  store ptr @bar, ptr %fp_bar, align 8
+  %fp_bar_val = load ptr, ptr %fp_bar, align 8
+  %a_val = load i8, ptr %a, align 1
+  ; CHECK: .Ltmp1:
+  %call_fp_bar = call i32 %fp_bar_val(i8 signext %a_val), !callee_type !3
+  store ptr @baz, ptr %fp_baz, align 8
+  %fp_baz_val = load ptr, ptr %fp_baz, align 8
+  ; CHECK: .Ltmp2:
+  %call_fp_baz = call ptr %fp_baz_val(ptr %a), !callee_type !5
+  call void @foo()
+  %a_val_2 = load i8, ptr %a, align 1
+  %call_bar = call i32 @bar(i8 signext %a_val_2)
+  %call_baz = call ptr @baz(ptr %a)
+  ret void
+}
----------------
Prabhuk wrote:

Done. Thank you.

https://github.com/llvm/llvm-project/pull/87576
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to