mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
9c5542c040
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 |
||
---|---|---|
.. | ||
2006-12-11-Cast-ConstExpr.ll | ||
2009-06-11-FirstClassAggregateConstant.ll | ||
aggregateInstructions.3.2.ll | ||
aggregateInstructions.3.2.ll.bc | ||
arm32_neon_vcnt_upgrade.ll | ||
atomic.ll | ||
attributes-3.3.ll | ||
attributes-3.3.ll.bc | ||
attributes.ll | ||
binaryFloatInstructions.3.2.ll | ||
binaryFloatInstructions.3.2.ll.bc | ||
binaryIntInstructions.3.2.ll | ||
binaryIntInstructions.3.2.ll.bc | ||
bitwiseInstructions.3.2.ll | ||
bitwiseInstructions.3.2.ll.bc | ||
blockaddress.ll | ||
calling-conventions.3.2.ll | ||
calling-conventions.3.2.ll.bc | ||
case-ranges-3.3.ll | ||
case-ranges-3.3.ll.bc | ||
cmpxchg-upgrade.ll | ||
cmpxchg-upgrade.ll.bc | ||
constantsTest.3.2.ll | ||
constantsTest.3.2.ll.bc | ||
conversionInstructions.3.2.ll | ||
conversionInstructions.3.2.ll.bc | ||
drop-debug-info.ll | ||
extractelement.ll | ||
flags.ll | ||
function-encoding-rel-operands.ll | ||
function-local-metadata.3.5.ll | ||
function-local-metadata.3.5.ll.bc | ||
global-variables.3.2.ll | ||
global-variables.3.2.ll.bc | ||
highLevelStructure.3.2.ll | ||
highLevelStructure.3.2.ll.bc | ||
inalloca.ll | ||
invalid.ll | ||
invalid.ll.bc | ||
linkage-types-3.2.ll | ||
linkage-types-3.2.ll.bc | ||
local-linkage-default-visibility.3.4.ll | ||
local-linkage-default-visibility.3.4.ll.bc | ||
mdstring-high-bits.ll | ||
memInstructions.3.2.ll | ||
memInstructions.3.2.ll.bc | ||
metadata-2.ll | ||
metadata.3.5.ll | ||
metadata.3.5.ll.bc | ||
metadata.ll | ||
miscInstructions.3.2.ll | ||
miscInstructions.3.2.ll.bc | ||
null-type.ll | ||
null-type.ll.bc | ||
old-aliases.ll | ||
old-aliases.ll.bc | ||
pr18704.ll | ||
pr18704.ll.bc | ||
ptest-new.ll | ||
ptest-old.ll | ||
select.ll | ||
shuffle.ll | ||
ssse3_palignr.ll | ||
standardCIntrinsic.3.2.ll | ||
standardCIntrinsic.3.2.ll.bc | ||
tailcall.ll | ||
terminatorInstructions.3.2.ll | ||
terminatorInstructions.3.2.ll.bc | ||
upgrade-global-ctors.ll | ||
upgrade-global-ctors.ll.bc | ||
upgrade-loop-metadata.ll | ||
upgrade-loop-metadata.ll.bc | ||
upgrade-tbaa.ll | ||
use-list-order.ll | ||
variableArgumentIntrinsic.3.2.ll | ||
variableArgumentIntrinsic.3.2.ll.bc | ||
vectorInstructions.3.2.ll | ||
vectorInstructions.3.2.ll.bc | ||
visibility-styles.3.2.ll | ||
visibility-styles.3.2.ll.bc | ||
weak-cmpxchg-upgrade.ll | ||
weak-cmpxchg-upgrade.ll.bc |