diff options
author | Owen Anderson <resistor@mac.com> | 2006-06-12 07:05:47 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2006-06-12 07:05:47 +0000 |
commit | b083af644892fe76b74509096c47e86af4a9b651 (patch) | |
tree | c7e5ccd746a796e5014e86a5e43bdbfe1b6f5866 /test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll | |
parent | c2cc15cf9d926b8de41dabba86005a55806127a0 (diff) | |
download | llvm-b083af644892fe76b74509096c47e86af4a9b651.tar.gz llvm-b083af644892fe76b74509096c47e86af4a9b651.tar.bz2 llvm-b083af644892fe76b74509096c47e86af4a9b651.tar.xz |
Make sure that LCSSA works properly when it encounters an exit block that has
more than one predecessor inside the loop.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28749 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll')
-rw-r--r-- | test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll b/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll new file mode 100644 index 0000000000..83a0f9f380 --- /dev/null +++ b/test/Transforms/LCSSA/2006-06-12-MultipleExitsSameBlock.ll @@ -0,0 +1,28 @@ +; RUN: llvm-as < %s | opt -lcssa | llvm-dis | grep "%X.1.lcssa" && +; RUN: llvm-as < %s | opt -lcssa | llvm-dis | not grep "%X.1.lcssa1" + +declare bool %c1() +declare bool %c2() + +int %foo() { +entry: + br label %loop_begin + +loop_begin: + br bool true, label %loop_body.1, label %loop_exit2 + +loop_body.1: + %X.1 = add int 0, 1 + %rel.1 = call bool %c1() + br bool %rel.1, label %loop_exit, label %loop_body.2 + +loop_body.2: + %rel.2 = call bool %c2() + br bool %rel.2, label %loop_exit, label %loop_begin + +loop_exit: + ret int %X.1 + +loop_exit2: + ret int 1 +} |