mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-04 06:09:05 +00:00
1ef70ff39b
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224257 91177308-0d34-0410-b5e6-96231b3b80d8 |
||
---|---|---|
.. | ||
alias.s | ||
align-nops.s | ||
bad-expr.s | ||
basic-coff-64.s | ||
basic-coff.s | ||
bigobj.py | ||
bss_section.ll | ||
bss.s | ||
comm-align.s | ||
comm.ll | ||
comm.s | ||
const-gv-with-rel-init.ll | ||
diff.s | ||
directive-section-characteristics.ll | ||
early-dce.s | ||
eh-frame.s | ||
feat00.s | ||
file.s | ||
global_ctors_dtors.ll | ||
initialised-data.ll | ||
invalid-def.s | ||
invalid-endef.s | ||
invalid-scl-range.s | ||
invalid-scl.s | ||
invalid-type-range.s | ||
invalid-type.s | ||
ir-to-imgrel.ll | ||
linker-options.ll | ||
linkonce-invalid.s | ||
linkonce.s | ||
lit.local.cfg | ||
lset0.s | ||
module-asm.ll | ||
offset.s | ||
rdata.ll | ||
relocation-imgrel.s | ||
secidx-diagnostic.s | ||
secidx.s | ||
secrel32.s | ||
secrel-variant.s | ||
section-comdat-conflict2.s | ||
section-comdat-conflict.s | ||
section-comdat.s | ||
section-invalid-flags.s | ||
section-name-encoding.s | ||
section-passthru-flags.s | ||
section.s | ||
seh-align1.s | ||
seh-align2.s | ||
seh-align3.s | ||
seh-linkonce.s | ||
seh-section.s | ||
seh-stackalloc-zero.s | ||
seh.s | ||
simple-fixups.s | ||
switch-relocations.ll | ||
symbol-alias.s | ||
symbol-fragment-offset-64.s | ||
symbol-fragment-offset.s | ||
symbol-mangling.ll | ||
timestamp.s | ||
tricky-names.ll | ||
weak-symbol.ll | ||
weak.s |