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
|
||
|---|---|---|
| .. | ||
| AArch64 | ||
| ARM | ||
| X86 | ||
| 2005-08-15-AddRecIV.ll | ||
| 2005-08-17-OutOfLoopVariant.ll | ||
| 2005-09-12-UsesOutOutsideOfLoop.ll | ||
| 2007-04-23-UseIterator.ll | ||
| 2008-08-13-CmpStride.ll | ||
| 2008-09-09-Overflow.ll | ||
| 2009-01-13-nonconstant-stride-outside-loop.ll | ||
| 2009-04-28-no-reduce-mul.ll | ||
| 2011-07-19-CritEdgeBreakCrash.ll | ||
| 2011-10-03-CritEdgeMerge.ll | ||
| 2011-10-06-ReusePhi.ll | ||
| 2011-10-13-SCEVChain.ll | ||
| 2011-10-14-IntPtr.ll | ||
| 2011-12-19-PostincQuadratic.ll | ||
| 2012-01-02-nopreheader.ll | ||
| 2012-01-16-nopreheader.ll | ||
| 2012-03-15-nopreheader.ll | ||
| 2012-03-26-constexpr.ll | ||
| 2012-07-13-ExpandUDiv.ll | ||
| 2012-07-18-LimitReassociate.ll | ||
| 2013-01-05-IndBr.ll | ||
| 2013-01-14-ReuseCast.ll | ||
| addrec-gep-address-space.ll | ||
| addrec-gep.ll | ||
| address-space-loop.ll | ||
| count-to-zero.ll | ||
| dead-phi.ll | ||
| different-type-ivs.ll | ||
| dominate-assert.ll | ||
| dont-hoist-simple-loop-constants.ll | ||
| dont_insert_redundant_ops.ll | ||
| dont_reduce_bytes.ll | ||
| dont_reverse.ll | ||
| exit_compare_live_range.ll | ||
| hoist-parent-preheader.ll | ||
| invariant_value_first.ll | ||
| invariant_value_first_arg.ll | ||
| ivchain.ll | ||
| lsr-expand-quadratic.ll | ||
| nested-reduce.ll | ||
| nonlinear-postinc.ll | ||
| ops_after_indvar.ll | ||
| phi_node_update_multiple_preds.ll | ||
| post-inc-icmpzero.ll | ||
| pr2537.ll | ||
| pr2570.ll | ||
| pr3086.ll | ||
| pr3399.ll | ||
| pr3571.ll | ||
| pr12018.ll | ||
| pr12048.ll | ||
| pr12691.ll | ||
| pr18165.ll | ||
| preserve-gep-loop-variant.ll | ||
| quadradic-exit-value.ll | ||
| related_indvars.ll | ||
| remove_indvar.ll | ||
| scaling_factor_cost_crash.ll | ||
| share_code_in_preheader.ll | ||
| share_ivs.ll | ||
| uglygep-address-space.ll | ||
| uglygep.ll | ||
| use_postinc_value_outside_loop.ll | ||
| var_stride_used_by_compare.ll | ||
| variable_stride.ll | ||