From c49c08f7475e436d316e7818d2df48f783e45195 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Fri, 28 Dec 2007 22:59:48 +0000 Subject: [PATCH] Test -simplifycfg only. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45389 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../SimplifyCFG/2007-12-21-Crash.ll | 67 ++++++------------- 1 file changed, 22 insertions(+), 45 deletions(-) diff --git a/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll b/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll index 31a22f55ece..fe1ca80468b 100644 --- a/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll +++ b/test/Transforms/SimplifyCFG/2007-12-21-Crash.ll @@ -1,58 +1,35 @@ -; RUN: llvm-as < %s | opt -std-compile-opts -disable-output - +;RUN: llvm-as < %s | opt -simplifycfg -disable-output 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" -define i32 @bork() { +define i32 @bork() nounwind { entry: - %retval = alloca i32 ; [#uses=2] - %opt = alloca i32 ; [#uses=3] - %undo = alloca i32 ; [#uses=3] - %tmp = alloca i32 ; [#uses=3] - %"alloca point" = bitcast i32 0 to i32 ; [#uses=0] - store i32 0, i32* %undo, align 4 + br label %bb5.outer + +bb5.outer.loopexit: ; preds = %bb5 + br label %bb5.outer + +bb5.outer: ; preds = %bb5.outer.loopexit, %entry + %undo.0.ph = phi i32 [ 0, %entry ], [ 1, %bb5.outer.loopexit ] ; [#uses=1] br label %bb5 -bb: ; preds = %bb5 - %tmp1 = load i32* %opt, align 4 ; [#uses=1] - switch i32 %tmp1, label %bb4 [ - i32 102, label %bb3 - i32 110, label %bb2 +bb5: ; preds = %bb5, %bb5.outer + %tmp6 = tail call i32 (...)* @foo( ) nounwind ; [#uses=1] + switch i32 %tmp6, label %bb13 [ + i32 -1, label %bb10 + i32 102, label %bb5 + i32 110, label %bb5.outer.loopexit ] -bb2: ; preds = %bb - store i32 1, i32* %undo, align 4 - br label %bb3 - -bb3: ; preds = %bb2, %bb - br label %bb5 - -bb4: ; preds = %bb - store i32 258, i32* %tmp, align 4 - br label %bb13 - -bb5: ; preds = %bb3, %entry - %tmp6 = call i32 (...)* @foo( ) nounwind ; [#uses=1] - store i32 %tmp6, i32* %opt, align 4 - %tmp7 = load i32* %opt, align 4 ; [#uses=1] - %tmp8 = icmp ne i32 %tmp7, -1 ; [#uses=1] - %tmp89 = zext i1 %tmp8 to i8 ; [#uses=1] - %toBool = icmp ne i8 %tmp89, 0 ; [#uses=1] - br i1 %toBool, label %bb, label %bb10 - bb10: ; preds = %bb5 - %tmp11 = load i32* %undo, align 4 ; [#uses=1] - %tmp12 = call i32 (...)* @bar( i32 %tmp11 ) nounwind ; [#uses=0] - store i32 1, i32* %tmp, align 4 - br label %bb13 + %tmp12 = tail call i32 (...)* @bar( i32 %undo.0.ph ) nounwind ; [#uses=0] + br label %UnifiedReturnBlock -bb13: ; preds = %bb10, %bb4 - %tmp14 = load i32* %tmp, align 4 ; [#uses=1] - store i32 %tmp14, i32* %retval, align 4 - br label %return +bb13: ; preds = %bb5 + br label %UnifiedReturnBlock -return: ; preds = %bb13 - %retval15 = load i32* %retval ; [#uses=1] - ret i32 %retval15 +UnifiedReturnBlock: ; preds = %bb13, %bb10 + %UnifiedRetVal = phi i32 [ 1, %bb10 ], [ 258, %bb13 ] ; [#uses=1] + ret i32 %UnifiedRetVal } declare i32 @foo(...)