Cute example from Chris Lattner.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31696 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Nick Lewycky 2006-11-13 00:23:28 +00:00
parent b39a55a2e7
commit bf63734a1b

View File

@ -360,3 +360,43 @@ are turned into memcpy calls at the source level. We need a "loops to memcpy"
pass. 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.
//===---------------------------------------------------------------------===//