mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
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:
parent
b39a55a2e7
commit
bf63734a1b
@ -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.
|
||||
|
||||
//===---------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user