[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / Verifier / memprof-metadata-bad.ll
blob83a10764d18088a8ed3d134534de2b14babefa69
1 ; Test that incorrect memprof and callsite metadata fail verification.
2 ; RUN: not llvm-as -disable-output < %s 2>&1 | FileCheck %s
4 define ptr @test1() {
5 entry:
6   %call1 = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !0
7   %call2 = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !1
8   %call3 = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !3
9   %call4 = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !5
10   %call5 = call noalias dereferenceable_or_null(40) ptr @malloc(i64 noundef 40), !memprof !7, !callsite !9
11   ret ptr %call5
14 define ptr @test2() {
15 entry:
16   %call = call noundef ptr @test1(), !callsite !10
17   ret ptr %call
20 define ptr @test3() {
21 entry:
22   %call = call noundef ptr @test2(), !callsite !11
23   ret ptr %call
26 define void @wronginsttype() {
27   %1 = add i32 0, 1, !memprof !0, !callsite !9
28   ret void
31 declare dso_local noalias noundef ptr @malloc(i64 noundef)
33 ; CHECK: !memprof annotations should have at least 1 metadata operand (MemInfoBlock)
34 !0 = !{}
35 !1 = !{!2}
36 ; CHECK: !memprof MemInfoBlock first operand should not be null
37 !2 = !{null, !"cold"}
38 !3 = !{!4}
39 ; CHECK: !memprof MemInfoBlock first operand should be an MDNode
40 !4 = !{i64 0, !"cold"}
41 !5 = !{!6}
42 ; CHECK: Each !memprof MemInfoBlock should have at least 2 operands
43 !6 = !{i64 0}
44 !7 = !{!8}
45 ; CHECK: call stack metadata should have at least 1 operand
46 ; CHECK: Not all !memprof MemInfoBlock operands 1 to N are MDString
47 !8 = !{!0, !"default", i64 0}
48 !9 = !{i64 123}
49 ; CHECK: call stack metadata operand should be constant integer
50 !10 = !{!"wrongtype"}
51 !11 = !{i64 789, i64 678}
53 ; Errors from annotating incorrect instruction type in @wronginsttype.
54 ; CHECK: !memprof metadata should only exist on calls
55 ; CHECK: !callsite metadata should only exist on calls