Add optimization to Target/README.txt.
authorNick Lewycky <nicholas@mxc.ca>
Sun, 8 Aug 2010 07:04:25 +0000 (07:04 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Sun, 8 Aug 2010 07:04:25 +0000 (07:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110543 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/README.txt

index 4d7ee08de1dee3dfc93d4d3e95acfa47bd434f1f..4faf8bcfd419982b438c73c5758e88e8f6840cce 100644 (file)
@@ -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
+}
 //===---------------------------------------------------------------------===//