diff options
author | Nick Lewycky <nicholas@mxc.ca> | 2010-08-08 07:04:25 +0000 |
---|---|---|
committer | Nick Lewycky <nicholas@mxc.ca> | 2010-08-08 07:04:25 +0000 |
commit | b1e4eebec03f71f3c891ba384b5992f3d65e3591 (patch) | |
tree | 7ca628d881632e0a1b9eb622b3342326a877a202 /lib/Target/README.txt | |
parent | 1bb580a3aa7f1643a9e2968ada6b78da7527b162 (diff) | |
download | llvm-b1e4eebec03f71f3c891ba384b5992f3d65e3591.tar.gz llvm-b1e4eebec03f71f3c891ba384b5992f3d65e3591.tar.bz2 llvm-b1e4eebec03f71f3c891ba384b5992f3d65e3591.tar.xz |
Add optimization to Target/README.txt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110543 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/README.txt')
-rw-r--r-- | lib/Target/README.txt | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 4d7ee08de1..4faf8bcfd4 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -1919,5 +1919,21 @@ something like the following, which eliminates a branch: ret .LBB0_2: jmp foo # TAILCALL +//===---------------------------------------------------------------------===// +Given a branch where the two target blocks are identical ("ret i32 %b" in +both), simplifycfg will simplify them away. But not so for a switch statement: + +define i32 @f(i32 %a, i32 %b) nounwind readnone { +entry: + switch i32 %a, label %bb3 [ + i32 4, label %bb + i32 6, label %bb + ] +bb: ; preds = %entry, %entry + ret i32 %b + +bb3: ; preds = %entry + ret i32 %b +} //===---------------------------------------------------------------------===// |