[llvm] r275742 - [GVN] Move other PRE tests to a subdirectory.
Davide Italiano via llvm-commits
llvm-commits at lists.llvm.org
Sun Jul 17 16:55:21 PDT 2016
Author: davide
Date: Sun Jul 17 18:55:20 2016
New Revision: 275742
URL: http://llvm.org/viewvc/llvm-project?rev=275742&view=rev
Log:
[GVN] Move other PRE tests to a subdirectory.
Added:
llvm/trunk/test/Transforms/GVN/PRE/2009-02-17-LoadPRECrash.ll
- copied, changed from r275741, llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
llvm/trunk/test/Transforms/GVN/PRE/2009-06-17-InvalidPRE.ll
- copied, changed from r275741, llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
llvm/trunk/test/Transforms/GVN/PRE/local-pre.ll
- copied, changed from r275741, llvm/trunk/test/Transforms/GVN/local-pre.ll
llvm/trunk/test/Transforms/GVN/PRE/pre-basic-add.ll
- copied, changed from r275741, llvm/trunk/test/Transforms/GVN/pre-basic-add.ll
llvm/trunk/test/Transforms/GVN/PRE/pre-single-pred.ll
- copied, changed from r275741, llvm/trunk/test/Transforms/GVN/pre-single-pred.ll
Removed:
llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
llvm/trunk/test/Transforms/GVN/local-pre.ll
llvm/trunk/test/Transforms/GVN/pre-basic-add.ll
llvm/trunk/test/Transforms/GVN/pre-single-pred.ll
Removed: llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll?rev=275741&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll (original)
+++ llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll (removed)
@@ -1,193 +0,0 @@
-; RUN: opt < %s -gvn -enable-load-pre -disable-output
-
- %struct.VEC_rtx_base = type { i32, i32, [1 x %struct.rtx_def*] }
- %struct.VEC_rtx_gc = type { %struct.VEC_rtx_base }
- %struct.block_symbol = type { [3 x %struct.cgraph_rtl_info], %struct.object_block*, i64 }
- %struct.cgraph_rtl_info = type { i32 }
- %struct.object_block = type { %struct.section*, i32, i64, %struct.VEC_rtx_gc*, %struct.VEC_rtx_gc* }
- %struct.rtvec_def = type { i32, [1 x %struct.rtx_def*] }
- %struct.rtx_def = type { i16, i8, i8, %struct.u }
- %struct.section = type { %struct.unnamed_section }
- %struct.u = type { %struct.block_symbol }
- %struct.unnamed_section = type { %struct.cgraph_rtl_info, void (i8*)*, i8*, %struct.section* }
-
-declare %struct.rtvec_def* @gen_rtvec(i32, ...)
-
-declare %struct.rtx_def* @plus_constant(%struct.rtx_def*, i64)
-
-declare %struct.rtx_def* @gen_rtx_fmt_Ei(i32, i32, %struct.rtvec_def*, i32)
-
-declare i32 @local_symbolic_operand(%struct.rtx_def*, i32)
-
-define %struct.rtx_def* @legitimize_pic_address(%struct.rtx_def* %orig, %struct.rtx_def* %reg) nounwind {
-entry:
- %addr = alloca %struct.rtx_def* ; <%struct.rtx_def**> [#uses=5]
- %iftmp.1532 = alloca %struct.rtx_def* ; <%struct.rtx_def**> [#uses=3]
- store %struct.rtx_def* %orig, %struct.rtx_def** null
- %0 = load %struct.rtx_def*, %struct.rtx_def** null, align 4 ; <%struct.rtx_def*> [#uses=0]
- br i1 false, label %bb96, label %bb59
-
-bb59: ; preds = %entry
- %1 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4 ; <%struct.rtx_def*> [#uses=1]
- %2 = call i32 @local_symbolic_operand(%struct.rtx_def* %1, i32 0) nounwind ; <i32> [#uses=0]
- br i1 false, label %bb96, label %bb63
-
-bb63: ; preds = %bb59
- br i1 false, label %bb64, label %bb74
-
-bb64: ; preds = %bb63
- br i1 false, label %bb72, label %bb65
-
-bb65: ; preds = %bb64
- br label %bb72
-
-bb72: ; preds = %bb65, %bb64
- br label %bb74
-
-bb74: ; preds = %bb72, %bb63
- br i1 false, label %bb75, label %bb76
-
-bb75: ; preds = %bb74
- br label %bb76
-
-bb76: ; preds = %bb75, %bb74
- br i1 false, label %bb77, label %bb84
-
-bb77: ; preds = %bb76
- %3 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0 ; <%struct.cgraph_rtl_info*> [#uses=0]
- unreachable
-
-bb84: ; preds = %bb76
- br i1 false, label %bb85, label %bb86
-
-bb85: ; preds = %bb84
- br label %bb87
-
-bb86: ; preds = %bb84
- br label %bb87
-
-bb87: ; preds = %bb86, %bb85
- %4 = call %struct.rtx_def* @gen_rtx_fmt_Ei(i32 16, i32 0, %struct.rtvec_def* null, i32 1) nounwind ; <%struct.rtx_def*> [#uses=0]
- br i1 false, label %bb89, label %bb90
-
-bb89: ; preds = %bb87
- br label %bb91
-
-bb90: ; preds = %bb87
- br label %bb91
-
-bb91: ; preds = %bb90, %bb89
- br i1 false, label %bb92, label %bb93
-
-bb92: ; preds = %bb91
- br label %bb94
-
-bb93: ; preds = %bb91
- br label %bb94
-
-bb94: ; preds = %bb93, %bb92
- unreachable
-
-bb96: ; preds = %bb59, %entry
- %5 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4 ; <%struct.rtx_def*> [#uses=1]
- %6 = getelementptr %struct.rtx_def, %struct.rtx_def* %5, i32 0, i32 0 ; <i16*> [#uses=1]
- %7 = load i16, i16* %6, align 2 ; <i16> [#uses=0]
- br i1 false, label %bb147, label %bb97
-
-bb97: ; preds = %bb96
- %8 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4 ; <%struct.rtx_def*> [#uses=0]
- br i1 false, label %bb147, label %bb99
-
-bb99: ; preds = %bb97
- unreachable
-
-bb147: ; preds = %bb97, %bb96
- %9 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4 ; <%struct.rtx_def*> [#uses=1]
- %10 = getelementptr %struct.rtx_def, %struct.rtx_def* %9, i32 0, i32 0 ; <i16*> [#uses=1]
- %11 = load i16, i16* %10, align 2 ; <i16> [#uses=0]
- br i1 false, label %bb164, label %bb148
-
-bb148: ; preds = %bb147
- br i1 false, label %bb164, label %bb149
-
-bb149: ; preds = %bb148
- br i1 false, label %bb150, label %bb152
-
-bb150: ; preds = %bb149
- unreachable
-
-bb152: ; preds = %bb149
- br label %bb164
-
-bb164: ; preds = %bb152, %bb148, %bb147
- %12 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 1 ; <%struct.cgraph_rtl_info*> [#uses=0]
- br i1 false, label %bb165, label %bb166
-
-bb165: ; preds = %bb164
- br label %bb167
-
-bb166: ; preds = %bb164
- br label %bb167
-
-bb167: ; preds = %bb166, %bb165
- br i1 false, label %bb211, label %bb168
-
-bb168: ; preds = %bb167
- br i1 false, label %bb211, label %bb170
-
-bb170: ; preds = %bb168
- br i1 false, label %bb172, label %bb181
-
-bb172: ; preds = %bb170
- br i1 false, label %bb179, label %bb174
-
-bb174: ; preds = %bb172
- br i1 false, label %bb177, label %bb175
-
-bb175: ; preds = %bb174
- br i1 false, label %bb177, label %bb176
-
-bb176: ; preds = %bb175
- br label %bb178
-
-bb177: ; preds = %bb175, %bb174
- br label %bb178
-
-bb178: ; preds = %bb177, %bb176
- br label %bb180
-
-bb179: ; preds = %bb172
- br label %bb180
-
-bb180: ; preds = %bb179, %bb178
- br label %bb181
-
-bb181: ; preds = %bb180, %bb170
- %13 = call %struct.rtvec_def* (i32, ...) @gen_rtvec(i32 1, %struct.rtx_def* null) nounwind ; <%struct.rtvec_def*> [#uses=0]
- unreachable
-
-bb211: ; preds = %bb168, %bb167
- %14 = load %struct.rtx_def*, %struct.rtx_def** %addr, align 4 ; <%struct.rtx_def*> [#uses=0]
- %15 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* null, i32 0, i32 0 ; <%struct.cgraph_rtl_info*> [#uses=0]
- store %struct.rtx_def* null, %struct.rtx_def** null, align 4
- br i1 false, label %bb212, label %bb213
-
-bb212: ; preds = %bb211
- store %struct.rtx_def* null, %struct.rtx_def** %iftmp.1532, align 4
- br label %bb214
-
-bb213: ; preds = %bb211
- store %struct.rtx_def* null, %struct.rtx_def** %iftmp.1532, align 4
- br label %bb214
-
-bb214: ; preds = %bb213, %bb212
- %16 = bitcast %struct.block_symbol* null to [1 x %struct.cgraph_rtl_info]* ; <[1 x %struct.cgraph_rtl_info]*> [#uses=1]
- %17 = getelementptr [1 x %struct.cgraph_rtl_info], [1 x %struct.cgraph_rtl_info]* %16, i32 0, i32 1 ; <%struct.cgraph_rtl_info*> [#uses=0]
- %18 = load %struct.rtx_def*, %struct.rtx_def** %iftmp.1532, align 4 ; <%struct.rtx_def*> [#uses=0]
- %19 = getelementptr %struct.rtx_def, %struct.rtx_def* null, i32 0, i32 3 ; <%struct.u*> [#uses=1]
- %20 = getelementptr %struct.u, %struct.u* %19, i32 0, i32 0 ; <%struct.block_symbol*> [#uses=1]
- %21 = bitcast %struct.block_symbol* %20 to [1 x i64]* ; <[1 x i64]*> [#uses=1]
- %22 = getelementptr [1 x i64], [1 x i64]* %21, i32 0, i32 0 ; <i64*> [#uses=0]
- %23 = call %struct.rtx_def* @plus_constant(%struct.rtx_def* null, i64 0) nounwind ; <%struct.rtx_def*> [#uses=0]
- unreachable
-}
Removed: llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll?rev=275741&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll (original)
+++ llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll (removed)
@@ -1,73 +0,0 @@
-; RUN: opt < %s -gvn -enable-load-pre -S | FileCheck %s
-; CHECK-NOT: pre1
-; GVN load pre was hoisting the loads at %13 and %16 up to bb4.outer.
-; This is invalid as it bypasses the check for %m.0.ph==null in bb4.
-; ModuleID = 'mbuf.c'
-target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
-target triple = "i386-apple-darwin9.6"
- %struct.mbuf = type { %struct.mbuf*, %struct.mbuf*, i32, i8*, i16, i16, i32 }
-
-define void @m_adj(%struct.mbuf* %mp, i32 %req_len) nounwind optsize {
-entry:
- %0 = icmp eq %struct.mbuf* %mp, null ; <i1> [#uses=1]
- %1 = icmp slt i32 %req_len, 0 ; <i1> [#uses=1]
- %or.cond = or i1 %1, %0 ; <i1> [#uses=1]
- br i1 %or.cond, label %return, label %bb4.preheader
-
-bb4.preheader: ; preds = %entry
- br label %bb4.outer
-
-bb2: ; preds = %bb1
- %2 = sub i32 %len.0, %13 ; <i32> [#uses=1]
- %3 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 2 ; <i32*> [#uses=1]
- store i32 0, i32* %3, align 4
- %4 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 0 ; <%struct.mbuf**> [#uses=1]
- %5 = load %struct.mbuf*, %struct.mbuf** %4, align 4 ; <%struct.mbuf*> [#uses=1]
- br label %bb4.outer
-
-bb4.outer: ; preds = %bb4.preheader, %bb2
- %m.0.ph = phi %struct.mbuf* [ %5, %bb2 ], [ %mp, %bb4.preheader ] ; <%struct.mbuf*> [#uses=7]
- %len.0.ph = phi i32 [ %2, %bb2 ], [ %req_len, %bb4.preheader ] ; <i32> [#uses=1]
- %6 = icmp ne %struct.mbuf* %m.0.ph, null ; <i1> [#uses=1]
- %7 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 2 ; <i32*> [#uses=1]
- %8 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 2 ; <i32*> [#uses=1]
- %9 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 3 ; <i8**> [#uses=1]
- %10 = getelementptr %struct.mbuf, %struct.mbuf* %m.0.ph, i32 0, i32 3 ; <i8**> [#uses=1]
- br label %bb4
-
-bb4: ; preds = %bb4.outer, %bb3
- %len.0 = phi i32 [ 0, %bb3 ], [ %len.0.ph, %bb4.outer ] ; <i32> [#uses=6]
- %11 = icmp sgt i32 %len.0, 0 ; <i1> [#uses=1]
- %12 = and i1 %11, %6 ; <i1> [#uses=1]
- br i1 %12, label %bb1, label %bb7
-
-bb1: ; preds = %bb4
- %13 = load i32, i32* %7, align 4 ; <i32> [#uses=3]
- %14 = icmp sgt i32 %13, %len.0 ; <i1> [#uses=1]
- br i1 %14, label %bb3, label %bb2
-
-bb3: ; preds = %bb1
- %15 = sub i32 %13, %len.0 ; <i32> [#uses=1]
- store i32 %15, i32* %8, align 4
- %16 = load i8*, i8** %9, align 4 ; <i8*> [#uses=1]
- %17 = getelementptr i8, i8* %16, i32 %len.0 ; <i8*> [#uses=1]
- store i8* %17, i8** %10, align 4
- br label %bb4
-
-bb7: ; preds = %bb4
- %18 = getelementptr %struct.mbuf, %struct.mbuf* %mp, i32 0, i32 5 ; <i16*> [#uses=1]
- %19 = load i16, i16* %18, align 2 ; <i16> [#uses=1]
- %20 = zext i16 %19 to i32 ; <i32> [#uses=1]
- %21 = and i32 %20, 2 ; <i32> [#uses=1]
- %22 = icmp eq i32 %21, 0 ; <i1> [#uses=1]
- br i1 %22, label %return, label %bb8
-
-bb8: ; preds = %bb7
- %23 = sub i32 %req_len, %len.0 ; <i32> [#uses=1]
- %24 = getelementptr %struct.mbuf, %struct.mbuf* %mp, i32 0, i32 6 ; <i32*> [#uses=1]
- store i32 %23, i32* %24, align 4
- ret void
-
-return: ; preds = %bb7, %entry
- ret void
-}
Copied: llvm/trunk/test/Transforms/GVN/PRE/2009-02-17-LoadPRECrash.ll (from r275741, llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/2009-02-17-LoadPRECrash.ll?p2=llvm/trunk/test/Transforms/GVN/PRE/2009-02-17-LoadPRECrash.ll&p1=llvm/trunk/test/Transforms/GVN/2009-02-17-LoadPRECrash.ll&r1=275741&r2=275742&rev=275742&view=diff
==============================================================================
(empty)
Copied: llvm/trunk/test/Transforms/GVN/PRE/2009-06-17-InvalidPRE.ll (from r275741, llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/2009-06-17-InvalidPRE.ll?p2=llvm/trunk/test/Transforms/GVN/PRE/2009-06-17-InvalidPRE.ll&p1=llvm/trunk/test/Transforms/GVN/2009-06-17-InvalidPRE.ll&r1=275741&r2=275742&rev=275742&view=diff
==============================================================================
(empty)
Copied: llvm/trunk/test/Transforms/GVN/PRE/local-pre.ll (from r275741, llvm/trunk/test/Transforms/GVN/local-pre.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/local-pre.ll?p2=llvm/trunk/test/Transforms/GVN/PRE/local-pre.ll&p1=llvm/trunk/test/Transforms/GVN/local-pre.ll&r1=275741&r2=275742&rev=275742&view=diff
==============================================================================
(empty)
Copied: llvm/trunk/test/Transforms/GVN/PRE/pre-basic-add.ll (from r275741, llvm/trunk/test/Transforms/GVN/pre-basic-add.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/pre-basic-add.ll?p2=llvm/trunk/test/Transforms/GVN/PRE/pre-basic-add.ll&p1=llvm/trunk/test/Transforms/GVN/pre-basic-add.ll&r1=275741&r2=275742&rev=275742&view=diff
==============================================================================
(empty)
Copied: llvm/trunk/test/Transforms/GVN/PRE/pre-single-pred.ll (from r275741, llvm/trunk/test/Transforms/GVN/pre-single-pred.ll)
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/PRE/pre-single-pred.ll?p2=llvm/trunk/test/Transforms/GVN/PRE/pre-single-pred.ll&p1=llvm/trunk/test/Transforms/GVN/pre-single-pred.ll&r1=275741&r2=275742&rev=275742&view=diff
==============================================================================
(empty)
Removed: llvm/trunk/test/Transforms/GVN/local-pre.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/local-pre.ll?rev=275741&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/GVN/local-pre.ll (original)
+++ llvm/trunk/test/Transforms/GVN/local-pre.ll (removed)
@@ -1,22 +0,0 @@
-; RUN: opt < %s -gvn -enable-pre -S | FileCheck %s
-
-define i32 @main(i32 %p, i32 %q) {
-block1:
- %cmp = icmp eq i32 %p, %q
- br i1 %cmp, label %block2, label %block3
-
-block2:
- %a = add i32 %p, 1
- br label %block4
-
-block3:
- br label %block4
-; CHECK: %.pre = add i32 %p, 1
-; CHECK-NEXT: br label %block4
-
-block4:
- %b = add i32 %p, 1
- ret i32 %b
-; CHECK: %b.pre-phi = phi i32 [ %.pre, %block3 ], [ %a, %block2 ]
-; CHECK-NEXT: ret i32 %b.pre-phi
-}
Removed: llvm/trunk/test/Transforms/GVN/pre-basic-add.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/pre-basic-add.ll?rev=275741&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/GVN/pre-basic-add.ll (original)
+++ llvm/trunk/test/Transforms/GVN/pre-basic-add.ll (removed)
@@ -1,32 +0,0 @@
-; RUN: opt < %s -gvn -enable-pre -S | FileCheck %s
-
- at H = common global i32 0 ; <i32*> [#uses=2]
- at G = common global i32 0 ; <i32*> [#uses=1]
-
-define i32 @test() nounwind {
-entry:
- %0 = load i32, i32* @H, align 4 ; <i32> [#uses=2]
- %1 = call i32 (...) @foo() nounwind ; <i32> [#uses=1]
- %2 = icmp ne i32 %1, 0 ; <i1> [#uses=1]
- br i1 %2, label %bb, label %bb1
-
-bb: ; preds = %entry
- %3 = add i32 %0, 42 ; <i32> [#uses=1]
-; CHECK: %.pre = add i32 %0, 42
- store i32 %3, i32* @G, align 4
- br label %bb1
-
-bb1: ; preds = %bb, %entry
- %4 = add i32 %0, 42 ; <i32> [#uses=1]
- store i32 %4, i32* @H, align 4
- br label %return
-
-; CHECK: %.pre-phi = phi i32 [ %.pre, %entry.bb1_crit_edge ], [ %3, %bb ]
-; CHECK-NEXT: store i32 %.pre-phi, i32* @H, align 4
-; CHECK-NEXT: ret i32 0
-
-return: ; preds = %bb1
- ret i32 0
-}
-
-declare i32 @foo(...)
Removed: llvm/trunk/test/Transforms/GVN/pre-single-pred.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/GVN/pre-single-pred.ll?rev=275741&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/GVN/pre-single-pred.ll (original)
+++ llvm/trunk/test/Transforms/GVN/pre-single-pred.ll (removed)
@@ -1,45 +0,0 @@
-; RUN: opt < %s -gvn -enable-load-pre -S | FileCheck %s
-; This testcase assumed we'll PRE the load into %for.cond, but we don't actually
-; verify that doing so is safe. If there didn't _happen_ to be a load in
-; %for.end, we would actually be lengthening the execution on some paths, and
-; we were never actually checking that case. Now we actually do perform some
-; conservative checking to make sure we don't make paths longer, but we don't
-; currently get this case, which we got lucky on previously.
-;
-; Now that that faulty assumption is corrected, test that we DON'T incorrectly
-; hoist the load. Doing the right thing for the wrong reasons is still a bug.
-
- at p = external global i32
-define i32 @f(i32 %n) nounwind {
-entry:
- br label %for.cond
-
-for.cond: ; preds = %for.inc, %entry
- %i.0 = phi i32 [ 0, %entry ], [ %indvar.next, %for.inc ] ; <i32> [#uses=2]
- %cmp = icmp slt i32 %i.0, %n ; <i1> [#uses=1]
- br i1 %cmp, label %for.body, label %for.cond.for.end_crit_edge
-
-for.cond.for.end_crit_edge: ; preds = %for.cond
- br label %for.end
-
-; CHECK: for.body:
-; CHECK-NEXT: %tmp3 = load i32, i32* @p
-for.body: ; preds = %for.cond
- %tmp3 = load i32, i32* @p ; <i32> [#uses=1]
- %dec = add i32 %tmp3, -1 ; <i32> [#uses=2]
- store i32 %dec, i32* @p
- %cmp6 = icmp slt i32 %dec, 0 ; <i1> [#uses=1]
- br i1 %cmp6, label %for.body.for.end_crit_edge, label %for.inc
-
-; CHECK: for.body.for.end_crit_edge:
-for.body.for.end_crit_edge: ; preds = %for.body
- br label %for.end
-
-for.inc: ; preds = %for.body
- %indvar.next = add i32 %i.0, 1 ; <i32> [#uses=1]
- br label %for.cond
-
-for.end: ; preds = %for.body.for.end_crit_edge, %for.cond.for.end_crit_edge
- %tmp9 = load i32, i32* @p ; <i32> [#uses=1]
- ret i32 %tmp9
-}
More information about the llvm-commits
mailing list