llvm/test/Transforms/SimplifyCFG
Duncan P. N. Exon Smith 1ef70ff39b IR: Make metadata typeless in assembly
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
2014-12-15 19:07:53 +00:00
..
SPARC Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
X86 Revert r223049, r223050 and r223051 while investigating test failures. 2014-12-01 17:36:43 +00:00
2002-05-21-PHIElimination.ll
2002-09-24-PHIAssertion.ll
2003-03-07-DominateProblem.ll
2003-08-05-InvokeCrash.ll
2003-08-17-BranchFold.ll
2003-08-17-BranchFoldOrdering.ll
2003-08-17-FoldSwitch-dbg.ll
2003-08-17-FoldSwitch.ll
2004-12-10-SimplifyCFGCrash.ll
2005-06-16-PHICrash.ll
2005-08-01-PHIUpdateFail.ll
2005-10-02-InvokeSimplify.ll
2005-12-03-IncorrectPHIFold.ll
2006-02-17-InfiniteUnroll.ll
2006-06-12-InfLoop.ll
2006-08-03-Crash.ll
2006-10-19-UncondDiv.ll
2006-12-08-Ptr-ICmp-Branch.ll
2007-11-22-InvokeNoUnwind.ll
2007-12-21-Crash.ll
2008-01-02-hoist-fp-add.ll
2008-05-16-PHIBlockMerge.ll
2008-07-13-InfLoopMiscompile.ll
2008-09-08-MultiplePred.ll
2008-09-17-SpeculativeHoist.ll
2008-10-03-SpeculativelyExecuteBeforePHI.ll
2008-12-06-SingleEntryPhi.ll
2008-12-16-DCECond.ll
2009-01-18-PHIPropCrash.ll
2009-01-19-UnconditionalTrappingConstantExpr.ll
2009-05-12-externweak.ll
2010-03-30-InvokeCrash.ll
2011-03-08-UnreachableUse.ll
2011-09-05-TrivialLPad.ll
assume.ll Add @llvm.assume, lowering, and some basic properties 2014-07-25 21:13:35 +00:00
attr-noduplicate.ll
basictest.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
branch-cond-merge.ll
branch-cond-prop.ll
branch-fold-dbg.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
branch-fold-test.ll
branch-fold-threshold.ll [SimplifyCFG] threshold for folding branches with common destination 2014-09-30 22:23:38 +00:00
branch-fold.ll
branch-phi-thread.ll
BrUnwind.ll
common-dest-folding.ll
CoveredLookupTable.ll
dbginfo.ll
dce-cond-after-folding-terminator.ll
DeadSetCC.ll
duplicate-phis.ll
EmptyBlockMerge.ll
EqualPHIEdgeBlockMerge.ll
extract-cost.ll
ForwardSwitchConditionToPHI.ll
hoist-common-code.ll
hoist-dbgvalue.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
hoist-with-range.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
HoistCode.ll
indirectbr.ll
invoke_unwind.ll
invoke.ll
iterative-simplify.ll
lifetime.ll SimplifyCFG: Avoid miscompilations due to removed lifetime intrinsics. 2014-07-30 21:04:00 +00:00
MagicPointer.ll
multiple-phis.ll
no_speculative_loads_with_tsan.ll
noreturn-call.ll
phi-undef-loadstore.ll
PhiBlockMerge2.ll
PhiBlockMerge.ll
PhiEliminate2.ll
PhiEliminate3.ll
PhiEliminate.ll
PHINode.ll
PhiNoEliminate.ll
PR9946.ll
PR16069.ll
PR17073.ll Fix for PR17073 ( http://llvm.org/pr17073 ), simplifycfg illegally hoists an operation in a phi node that can trap. 2014-07-07 21:19:00 +00:00
preserve-branchweights-partial.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
preserve-branchweights-switch-create.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
preserve-branchweights.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
return-merge.ll
select-gep.ll
sink-common-code.ll
speculate-math.ll Add minnum / maxnum intrinsics 2014-10-21 23:00:20 +00:00
speculate-store.ll
speculate-vector-ops.ll
speculate-with-offset.ll
SpeculativeExec.ll
switch_create.ll
switch_switch_fold.ll
switch_thread.ll
switch-masked-bits.ll
switch-on-const-select.ll
switch-range-to-icmp.ll Add some tests for SimplifyCFG's TurnSwitchRangeIntoICmp(). NFC. 2014-12-04 22:19:28 +00:00
switch-simplify-crash.ll
switch-to-br.ll Add some tests for SimplifyCFG's ConstantFoldTerminator(). NFC. 2014-12-04 22:19:25 +00:00
switch-to-icmp.ll
switch-to-select-multiple-edge-per-block-phi.ll Switch to select optimization for two-case switches 2014-10-14 01:58:26 +00:00
switch-to-select-two-case.ll Switch to select optimization for two-case switches 2014-10-14 01:58:26 +00:00
trap-debugloc.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
trapping-load-unreachable.ll
trivial-throw.ll
two-entry-phi-return.ll
UncondBranchToReturn.ll
unreachable-blocks.ll
UnreachableEliminate.ll Revert r223049, r223050 and r223051 while investigating test failures. 2014-12-01 17:36:43 +00:00
volatile-phioper.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00