mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-15 07:59:57 +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.
|
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