forked from OSchip/llvm-project
Now that `Metadata` is typeless, reflect that in the assembly. These
are the matching assembly changes for the metadata/value split in
r223802.
- Only use the `metadata` type when referencing metadata from a call
intrinsic -- i.e., only when it's used as a `Value`.
- Stop pretending that `ValueAsMetadata` is wrapped in an `MDNode`
when referencing it from call intrinsics.
So, assembly like this:
define @foo(i32 %v) {
call void @llvm.foo(metadata !{i32 %v}, metadata !0)
call void @llvm.foo(metadata !{i32 7}, metadata !0)
call void @llvm.foo(metadata !1, metadata !0)
call void @llvm.foo(metadata !3, metadata !0)
call void @llvm.foo(metadata !{metadata !3}, metadata !0)
ret void, !bar !2
}
!0 = metadata !{metadata !2}
!1 = metadata !{i32* @global}
!2 = metadata !{metadata !3}
!3 = metadata !{}
turns into this:
define @foo(i32 %v) {
call void @llvm.foo(metadata i32 %v, metadata !0)
call void @llvm.foo(metadata i32 7, metadata !0)
call void @llvm.foo(metadata i32* @global, metadata !0)
call void @llvm.foo(metadata !3, metadata !0)
call void @llvm.foo(metadata !{!3}, metadata !0)
ret void, !bar !2
}
!0 = !{!2}
!1 = !{i32* @global}
!2 = !{!3}
!3 = !{}
I wrote an upgrade script that handled almost all of the tests in llvm
and many of the tests in cfe (even handling many `CHECK` lines). I've
attached it (or will attach it in a moment if you're speedy) to PR21532
to help everyone update their out-of-tree testcases.
This is part of PR21532.
llvm-svn: 224257
|
||
|---|---|---|
| .. | ||
| addsub.ll | ||
| align.ll | ||
| barriercall.ll | ||
| call.ll | ||
| cast.ll | ||
| cmp_sel.ll | ||
| compare-reduce.ll | ||
| consecutive-access.ll | ||
| continue_vectorizing.ll | ||
| crash_7zip.ll | ||
| crash_binaryop.ll | ||
| crash_bullet.ll | ||
| crash_bullet3.ll | ||
| crash_dequeue.ll | ||
| crash_flop7.ll | ||
| crash_gep.ll | ||
| crash_lencod.ll | ||
| crash_mandeltext.ll | ||
| crash_netbsd_decompress.ll | ||
| crash_scheduling.ll | ||
| crash_sim4b1.ll | ||
| crash_smallpt.ll | ||
| crash_vectorizeTree.ll | ||
| cross_block_slp.ll | ||
| cse.ll | ||
| cycle_dup.ll | ||
| debug_info.ll | ||
| diamond.ll | ||
| external_user.ll | ||
| extract.ll | ||
| extract_in_tree_user.ll | ||
| extractcost.ll | ||
| flag.ll | ||
| gep.ll | ||
| hoist.ll | ||
| horizontal.ll | ||
| implicitfloat.ll | ||
| in-tree-user.ll | ||
| insert-element-build-vector.ll | ||
| intrinsic.ll | ||
| lit.local.cfg | ||
| long_chains.ll | ||
| loopinvariant.ll | ||
| metadata.ll | ||
| multi_block.ll | ||
| multi_user.ll | ||
| non-vectorizable-intrinsic.ll | ||
| odd_store.ll | ||
| operandorder.ll | ||
| opt.ll | ||
| ordering.ll | ||
| phi.ll | ||
| phi3.ll | ||
| phi_landingpad.ll | ||
| phi_overalignedtype.ll | ||
| powof2div.ll | ||
| pr16571.ll | ||
| pr16628.ll | ||
| pr16899.ll | ||
| pr18060.ll | ||
| pr19657.ll | ||
| propagate_ir_flags.ll | ||
| reduction.ll | ||
| reduction2.ll | ||
| return.ll | ||
| rgb_phi.ll | ||
| saxpy.ll | ||
| scheduling.ll | ||
| simple-loop.ll | ||
| simplebb.ll | ||
| tiny-tree.ll | ||
| unreachable.ll | ||
| value-bug.ll | ||
| vector.ll | ||