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
|
||
|---|---|---|
| .. | ||
| 2008-11-17-Shl64.ll | ||
| 2009-01-08-Crash.ll | ||
| 2009-01-14-Remat-Crash.ll | ||
| 2009-03-27-v2f64-param.ll | ||
| 2009-07-15-store192.ll | ||
| 2010-02-25-LSR-Crash.ll | ||
| 2011-01-31-DAGCombineBug.ll | ||
| 2011-08-01-DynamicAllocBug.ll | ||
| DbgValueOtherTargets.test | ||
| addsub64.ll | ||
| aliases.ll | ||
| align.ll | ||
| alignment.ll | ||
| ashr.ll | ||
| atomic.ll | ||
| basictest.ll | ||
| bigstructret.ll | ||
| byVal.ll | ||
| call.ll | ||
| codemodel.ll | ||
| constants.ll | ||
| dwarf_debug.ll | ||
| epilogue_prologue.ll | ||
| events.ll | ||
| exception.ll | ||
| float-intrinsics.ll | ||
| fneg.ll | ||
| getid.ll | ||
| globals.ll | ||
| indirectbr.ll | ||
| inline-asm.ll | ||
| ladd_lsub_combine.ll | ||
| licm-ldwcp.ll | ||
| linkage.ll | ||
| lit.local.cfg | ||
| llvm-intrinsics.ll | ||
| load.ll | ||
| memcpy.ll | ||
| misc-intrinsics.ll | ||
| mkmsk.ll | ||
| mul64.ll | ||
| offset_folding.ll | ||
| private.ll | ||
| ps-intrinsics.ll | ||
| resources.ll | ||
| resources_combine.ll | ||
| scavenging.ll | ||
| sext.ll | ||
| shedulingPreference.ll | ||
| sr-intrinsics.ll | ||
| store.ll | ||
| switch.ll | ||
| switch_long.ll | ||
| threads.ll | ||
| tls.ll | ||
| trampoline.ll | ||
| trap.ll | ||
| unaligned_load.ll | ||
| unaligned_store.ll | ||
| unaligned_store_combine.ll | ||
| varargs.ll | ||
| zext.ll | ||
| zextfree.ll | ||