summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorNick Lewycky <nicholas@mxc.ca>2006-11-13 00:23:28 +0000
committerNick Lewycky <nicholas@mxc.ca>2006-11-13 00:23:28 +0000
commit0df2ada9d49aeb9e407773deb1ecfe78a1d9ed1b (patch)
treecb868c434ba155e6e8624b6e76ec998dc155a008 /llvm/lib
parentad75361d42b450f24ea033f8923b9c865fbef86b (diff)
downloadbcm5719-llvm-0df2ada9d49aeb9e407773deb1ecfe78a1d9ed1b.tar.gz
bcm5719-llvm-0df2ada9d49aeb9e407773deb1ecfe78a1d9ed1b.zip
Cute example from Chris Lattner.
llvm-svn: 31696
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/README.txt40
1 files changed, 40 insertions, 0 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt
index 3e5dbf6172d..18cd4f66f26 100644
--- a/llvm/lib/Target/README.txt
+++ b/llvm/lib/Target/README.txt
@@ -360,3 +360,43 @@ are turned into memcpy calls at the source level. We need a "loops to memcpy"
pass.
//===---------------------------------------------------------------------===//
+
+-predsimplify should transform this:
+
+void bad(unsigned x)
+{
+ if (x > 4)
+ bar(12);
+ else if (x > 3)
+ bar(523);
+ else if (x > 2)
+ bar(36);
+ else if (x > 1)
+ bar(65);
+ else if (x > 0)
+ bar(45);
+ else
+ bar(367);
+}
+
+into:
+
+void good(unsigned x)
+{
+ if (x == 4)
+ bar(523);
+ else if (x == 3)
+ bar(36);
+ else if (x == 2)
+ bar(65);
+ else if (x == 1)
+ bar(45);
+ else if (x == 0)
+ bar(367);
+ else
+ bar(12);
+}
+
+to enable further optimizations.
+
+//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud