diff options
Diffstat (limited to 'test/Transforms/LICM')
28 files changed, 201 insertions, 201 deletions
diff --git a/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll b/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll index ff20312..1b50a6c 100644 --- a/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll +++ b/test/Transforms/LICM/2003-02-26-LoopExitNotDominated.ll @@ -7,7 +7,7 @@ bb3: %X = alloca [2 x i64] ; <[2 x i64]*> [#uses=1] br i1 false, label %bb13, label %bb4 bb4: ; preds = %bb3 - %reg3011 = getelementptr [2 x i64]* %X, i64 0, i64 0 ; <i64*> [#uses=1] + %reg3011 = getelementptr [2 x i64], [2 x i64]* %X, i64 0, i64 0 ; <i64*> [#uses=1] br label %bb8 bb8: ; preds = %bb8, %bb4 store i64 0, i64* %reg3011 diff --git a/test/Transforms/LICM/2003-05-02-LoadHoist.ll b/test/Transforms/LICM/2003-05-02-LoadHoist.ll index 71d3e78..2f94dff 100644 --- a/test/Transforms/LICM/2003-05-02-LoadHoist.ll +++ b/test/Transforms/LICM/2003-05-02-LoadHoist.ll @@ -10,12 +10,12 @@ declare void @foo() define i32 @test(i1 %c) { - %A = load i32* @X ; <i32> [#uses=1] + %A = load i32, i32* @X ; <i32> [#uses=1] br label %Loop Loop: ; preds = %Loop, %0 call void @foo( ) ;; Should not hoist this load! - %B = load i32* @X ; <i32> [#uses=1] + %B = load i32, i32* @X ; <i32> [#uses=1] br i1 %c, label %Loop, label %Out Out: ; preds = %Loop %C = sub i32 %A, %B ; <i32> [#uses=1] diff --git a/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll b/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll index 16f4fed..73862db 100644 --- a/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll +++ b/test/Transforms/LICM/2004-09-14-AliasAnalysisInvalidate.ll @@ -7,8 +7,8 @@ define void @test() { Outer: ; preds = %Next, %0 br label %Inner Inner: ; preds = %Inner, %Outer - %tmp.114.i.i.i = load i8** @PL_regcomp_parse ; <i8*> [#uses=1] - %tmp.115.i.i.i = load i8* %tmp.114.i.i.i ; <i8> [#uses=0] + %tmp.114.i.i.i = load i8*, i8** @PL_regcomp_parse ; <i8*> [#uses=1] + %tmp.115.i.i.i = load i8, i8* %tmp.114.i.i.i ; <i8> [#uses=0] store i8* null, i8** @PL_regcomp_parse br i1 false, label %Inner, label %Next Next: ; preds = %Inner diff --git a/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll b/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll index a119865..9416028 100644 --- a/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll +++ b/test/Transforms/LICM/2004-11-17-UndefIndexCrash.ll @@ -11,10 +11,10 @@ define void @main() { __main.entry: br label %invoke_cont.3 invoke_cont.3: ; preds = %invoke_cont.3, %__main.entry - %tmp.34.i.i502.7 = getelementptr %struct.roadlet* null, i32 0, i32 3, i32 7 ; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1] + %tmp.34.i.i502.7 = getelementptr %struct.roadlet, %struct.roadlet* null, i32 0, i32 3, i32 7 ; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1] store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z11return_nullP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** %tmp.34.i.i502.7 store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z14lane_switch_okP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** null - %tmp.4.i.i339 = getelementptr %struct.roadlet* null, i32 0, i32 3, i32 undef ; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1] + %tmp.4.i.i339 = getelementptr %struct.roadlet, %struct.roadlet* null, i32 0, i32 3, i32 undef ; <%struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)**> [#uses=1] store %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)* @_Z11return_nullP7roadletP7vehicle9direction, %struct.roadlet* (%struct.roadlet*, %struct.vehicle*, i32)** %tmp.4.i.i339 br label %invoke_cont.3 } diff --git a/test/Transforms/LICM/2007-05-22-VolatileSink.ll b/test/Transforms/LICM/2007-05-22-VolatileSink.ll index 94511cc..f5ce86b 100644 --- a/test/Transforms/LICM/2007-05-22-VolatileSink.ll +++ b/test/Transforms/LICM/2007-05-22-VolatileSink.ll @@ -10,8 +10,8 @@ entry: br label %bb6 bb: ; preds = %bb6 - %tmp2 = load volatile i32* %DataIn ; <i32> [#uses=1] - %tmp3 = getelementptr [64 x i32]* %buffer, i32 0, i32 %i.0 ; <i32*> [#uses=1] + %tmp2 = load volatile i32, i32* %DataIn ; <i32> [#uses=1] + %tmp3 = getelementptr [64 x i32], [64 x i32]* %buffer, i32 0, i32 %i.0 ; <i32*> [#uses=1] store i32 %tmp2, i32* %tmp3 %tmp5 = add i32 %i.0, 1 ; <i32> [#uses=1] br label %bb6 @@ -26,8 +26,8 @@ bb6: ; preds = %bb, %entry bb12: ; preds = %bb22 %tmp14 = mul i32 %j.1, 8 ; <i32> [#uses=1] %tmp16 = add i32 %tmp14, %i.1 ; <i32> [#uses=1] - %tmp17 = getelementptr [64 x i32]* %buffer, i32 0, i32 %tmp16 ; <i32*> [#uses=1] - %tmp18 = load i32* %tmp17 ; <i32> [#uses=1] + %tmp17 = getelementptr [64 x i32], [64 x i32]* %buffer, i32 0, i32 %tmp16 ; <i32*> [#uses=1] + %tmp18 = load i32, i32* %tmp17 ; <i32> [#uses=1] store volatile i32 %tmp18, i32* %DataOut %tmp21 = add i32 %j.1, 1 ; <i32> [#uses=1] br label %bb22 diff --git a/test/Transforms/LICM/2007-07-30-AliasSet.ll b/test/Transforms/LICM/2007-07-30-AliasSet.ll index 8ecd1bc..3e4fbb0 100644 --- a/test/Transforms/LICM/2007-07-30-AliasSet.ll +++ b/test/Transforms/LICM/2007-07-30-AliasSet.ll @@ -17,12 +17,12 @@ bb63.outer: ; preds = %bb73, %bb28 bb35: ; preds = %cond_next60, %bb63.outer %window.34 = phi i32 [ %tmp62, %cond_next60 ], [ 0, %bb63.outer ] ; <i32> [#uses=1] - %tmp44 = getelementptr [4 x i32]* null, i32 0, i32 0 ; <i32*> [#uses=1] - %tmp46 = load i32* %tmp44, align 4 ; <i32> [#uses=0] + %tmp44 = getelementptr [4 x i32], [4 x i32]* null, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp46 = load i32, i32* %tmp44, align 4 ; <i32> [#uses=0] br i1 false, label %cond_true50, label %cond_next60 cond_true50: ; preds = %bb35 - %tmp59 = getelementptr [4 x i32]* null, i32 0, i32 0 ; <i32*> [#uses=1] + %tmp59 = getelementptr [4 x i32], [4 x i32]* null, i32 0, i32 0 ; <i32*> [#uses=1] store i32 0, i32* %tmp59, align 4 br label %cond_next60 diff --git a/test/Transforms/LICM/2007-09-17-PromoteValue.ll b/test/Transforms/LICM/2007-09-17-PromoteValue.ll index 31abd8c..1d25d17 100644 --- a/test/Transforms/LICM/2007-09-17-PromoteValue.ll +++ b/test/Transforms/LICM/2007-09-17-PromoteValue.ll @@ -14,7 +14,7 @@ blah.i: ; preds = %cond_true.i, %entry br i1 %tmp3.i, label %clear_modes.exit, label %cond_true.i cond_true.i: ; preds = %blah.i - %tmp1.i = getelementptr %struct.decision* null, i32 0, i32 0 ; <i8*> [#uses=1] + %tmp1.i = getelementptr %struct.decision, %struct.decision* null, i32 0, i32 0 ; <i8*> [#uses=1] store i8 0, i8* %tmp1.i br label %blah.i @@ -33,7 +33,7 @@ loop.head: ; preds = %cond.true, %entry br i1 %tmp3.i, label %cond.true, label %exit cond.true: ; preds = %loop.head - %ptr.i = getelementptr i8* %ptr, i32 0 ; <i8*> [#uses=2] + %ptr.i = getelementptr i8, i8* %ptr, i32 0 ; <i8*> [#uses=2] store i8 0, i8* %ptr.i br label %loop.head @@ -50,7 +50,7 @@ loop.head: ; preds = %cond.true, %entry br i1 %tmp3.i, label %exit, label %cond.true cond.true: ; preds = %loop.head - %ptr.i = getelementptr i8* %p, i32 0 ; <i8*> [#uses=2] + %ptr.i = getelementptr i8, i8* %p, i32 0 ; <i8*> [#uses=2] store i8 0, i8* %ptr.i br label %loop.head diff --git a/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll b/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll index d4df26e..a715af0 100644 --- a/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll +++ b/test/Transforms/LICM/2008-07-22-LoadGlobalConstant.ll @@ -6,7 +6,7 @@ define void @test(i32 %count) { entry: br label %forcond -; CHECK: %tmp3 = load float** @a +; CHECK: %tmp3 = load float*, float** @a ; CHECK: br label %forcond forcond: @@ -19,14 +19,14 @@ forcond: ; CHECK: br i1 %cmp, label %forbody, label %afterfor forbody: - %tmp3 = load float** @a - %arrayidx = getelementptr float* %tmp3, i32 %i.0 + %tmp3 = load float*, float** @a + %arrayidx = getelementptr float, float* %tmp3, i32 %i.0 %tmp7 = uitofp i32 %i.0 to float store float %tmp7, float* %arrayidx %inc = add i32 %i.0, 1 br label %forcond -; CHECK: %arrayidx = getelementptr float* %tmp3, i32 %i.0 +; CHECK: %arrayidx = getelementptr float, float* %tmp3, i32 %i.0 ; CHECK: %tmp7 = uitofp i32 %i.0 to float ; CHECK: store float %tmp7, float* %arrayidx ; CHECK: %inc = add i32 %i.0, 1 diff --git a/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll b/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll index e3cdbb3..1b3ff5b 100644 --- a/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll +++ b/test/Transforms/LICM/2009-12-10-LICM-Indbr-Crash.ll @@ -12,7 +12,7 @@ define void @foo (i8* %v) indirectbr i8* undef, [label %preheader, label %stuff] stuff: - %0 = load i8* undef, align 1 + %0 = load i8, i8* undef, align 1 br label %loop return: diff --git a/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll b/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll index 2bbc6ab..b462885 100644 --- a/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll +++ b/test/Transforms/LICM/2011-04-06-HoistMissedASTUpdate.ll @@ -15,11 +15,11 @@ for.body4.lr.ph: br label %for.body4 ; CHECK: for.body4: -; CHECK: load volatile i16* @g_39 +; CHECK: load volatile i16, i16* @g_39 for.body4: %l_612.11 = phi i32* [ undef, %for.body4.lr.ph ], [ %call19, %for.body4 ] - %tmp7 = load volatile i16* @g_39, align 2 + %tmp7 = load volatile i16, i16* @g_39, align 2 %call = call i32** @func_108(i32*** undef) %call19 = call i32* @func_84(i32** %call) br i1 false, label %for.body4, label %for.cond.loopexit diff --git a/test/Transforms/LICM/2011-04-06-PromoteResultOfPromotion.ll b/test/Transforms/LICM/2011-04-06-PromoteResultOfPromotion.ll index 5587142..370491e 100644 --- a/test/Transforms/LICM/2011-04-06-PromoteResultOfPromotion.ll +++ b/test/Transforms/LICM/2011-04-06-PromoteResultOfPromotion.ll @@ -8,7 +8,7 @@ define void @f() nounwind { ; CHECK: entry: ; CHECK: alloca [9 x i16] -; CHECK: load i32* @g_58 +; CHECK: load i32, i32* @g_58 ; CHECK: br label %for.body entry: @@ -18,8 +18,8 @@ entry: for.body: ; preds = %entry, %for.inc %inc12 = phi i32 [ 0, %entry ], [ %inc, %for.body ] store i32* @g_58, i32** @g_116, align 8, !tbaa !0 - %tmp2 = load i32** @g_116, align 8, !tbaa !0 - %tmp3 = load i32* %tmp2, !tbaa !4 + %tmp2 = load i32*, i32** @g_116, align 8, !tbaa !0 + %tmp3 = load i32, i32* %tmp2, !tbaa !4 %or = or i32 %tmp3, 10 store i32 %or, i32* %tmp2, !tbaa !4 %inc = add nsw i32 %inc12, 1 diff --git a/test/Transforms/LICM/2011-04-09-RAUW-AST.ll b/test/Transforms/LICM/2011-04-09-RAUW-AST.ll index 4285bd1..f5ef29c 100644 --- a/test/Transforms/LICM/2011-04-09-RAUW-AST.ll +++ b/test/Transforms/LICM/2011-04-09-RAUW-AST.ll @@ -6,7 +6,7 @@ define i32 @main() nounwind { entry: - %tmp = load i32* @g_3, align 4 + %tmp = load i32, i32* @g_3, align 4 %tobool = icmp eq i32 %tmp, 0 br i1 %tobool, label %for.cond, label %if.then @@ -40,8 +40,8 @@ for.inc10: ; preds = %for.cond4 br label %for.cond for.end13: ; preds = %for.cond - %tmp14 = load i32* @g_3, align 4 - %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i64 0, i64 0), i32 %tmp14) nounwind + %tmp14 = load i32, i32* @g_3, align 4 + %call = tail call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i64 0, i64 0), i32 %tmp14) nounwind ret i32 0 } diff --git a/test/Transforms/LICM/2011-07-06-Alignment.ll b/test/Transforms/LICM/2011-07-06-Alignment.ll index 5692314..c71dd80 100644 --- a/test/Transforms/LICM/2011-07-06-Alignment.ll +++ b/test/Transforms/LICM/2011-07-06-Alignment.ll @@ -8,7 +8,7 @@ entry: for.cond: %indvar = phi i64 [ %indvar.next, %for.body ], [ 0, %entry ] - %arrayidx = getelementptr [1024 x float]* @A, i64 0, i64 3 + %arrayidx = getelementptr [1024 x float], [1024 x float]* @A, i64 0, i64 3 %vecidx = bitcast float* %arrayidx to <4 x float>* store <4 x float> zeroinitializer, <4 x float>* %vecidx, align 4 %indvar.next = add i64 %indvar, 1 diff --git a/test/Transforms/LICM/PR21582.ll b/test/Transforms/LICM/PR21582.ll index c068c2f..5664f2e 100644 --- a/test/Transforms/LICM/PR21582.ll +++ b/test/Transforms/LICM/PR21582.ll @@ -19,8 +19,8 @@ for.body.preheader: ; preds = %for.cond for.body: ; preds = %for.body, %for.body.preheader %g.15 = phi i32 [ undef, %for.body ], [ 0, %for.body.preheader ] - %arrayidx2 = getelementptr inbounds i32* @fn3.i, i64 0 - %0 = load i32* %arrayidx2, align 4 + %arrayidx2 = getelementptr inbounds i32, i32* @fn3.i, i64 0 + %0 = load i32, i32* %arrayidx2, align 4 %call = call i32 @g() br i1 false, label %for.body, label %for.end.loopexit diff --git a/test/Transforms/LICM/atomics.ll b/test/Transforms/LICM/atomics.ll index acf605d..4fe197a 100644 --- a/test/Transforms/LICM/atomics.ll +++ b/test/Transforms/LICM/atomics.ll @@ -7,7 +7,7 @@ entry: loop: %i = phi i32 [ %inc, %loop ], [ 0, %entry ] - %val = load atomic i32* %y unordered, align 4 + %val = load atomic i32, i32* %y unordered, align 4 %inc = add nsw i32 %i, 1 %exitcond = icmp eq i32 %inc, %val br i1 %exitcond, label %end, label %loop @@ -27,7 +27,7 @@ entry: br label %loop loop: - %val = load atomic i32* %y monotonic, align 4 + %val = load atomic i32, i32* %y monotonic, align 4 %exitcond = icmp ne i32 %val, 0 br i1 %exitcond, label %end, label %loop @@ -47,15 +47,15 @@ entry: br label %loop loop: - %vala = load atomic i32* %y monotonic, align 4 - %valb = load atomic i32* %x unordered, align 4 + %vala = load atomic i32, i32* %y monotonic, align 4 + %valb = load atomic i32, i32* %x unordered, align 4 %exitcond = icmp ne i32 %vala, %valb br i1 %exitcond, label %end, label %loop end: ret i32 %vala ; CHECK-LABEL: define i32 @test3( -; CHECK: load atomic i32* %x unordered +; CHECK: load atomic i32, i32* %x unordered ; CHECK-NEXT: br label %loop } @@ -66,7 +66,7 @@ entry: br label %loop loop: - %vala = load atomic i32* %y monotonic, align 4 + %vala = load atomic i32, i32* %y monotonic, align 4 store atomic i32 %vala, i32* %x unordered, align 4 %exitcond = icmp ne i32 %vala, 0 br i1 %exitcond, label %end, label %loop @@ -74,6 +74,6 @@ loop: end: ret i32 %vala ; CHECK-LABEL: define i32 @test4( -; CHECK: load atomic i32* %y monotonic +; CHECK: load atomic i32, i32* %y monotonic ; CHECK-NEXT: store atomic } diff --git a/test/Transforms/LICM/constexpr.ll b/test/Transforms/LICM/constexpr.ll index f788787..506721f 100644 --- a/test/Transforms/LICM/constexpr.ll +++ b/test/Transforms/LICM/constexpr.ll @@ -9,7 +9,7 @@ target triple = "x86_64-pc-windows-msvc" ; CHECK-LABEL: @bar ; CHECK: entry: -; CHECK: load i64* bitcast (i32** @in to i64*) +; CHECK: load i64, i64* bitcast (i32** @in to i64*) ; CHECK: do.body: ; CHECK-NOT: load @@ -24,11 +24,11 @@ do.body: ; preds = %l2, %entry br i1 %c, label %l1, label %do.body.l2_crit_edge do.body.l2_crit_edge: ; preds = %do.body - %inval.pre = load i32** @in, align 8 + %inval.pre = load i32*, i32** @in, align 8 br label %l2 l1: ; preds = %do.body - %v1 = load i64* bitcast (i32** @in to i64*), align 8 + %v1 = load i64, i64* bitcast (i32** @in to i64*), align 8 store i64 %v1, i64* bitcast (i32** @out to i64*), align 8 %0 = inttoptr i64 %v1 to i32* br label %l2 diff --git a/test/Transforms/LICM/crash.ll b/test/Transforms/LICM/crash.ll index b43477a..7fa4115 100644 --- a/test/Transforms/LICM/crash.ll +++ b/test/Transforms/LICM/crash.ll @@ -12,7 +12,7 @@ entry: for.body: ; preds = %for.cond, %bb.nph store i8 0, i8* @g_12, align 1 - %tmp6 = load i8* @g_12, align 1 + %tmp6 = load i8, i8* @g_12, align 1 br label %for.cond for.cond: ; preds = %for.body @@ -34,7 +34,7 @@ entry: br label %for.body for.body: ; preds = %for.body, %entry - %tmp7 = load i32* @g_8, align 4 + %tmp7 = load i32, i32* @g_8, align 4 store i32* @g_8, i32** undef, align 16 store i32 undef, i32* @g_8, align 4 br label %for.body @@ -47,10 +47,10 @@ entry: br i1 undef, label %for.cond, label %for.end for.cond: ; preds = %for.cond, %entry - %tmp1 = getelementptr { i32*}* %__first, i32 0, i32 0 - %tmp2 = load i32** %tmp1, align 4 + %tmp1 = getelementptr { i32*}, { i32*}* %__first, i32 0, i32 0 + %tmp2 = load i32*, i32** %tmp1, align 4 %call = tail call i32* @test3helper(i32* %tmp2) - %tmp3 = getelementptr { i32*}* %__first, i32 0, i32 0 + %tmp3 = getelementptr { i32*}, { i32*}* %__first, i32 0, i32 0 store i32* %call, i32** %tmp3, align 4 br i1 false, label %for.cond, label %for.end diff --git a/test/Transforms/LICM/debug-value.ll b/test/Transforms/LICM/debug-value.ll index b49c559..2220698 100644 --- a/test/Transforms/LICM/debug-value.ll +++ b/test/Transforms/LICM/debug-value.ll @@ -15,7 +15,7 @@ if.then: ; preds = %for.body if.then27: ; preds = %if.then ; CHECK: tail call void @llvm.dbg.value - tail call void @llvm.dbg.value(metadata double undef, i64 0, metadata !19, metadata !{}), !dbg !21 + tail call void @llvm.dbg.value(metadata double undef, i64 0, metadata !19, metadata !MDExpression()), !dbg !21 br label %for.body61.us if.end.if.end.split_crit_edge.critedge: ; preds = %if.then @@ -36,30 +36,30 @@ declare void @llvm.dbg.value(metadata, i64, metadata, metadata) nounwind readnon !llvm.module.flags = !{!26} !llvm.dbg.sp = !{!0, !6, !9, !10} -!0 = !{!"0x2e\00idamax\00idamax\00\00112\000\001\000\006\00256\000\000", !25, !1, !3, i32 0, null, null, null, null} ; [ DW_TAG_subprogram ] -!1 = !{!"0x29", !25} ; [ DW_TAG_file_type ] -!2 = !{!"0x11\0012\00clang version 2.9 (trunk 127169)\001\00\000\00\000", !25, !8, !8, !8, null, null} ; [ DW_TAG_compile_unit ] -!3 = !{!"0x15\00\000\000\000\000\000\000", !25, !1, null, !4, i32 0} ; [ DW_TAG_subroutine_type ] +!0 = !MDSubprogram(name: "idamax", line: 112, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !25, scope: !1, type: !3) +!1 = !MDFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/Benchmarks/CoyoteBench/lpbench.c", directory: "/private/tmp") +!2 = !MDCompileUnit(language: DW_LANG_C99, producer: "clang version 2.9 (trunk 127169)", isOptimized: true, emissionKind: 0, file: !25, enums: !8, retainedTypes: !8, subprograms: !8) +!3 = !MDSubroutineType(types: !4) !4 = !{!5} -!5 = !{!"0x24\00int\000\0032\0032\000\000\005", null, !2} ; [ DW_TAG_base_type ] -!6 = !{!"0x2e\00dscal\00dscal\00\00206\000\001\000\006\00256\000\000", !25, !1, !7, i32 0, null, null, null, null} ; [ DW_TAG_subprogram ] -!7 = !{!"0x15\00\000\000\000\000\000\000", !25, !1, null, !8, null, null, null} ; [ DW_TAG_subroutine_type ] [line 0, size 0, align 0, offset 0] [from ] +!5 = !MDBasicType(tag: DW_TAG_base_type, name: "int", size: 32, align: 32, encoding: DW_ATE_signed) +!6 = !MDSubprogram(name: "dscal", line: 206, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !25, scope: !1, type: !7) +!7 = !MDSubroutineType(types: !8) !8 = !{null} -!9 = !{!"0x2e\00daxpy\00daxpy\00\00230\000\001\000\006\00256\000\000", !25, !1, !7, i32 0, null, null, null, null} ; [ DW_TAG_subprogram ] -!10 = !{!"0x2e\00dgefa\00dgefa\00\00267\000\001\000\006\00256\000\000", !25, !1, !7, null, null, null, null, null} ; [ DW_TAG_subprogram ] [line 267] [def] [scope 0] [dgefa] +!9 = !MDSubprogram(name: "daxpy", line: 230, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !25, scope: !1, type: !7) +!10 = !MDSubprogram(name: "dgefa", line: 267, isLocal: false, isDefinition: true, virtualIndex: 6, flags: DIFlagPrototyped, isOptimized: false, file: !25, scope: !1, type: !7) !11 = !MDLocation(line: 281, column: 9, scope: !12) -!12 = !{!"0xb\00272\005\0032", !25, !13} ; [ DW_TAG_lexical_block ] -!13 = !{!"0xb\00271\005\0031", !25, !14} ; [ DW_TAG_lexical_block ] -!14 = !{!"0xb\00267\001\0030", !25, !10} ; [ DW_TAG_lexical_block ] +!12 = distinct !MDLexicalBlock(line: 272, column: 5, file: !25, scope: !13) +!13 = distinct !MDLexicalBlock(line: 271, column: 5, file: !25, scope: !14) +!14 = distinct !MDLexicalBlock(line: 267, column: 1, file: !25, scope: !10) !15 = !MDLocation(line: 271, column: 5, scope: !14) !16 = !MDLocation(line: 284, column: 10, scope: !17) -!17 = !{!"0xb\00282\009\0033", !25, !12} ; [ DW_TAG_lexical_block ] +!17 = distinct !MDLexicalBlock(line: 282, column: 9, file: !25, scope: !12) !18 = !{double undef} -!19 = !{!"0x100\00temp\00268\000", !14, !1, !20} ; [ DW_TAG_auto_variable ] -!20 = !{!"0x24\00double\000\0064\0064\000\000\004", null, !2} ; [ DW_TAG_base_type ] +!19 = !MDLocalVariable(tag: DW_TAG_auto_variable, name: "temp", line: 268, scope: !14, file: !1, type: !20) +!20 = !MDBasicType(tag: DW_TAG_base_type, name: "double", size: 64, align: 64, encoding: DW_ATE_float) !21 = !MDLocation(line: 286, column: 14, scope: !22) -!22 = !{!"0xb\00285\0013\0034", !25, !17} ; [ DW_TAG_lexical_block ] +!22 = distinct !MDLexicalBlock(line: 285, column: 13, file: !25, scope: !17) !23 = !MDLocation(line: 296, column: 13, scope: !17) !24 = !MDLocation(line: 313, column: 1, scope: !14) -!25 = !{!"/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/Benchmarks/CoyoteBench/lpbench.c", !"/private/tmp"} -!26 = !{i32 1, !"Debug Info Version", i32 2} +!25 = !MDFile(filename: "/Volumes/Lalgate/work/llvm/projects/llvm-test/SingleSource/Benchmarks/CoyoteBench/lpbench.c", directory: "/private/tmp") +!26 = !{i32 1, !"Debug Info Version", i32 3} diff --git a/test/Transforms/LICM/hoist-bitcast-load.ll b/test/Transforms/LICM/hoist-bitcast-load.ll index fa61eaf..47c474c 100644 --- a/test/Transforms/LICM/hoist-bitcast-load.ll +++ b/test/Transforms/LICM/hoist-bitcast-load.ll @@ -4,7 +4,7 @@ target triple = "x86_64-unknown-linux-gnu" ; Make sure the basic alloca pointer hoisting works: ; CHECK-LABEL: @test1 -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 ; CHECK: for.body: ; Function Attrs: nounwind uwtable @@ -16,15 +16,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -42,7 +42,7 @@ for.end: ; preds = %for.inc, %entry ; Make sure the basic alloca pointer hoisting works through a bitcast to a ; pointer to a smaller type: ; CHECK-LABEL: @test2 -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 ; CHECK: for.body: ; Function Attrs: nounwind uwtable @@ -55,15 +55,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -80,7 +80,7 @@ for.end: ; preds = %for.inc, %entry ; Make sure the basic alloca pointer hoisting works through an addrspacecast ; CHECK-LABEL: @test2_addrspacecast -; CHECK: load i32 addrspace(1)* %c, align 4 +; CHECK: load i32, i32 addrspace(1)* %c, align 4 ; CHECK: for.body: ; Function Attrs: nounwind uwtable @@ -93,15 +93,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32 addrspace(1)* %a, i64 %indvars.iv - %0 = load i32 addrspace(1)* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32 addrspace(1)* %a, i64 %indvars.iv + %0 = load i32, i32 addrspace(1)* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32 addrspace(1)* %c, align 4 - %arrayidx3 = getelementptr inbounds i32 addrspace(1)* %b, i64 %indvars.iv - %2 = load i32 addrspace(1)* %arrayidx3, align 4 + %1 = load i32, i32 addrspace(1)* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32 addrspace(1)* %b, i64 %indvars.iv + %2 = load i32, i32 addrspace(1)* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32 addrspace(1)* %arrayidx, align 4 br label %for.inc @@ -119,7 +119,7 @@ for.end: ; preds = %for.inc, %entry ; Make sure the basic alloca pointer hoisting works through a bitcast to a ; pointer to a smaller type (where the bitcast also needs to be hoisted): ; CHECK-LABEL: @test3 -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 ; CHECK: for.body: ; Function Attrs: nounwind uwtable @@ -131,16 +131,16 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body %c = bitcast i64* %ca to i32* - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -159,7 +159,7 @@ for.end: ; preds = %for.inc, %entry ; to a pointer to a larger type: ; CHECK-LABEL: @test4 ; CHECK: for.body: -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 ; Function Attrs: nounwind uwtable define void @test4(i32* nocapture %a, i32* nocapture readonly %b, i32 %n) #0 { @@ -171,15 +171,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -197,7 +197,7 @@ for.end: ; preds = %for.inc, %entry ; Don't crash on bitcasts to unsized types. ; CHECK-LABEL: @test5 ; CHECK: for.body: -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 %atype = type opaque @@ -212,15 +212,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc diff --git a/test/Transforms/LICM/hoist-deref-load.ll b/test/Transforms/LICM/hoist-deref-load.ll index c230d1d..4d0ae45 100644 --- a/test/Transforms/LICM/hoist-deref-load.ll +++ b/test/Transforms/LICM/hoist-deref-load.ll @@ -12,7 +12,7 @@ target triple = "x86_64-unknown-linux-gnu" ; because the dereferenceable attribute is on %c. ; CHECK-LABEL: @test1 -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 ; CHECK: for.body: define void @test1(i32* noalias nocapture %a, i32* noalias nocapture readonly %b, i32* nocapture readonly nonnull dereferenceable(4) %c, i32 %n) #0 { @@ -22,15 +22,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -50,7 +50,7 @@ for.end: ; preds = %for.inc, %entry ; CHECK-LABEL: @test2 ; CHECK: if.then: -; CHECK: load i32* %c, align 4 +; CHECK: load i32, i32* %c, align 4 define void @test2(i32* noalias nocapture %a, i32* noalias nocapture readonly %b, i32* nocapture readonly nonnull %c, i32 %n) #0 { entry: @@ -59,15 +59,15 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %1 = load i32* %c, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %1 = load i32, i32* %c, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -92,7 +92,7 @@ for.end: ; preds = %for.inc, %entry ; because the dereferenceable attribute is on %c. ; CHECK-LABEL: @test3 -; CHECK: load i32* %c2, align 4 +; CHECK: load i32, i32* %c2, align 4 ; CHECK: for.body: define void @test3(i32* noalias nocapture %a, i32* noalias nocapture readonly %b, i32* nocapture readonly dereferenceable(12) %c, i32 %n) #0 { @@ -102,16 +102,16 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %c2 = getelementptr inbounds i32* %c, i64 2 - %1 = load i32* %c2, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %c2 = getelementptr inbounds i32, i32* %c, i64 2 + %1 = load i32, i32* %c2, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc @@ -131,7 +131,7 @@ for.end: ; preds = %for.inc, %entry ; CHECK-LABEL: @test4 ; CHECK: if.then: -; CHECK: load i32* %c2, align 4 +; CHECK: load i32, i32* %c2, align 4 define void @test4(i32* noalias nocapture %a, i32* noalias nocapture readonly %b, i32* nocapture readonly dereferenceable(11) %c, i32 %n) #0 { entry: @@ -140,16 +140,16 @@ entry: for.body: ; preds = %entry, %for.inc %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %a, i64 %indvars.iv - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %a, i64 %indvars.iv + %0 = load i32, i32* %arrayidx, align 4 %cmp1 = icmp sgt i32 %0, 0 br i1 %cmp1, label %if.then, label %for.inc if.then: ; preds = %for.body - %c2 = getelementptr inbounds i32* %c, i64 2 - %1 = load i32* %c2, align 4 - %arrayidx3 = getelementptr inbounds i32* %b, i64 %indvars.iv - %2 = load i32* %arrayidx3, align 4 + %c2 = getelementptr inbounds i32, i32* %c, i64 2 + %1 = load i32, i32* %c2, align 4 + %arrayidx3 = getelementptr inbounds i32, i32* %b, i64 %indvars.iv + %2 = load i32, i32* %arrayidx3, align 4 %mul = mul nsw i32 %2, %1 store i32 %mul, i32* %arrayidx, align 4 br label %for.inc diff --git a/test/Transforms/LICM/hoist-invariant-load.ll b/test/Transforms/LICM/hoist-invariant-load.ll index 59904ba..aec155b 100644 --- a/test/Transforms/LICM/hoist-invariant-load.ll +++ b/test/Transforms/LICM/hoist-invariant-load.ll @@ -2,9 +2,9 @@ ; RUN: opt < %s -licm -stats -S 2>&1 | grep "1 licm" @"\01L_OBJC_METH_VAR_NAME_" = internal global [4 x i8] c"foo\00", section "__TEXT,__objc_methname,cstring_literals", align 1 -@"\01L_OBJC_SELECTOR_REFERENCES_" = internal global i8* getelementptr inbounds ([4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip" +@"\01L_OBJC_SELECTOR_REFERENCES_" = internal global i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), section "__DATA, __objc_selrefs, literal_pointers, no_dead_strip" @"\01L_OBJC_IMAGE_INFO" = internal constant [2 x i32] [i32 0, i32 16], section "__DATA, __objc_imageinfo, regular, no_dead_strip" -@llvm.used = appending global [3 x i8*] [i8* getelementptr inbounds ([4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* bitcast (i8** @"\01L_OBJC_SELECTOR_REFERENCES_" to i8*), i8* bitcast ([2 x i32]* @"\01L_OBJC_IMAGE_INFO" to i8*)], section "llvm.metadata" +@llvm.used = appending global [3 x i8*] [i8* getelementptr inbounds ([4 x i8], [4 x i8]* @"\01L_OBJC_METH_VAR_NAME_", i32 0, i32 0), i8* bitcast (i8** @"\01L_OBJC_SELECTOR_REFERENCES_" to i8*), i8* bitcast ([2 x i32]* @"\01L_OBJC_IMAGE_INFO" to i8*)], section "llvm.metadata" define void @test(i8* %x) uwtable ssp { entry: @@ -15,18 +15,18 @@ entry: br label %for.cond for.cond: ; preds = %for.inc, %entry - %0 = load i32* %i, align 4 + %0 = load i32, i32* %i, align 4 %cmp = icmp ult i32 %0, 10000 br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %1 = load i8** %x.addr, align 8 - %2 = load i8** @"\01L_OBJC_SELECTOR_REFERENCES_", !invariant.load !0 + %1 = load i8*, i8** %x.addr, align 8 + %2 = load i8*, i8** @"\01L_OBJC_SELECTOR_REFERENCES_", !invariant.load !0 %call = call i8* bitcast (i8* (i8*, i8*, ...)* @objc_msgSend to i8* (i8*, i8*)*)(i8* %1, i8* %2) br label %for.inc for.inc: ; preds = %for.body - %3 = load i32* %i, align 4 + %3 = load i32, i32* %i, align 4 %inc = add i32 %3, 1 store i32 %inc, i32* %i, align 4 br label %for.cond diff --git a/test/Transforms/LICM/hoisting.ll b/test/Transforms/LICM/hoisting.ll index b4d297a..8609407 100644 --- a/test/Transforms/LICM/hoisting.ll +++ b/test/Transforms/LICM/hoisting.ll @@ -8,7 +8,7 @@ declare void @foo() ; potentially trapping instructions when they are not guaranteed to execute. define i32 @test1(i1 %c) { ; CHECK-LABEL: @test1( - %A = load i32* @X ; <i32> [#uses=2] + %A = load i32, i32* @X ; <i32> [#uses=2] br label %Loop Loop: ; preds = %LoopTail, %0 call void @foo( ) @@ -35,9 +35,9 @@ declare void @foo2(i32) nounwind ;; It is ok and desirable to hoist this potentially trapping instruction. define i32 @test2(i1 %c) { ; CHECK-LABEL: @test2( -; CHECK-NEXT: load i32* @X +; CHECK-NEXT: load i32, i32* @X ; CHECK-NEXT: %B = sdiv i32 4, %A - %A = load i32* @X ; <i32> [#uses=2] + %A = load i32, i32* @X ; <i32> [#uses=2] br label %Loop Loop: ;; Should have hoisted this div! @@ -54,7 +54,7 @@ Out: ; preds = %Loop define i32 @test3(i1 %c) { ; CHECK-LABEL: define i32 @test3( ; CHECK: call void @foo2(i32 6) - %A = load i32* @X ; <i32> [#uses=2] + %A = load i32, i32* @X ; <i32> [#uses=2] br label %Loop Loop: %B = add i32 4, 2 ; <i32> [#uses=2] diff --git a/test/Transforms/LICM/lcssa-ssa-promoter.ll b/test/Transforms/LICM/lcssa-ssa-promoter.ll index 5df3ef1..b0cae87 100644 --- a/test/Transforms/LICM/lcssa-ssa-promoter.ll +++ b/test/Transforms/LICM/lcssa-ssa-promoter.ll @@ -44,7 +44,7 @@ inner.body.rhs: ; CHECK-NEXT: br label %inner.latch inner.latch: - %y_val = load i32* @y, align 4 + %y_val = load i32, i32* @y, align 4 %icmp = icmp eq i32 %y_val, 0 br i1 %icmp, label %inner.exit, label %inner.header ; CHECK: inner.latch: diff --git a/test/Transforms/LICM/scalar-promote-memmodel.ll b/test/Transforms/LICM/scalar-promote-memmodel.ll index 23d70f5..3603c25 100644 --- a/test/Transforms/LICM/scalar-promote-memmodel.ll +++ b/test/Transforms/LICM/scalar-promote-memmodel.ll @@ -19,12 +19,12 @@ for.body: ; preds = %for.cond br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body - %tmp3 = load i32* @g, align 4 + %tmp3 = load i32, i32* @g, align 4 %inc = add nsw i32 %tmp3, 1 store i32 %inc, i32* @g, align 4 br label %for.inc -; CHECK: load i32* +; CHECK: load i32, i32* ; CHECK-NEXT: add ; CHECK-NEXT: store i32 diff --git a/test/Transforms/LICM/scalar_promote.ll b/test/Transforms/LICM/scalar_promote.ll index 80afb3c..6ef4bac 100644 --- a/test/Transforms/LICM/scalar_promote.ll +++ b/test/Transforms/LICM/scalar_promote.ll @@ -8,13 +8,13 @@ Entry: br label %Loop ; CHECK-LABEL: @test1( ; CHECK: Entry: -; CHECK-NEXT: load i32* @X +; CHECK-NEXT: load i32, i32* @X ; CHECK-NEXT: br label %Loop Loop: ; preds = %Loop, %0 %j = phi i32 [ 0, %Entry ], [ %Next, %Loop ] ; <i32> [#uses=1] - %x = load i32* @X ; <i32> [#uses=1] + %x = load i32, i32* @X ; <i32> [#uses=1] %x2 = add i32 %x, 1 ; <i32> [#uses=1] store i32 %x2, i32* @X %Next = add i32 %j, 1 ; <i32> [#uses=2] @@ -35,14 +35,14 @@ Entry: br label %Loop ; CHECK-LABEL: @test2( ; CHECK: Entry: -; CHECK-NEXT: %.promoted = load i32* getelementptr inbounds (i32* @X, i64 1) +; CHECK-NEXT: %.promoted = load i32, i32* getelementptr inbounds (i32, i32* @X, i64 1) ; CHECK-NEXT: br label %Loop Loop: ; preds = %Loop, %0 - %X1 = getelementptr i32* @X, i64 1 ; <i32*> [#uses=1] - %A = load i32* %X1 ; <i32> [#uses=1] + %X1 = getelementptr i32, i32* @X, i64 1 ; <i32*> [#uses=1] + %A = load i32, i32* %X1 ; <i32> [#uses=1] %V = add i32 %A, 1 ; <i32> [#uses=1] - %X2 = getelementptr i32* @X, i64 1 ; <i32*> [#uses=1] + %X2 = getelementptr i32, i32* @X, i64 1 ; <i32*> [#uses=1] store i32 %V, i32* %X2 br i1 false, label %Loop, label %Exit @@ -50,7 +50,7 @@ Exit: ; preds = %Loop ret void ; CHECK: Exit: ; CHECK-NEXT: %[[LCSSAPHI:.*]] = phi i32 [ %V -; CHECK-NEXT: store i32 %[[LCSSAPHI]], i32* getelementptr inbounds (i32* @X, i64 1) +; CHECK-NEXT: store i32 %[[LCSSAPHI]], i32* getelementptr inbounds (i32, i32* @X, i64 1) ; CHECK-NEXT: ret void } @@ -61,7 +61,7 @@ define void @test3(i32 %i) { br label %Loop Loop: ; Should not promote this to a register - %x = load volatile i32* @X + %x = load volatile i32, i32* @X %x2 = add i32 %x, 1 store i32 %x2, i32* @X br i1 true, label %Out, label %Loop @@ -82,15 +82,15 @@ define void @test4(i8* %x, i8 %n) { br label %loop loop: - %tmp = getelementptr i8* %x, i64 8 + %tmp = getelementptr i8, i8* %x, i64 8 store i8* %tmp, i8** %handle2 br label %subloop subloop: %count = phi i8 [ 0, %loop ], [ %nextcount, %subloop ] - %offsetx2 = load i8** %handle2 + %offsetx2 = load i8*, i8** %handle2 store i8 %n, i8* %offsetx2 - %newoffsetx2 = getelementptr i8* %offsetx2, i64 -1 + %newoffsetx2 = getelementptr i8, i8* %offsetx2, i64 -1 store i8* %newoffsetx2, i8** %handle2 %nextcount = add i8 %count, 1 %innerexitcond = icmp sge i8 %nextcount, 8 @@ -105,14 +105,14 @@ subloop: ; CHECK: br i1 innerexit: - %offsetx1 = load i8** %handle1 - %val = load i8* %offsetx1 + %offsetx1 = load i8*, i8** %handle1 + %val = load i8, i8* %offsetx1 %cond = icmp eq i8 %val, %n br i1 %cond, label %exit, label %loop ; Should not have promoted offsetx1 loads. ; CHECK: innerexit: -; CHECK: %val = load i8* %offsetx1 +; CHECK: %val = load i8, i8* %offsetx1 ; CHECK: %cond = icmp eq i8 %val, %n ; CHECK: br i1 %cond, label %exit, label %loop @@ -125,13 +125,13 @@ Entry: br label %Loop ; CHECK-LABEL: @test5( ; CHECK: Entry: -; CHECK-NEXT: load i32* @X +; CHECK-NEXT: load i32, i32* @X ; CHECK-NEXT: br label %Loop Loop: ; preds = %Loop, %0 %j = phi i32 [ 0, %Entry ], [ %Next, %Loop ] ; <i32> [#uses=1] - %x = load i32* @X ; <i32> [#uses=1] + %x = load i32, i32* @X ; <i32> [#uses=1] %x2 = add i32 %x, 1 ; <i32> [#uses=1] store i32 %x2, i32* @X @@ -164,9 +164,9 @@ for.body.lr.ph: ; preds = %entry for.body: ; preds = %for.body.lr.ph, %for.body %storemerge2 = phi i32 [ 0, %for.body.lr.ph ], [ %inc, %for.body ] %idxprom = sext i32 %storemerge2 to i64 - %arrayidx = getelementptr inbounds float* %a, i64 %idxprom + %arrayidx = getelementptr inbounds float, float* %a, i64 %idxprom store float 0.000000e+00, float* %arrayidx, align 4, !tbaa !3 - %0 = load i32* %gi, align 4, !tbaa !0 + %0 = load i32, i32* %gi, align 4, !tbaa !0 %inc = add nsw i32 %0, 1 store i32 %inc, i32* %gi, align 4, !tbaa !0 %cmp = icmp slt i32 %inc, %n @@ -179,7 +179,7 @@ for.end: ; preds = %for.cond.for.end_cr ret void ; CHECK: for.body.lr.ph: -; CHECK-NEXT: %gi.promoted = load i32* %gi, align 4, !tbaa !0 +; CHECK-NEXT: %gi.promoted = load i32, i32* %gi, align 4, !tbaa !0 ; CHECK: for.cond.for.end_crit_edge: ; CHECK-NEXT: %[[LCSSAPHI:.*]] = phi i32 [ %inc ; CHECK-NEXT: store i32 %[[LCSSAPHI]], i32* %gi, align 4, !tbaa !0 diff --git a/test/Transforms/LICM/sinking.ll b/test/Transforms/LICM/sinking.ll index d7a8fcd..02bf584 100644 --- a/test/Transforms/LICM/sinking.ll +++ b/test/Transforms/LICM/sinking.ll @@ -93,7 +93,7 @@ Entry: br label %Loop Loop: ; preds = %Loop, %Entry %N_addr.0.pn = phi i32 [ %dec, %Loop ], [ %N, %Entry ] - %tmp.6 = load i32* @X ; <i32> [#uses=1] + %tmp.6 = load i32, i32* @X ; <i32> [#uses=1] %dec = add i32 %N_addr.0.pn, -1 ; <i32> [#uses=1] %tmp.1 = icmp ne i32 %N_addr.0.pn, 1 ; <i1> [#uses=1] br i1 %tmp.1, label %Loop, label %Out @@ -101,7 +101,7 @@ Out: ; preds = %Loop ret i32 %tmp.6 ; CHECK-LABEL: @test5( ; CHECK: Out: -; CHECK-NEXT: %tmp.6.le = load i32* @X +; CHECK-NEXT: %tmp.6.le = load i32, i32* @X ; CHECK-NEXT: ret i32 %tmp.6.le } @@ -118,15 +118,15 @@ Out: ; preds = %Loop define i32 @test6() { br label %Loop Loop: - %dead = getelementptr %Ty* @X2, i64 0, i32 0 - %sunk2 = load i32* %dead + %dead = getelementptr %Ty, %Ty* @X2, i64 0, i32 0 + %sunk2 = load i32, i32* %dead br i1 false, label %Loop, label %Out Out: ; preds = %Loop ret i32 %sunk2 ; CHECK-LABEL: @test6( ; CHECK: Out: -; CHECK-NEXT: %dead.le = getelementptr %Ty* @X2, i64 0, i32 0 -; CHECK-NEXT: %sunk2.le = load i32* %dead.le +; CHECK-NEXT: %dead.le = getelementptr %Ty, %Ty* @X2, i64 0, i32 0 +; CHECK-NEXT: %sunk2.le = load i32, i32* %dead.le ; CHECK-NEXT: ret i32 %sunk2.le } @@ -174,7 +174,7 @@ Entry: Loop: ; preds = %Cont, %Entry br i1 %C1, label %Cont, label %exit1 Cont: ; preds = %Loop - %X = load i32* %P ; <i32> [#uses=2] + %X = load i32, i32* %P ; <i32> [#uses=2] store i32 %X, i32* %Q %V = add i32 %X, 1 ; <i32> [#uses=1] br i1 %C2, label %Loop, label %exit2 @@ -242,7 +242,7 @@ Out: ; preds = %Loop define void @test11() { br label %Loop Loop: - %dead = getelementptr %Ty* @X2, i64 0, i32 0 + %dead = getelementptr %Ty, %Ty* @X2, i64 0, i32 0 br i1 false, label %Loop, label %Out Out: ret void @@ -261,36 +261,36 @@ entry: l1.header: %iv = phi i64 [ %iv.next, %l1.latch ], [ 0, %entry ] - %arrayidx.i = getelementptr inbounds [1 x i32]* @c, i64 0, i64 %iv + %arrayidx.i = getelementptr inbounds [1 x i32], [1 x i32]* @c, i64 0, i64 %iv br label %l2.header l2.header: - %x0 = load i1* %c, align 4 + %x0 = load i1, i1* %c, align 4 br i1 %x0, label %l1.latch, label %l3.preheader l3.preheader: br label %l3.header l3.header: - %x1 = load i1* %d, align 4 + %x1 = load i1, i1* %d, align 4 br i1 %x1, label %l2.latch, label %l4.preheader l4.preheader: br label %l4.header l4.header: - %x2 = load i1* %a + %x2 = load i1, i1* %a br i1 %x2, label %l3.latch, label %l4.body l4.body: call void @f(i32* %arrayidx.i) - %x3 = load i1* %b + %x3 = load i1, i1* %b %l = trunc i64 %iv to i32 br i1 %x3, label %l4.latch, label %exit l4.latch: call void @g() - %x4 = load i1* %b, align 4 + %x4 = load i1, i1* %b, align 4 br i1 %x4, label %l4.header, label %exit l3.latch: diff --git a/test/Transforms/LICM/speculate.ll b/test/Transforms/LICM/speculate.ll index 6926669..91b5a25 100644 --- a/test/Transforms/LICM/speculate.ll +++ b/test/Transforms/LICM/speculate.ll @@ -12,14 +12,14 @@ entry: for.body: ; preds = %entry, %for.inc %i.02 = phi i64 [ %inc, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %p, i64 %i.02 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %p, i64 %i.02 + %0 = load i32, i32* %arrayidx, align 4 %tobool = icmp eq i32 %0, 0 br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body %div = udiv i64 %x, 2 - %arrayidx1 = getelementptr inbounds i64* %q, i64 %i.02 + %arrayidx1 = getelementptr inbounds i64, i64* %q, i64 %i.02 store i64 %div, i64* %arrayidx1, align 8 br label %for.inc @@ -44,14 +44,14 @@ entry: for.body: ; preds = %entry, %for.inc %i.02 = phi i64 [ %inc, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %p, i64 %i.02 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %p, i64 %i.02 + %0 = load i32, i32* %arrayidx, align 4 %tobool = icmp eq i32 %0, 0 br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body %div = udiv i64 %x, %m - %arrayidx1 = getelementptr inbounds i64* %q, i64 %i.02 + %arrayidx1 = getelementptr inbounds i64, i64* %q, i64 %i.02 store i64 %div, i64* %arrayidx1, align 8 br label %for.inc @@ -78,14 +78,14 @@ entry: for.body: ; preds = %entry, %for.inc %i.02 = phi i64 [ %inc, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %p, i64 %i.02 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %p, i64 %i.02 + %0 = load i32, i32* %arrayidx, align 4 %tobool = icmp eq i32 %0, 0 br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body %div = sdiv i64 %x, 2 - %arrayidx1 = getelementptr inbounds i64* %q, i64 %i.02 + %arrayidx1 = getelementptr inbounds i64, i64* %q, i64 %i.02 store i64 %div, i64* %arrayidx1, align 8 br label %for.inc @@ -111,14 +111,14 @@ entry: for.body: ; preds = %entry, %for.inc %i.02 = phi i64 [ %inc, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %p, i64 %i.02 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %p, i64 %i.02 + %0 = load i32, i32* %arrayidx, align 4 %tobool = icmp eq i32 %0, 0 br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body %div = sdiv i64 %x, %or - %arrayidx1 = getelementptr inbounds i64* %q, i64 %i.02 + %arrayidx1 = getelementptr inbounds i64, i64* %q, i64 %i.02 store i64 %div, i64* %arrayidx1, align 8 br label %for.inc @@ -144,14 +144,14 @@ entry: for.body: ; preds = %entry, %for.inc %i.02 = phi i64 [ %inc, %for.inc ], [ 0, %entry ] - %arrayidx = getelementptr inbounds i32* %p, i64 %i.02 - %0 = load i32* %arrayidx, align 4 + %arrayidx = getelementptr inbounds i32, i32* %p, i64 %i.02 + %0 = load i32, i32* %arrayidx, align 4 %tobool = icmp eq i32 %0, 0 br i1 %tobool, label %for.inc, label %if.then if.then: ; preds = %for.body %div = sdiv i64 %x, %and - %arrayidx1 = getelementptr inbounds i64* %q, i64 %i.02 + %arrayidx1 = getelementptr inbounds i64, i64* %q, i64 %i.02 store i64 %div, i64* %arrayidx1, align 8 br label %for.inc diff --git a/test/Transforms/LICM/volatile-alias.ll b/test/Transforms/LICM/volatile-alias.ll index df7f0a9..fda930d 100644 --- a/test/Transforms/LICM/volatile-alias.ll +++ b/test/Transforms/LICM/volatile-alias.ll @@ -2,9 +2,9 @@ ; The objects *p and *q are aliased to each other, but even though *q is ; volatile, *p can be considered invariant in the loop. Check if it is moved ; out of the loop. -; CHECK: load i32* %p +; CHECK: load i32, i32* %p ; CHECK: for.body: -; CHECK: load volatile i32* %q +; CHECK: load volatile i32, i32* %q target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" @@ -24,30 +24,30 @@ entry: br label %for.cond for.cond: ; preds = %for.inc, %entry - %0 = load i32* %i, align 4 - %1 = load i32* %n.addr, align 4 + %0 = load i32, i32* %i, align 4 + %1 = load i32, i32* %n.addr, align 4 %cmp = icmp slt i32 %0, %1 br i1 %cmp, label %for.body, label %for.end for.body: ; preds = %for.cond - %2 = load i32** %p.addr, align 8 - %3 = load i32* %2, align 4 - %4 = load i32** %q.addr, align 8 - %5 = load volatile i32* %4, align 4 + %2 = load i32*, i32** %p.addr, align 8 + %3 = load i32, i32* %2, align 4 + %4 = load i32*, i32** %q.addr, align 8 + %5 = load volatile i32, i32* %4, align 4 %add = add nsw i32 %3, %5 - %6 = load i32* %s, align 4 + %6 = load i32, i32* %s, align 4 %add1 = add nsw i32 %6, %add store i32 %add1, i32* %s, align 4 br label %for.inc for.inc: ; preds = %for.body - %7 = load i32* %i, align 4 + %7 = load i32, i32* %i, align 4 %inc = add nsw i32 %7, 1 store i32 %inc, i32* %i, align 4 br label %for.cond for.end: ; preds = %for.cond - %8 = load i32* %s, align 4 + %8 = load i32, i32* %s, align 4 ret i32 %8 } |