From e96466ecc0b2bdee0bed2156e12dc16f4adb2d50 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Mon, 25 Nov 2013 05:23:10 +0000 Subject: Merging r195493: ------------------------------------------------------------------------ r195493 | arsenm | 2013-11-22 11:24:39 -0800 (Fri, 22 Nov 2013) | 6 lines StructurizeCFG: Fix verification failure with some loops. If the beginning of the loop was also the entry block of the function, branches were inserted to the entry block which isn't allowed. If this occurs, create a new dummy function entry block that branches to the start of the loop. ------------------------------------------------------------------------ git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_34@195606 91177308-0d34-0410-b5e6-96231b3b80d8 --- .../StructurizeCFG/no-branch-to-entry.ll | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 test/Transforms/StructurizeCFG/no-branch-to-entry.ll (limited to 'test/Transforms') diff --git a/test/Transforms/StructurizeCFG/no-branch-to-entry.ll b/test/Transforms/StructurizeCFG/no-branch-to-entry.ll new file mode 100644 index 0000000000..2e22c87153 --- /dev/null +++ b/test/Transforms/StructurizeCFG/no-branch-to-entry.ll @@ -0,0 +1,31 @@ +; RUN: opt -S -o - -structurizecfg < %s | FileCheck %s + +; CHECK-LABEL: @no_branch_to_entry_undef( +; CHECK: entry: +; CHECK-NEXT: br label %entry.orig +define void @no_branch_to_entry_undef(i32 addrspace(1)* %out) { +entry: + br i1 undef, label %for.end, label %for.body + +for.body: ; preds = %entry, %for.body + store i32 999, i32 addrspace(1)* %out, align 4 + br label %for.body + +for.end: ; preds = %Flow + ret void +} + +; CHECK-LABEL: @no_branch_to_entry_true( +; CHECK: entry: +; CHECK-NEXT: br label %entry.orig +define void @no_branch_to_entry_true(i32 addrspace(1)* %out) { +entry: + br i1 true, label %for.end, label %for.body + +for.body: ; preds = %entry, %for.body + store i32 999, i32 addrspace(1)* %out, align 4 + br label %for.body + +for.end: ; preds = %Flow + ret void +} -- cgit v1.2.3