1; Test that well-formed memprof and callsite metadata pass verification. 2; RUN: llvm-as -disable-output < %s 2>&1 3 4define ptr @test1() { 5entry: 6 %call = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !0, !callsite !5 7 ret ptr %call 8} 9 10define ptr @test2() { 11entry: 12 %call = call noundef ptr @test1(), !callsite !6 13 ret ptr %call 14} 15 16define ptr @test3() { 17entry: 18 %call = call noundef ptr @test1(), !callsite !7 19 ret ptr %call 20} 21 22declare dso_local noalias noundef ptr @malloc(i64 noundef) 23 24!0 = !{!1, !3} 25; !memprof metadata should be able to support an arbitrary list of string tags. 26!1 = !{!2, !"default", !"tag2"} 27!2 = !{i64 123, i64 456} 28!3 = !{!4, !"cold", !"tag3", !"tag4"} 29!4 = !{i64 123, i64 789, i64 678} 30!5 = !{i64 123} 31!6 = !{i64 456} 32; Inlined callsites will have more than one call stack id. 33!7 = !{i64 789, i64 678} 34