mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-26 14:15:53 +00:00
A relatively simple PPC optimization.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33709 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6ffbe17b3c
commit
95b9d6e5d8
@ -595,3 +595,30 @@ register of that class. If it is then later necessary to spill that reg, so be
|
||||
it.
|
||||
|
||||
===-------------------------------------------------------------------------===
|
||||
|
||||
We compile this:
|
||||
int test(_Bool X) {
|
||||
return X ? 524288 : 0;
|
||||
}
|
||||
|
||||
to:
|
||||
_test:
|
||||
cmplwi cr0, r3, 0
|
||||
lis r2, 8
|
||||
li r3, 0
|
||||
beq cr0, LBB1_2 ;entry
|
||||
LBB1_1: ;entry
|
||||
mr r3, r2
|
||||
LBB1_2: ;entry
|
||||
blr
|
||||
|
||||
instead of:
|
||||
_test:
|
||||
addic r2,r3,-1
|
||||
subfe r0,r2,r3
|
||||
slwi r3,r0,19
|
||||
blr
|
||||
|
||||
This sort of thing occurs a lot due to globalopt.
|
||||
|
||||
===-------------------------------------------------------------------------===
|
||||
|
Loading…
Reference in New Issue
Block a user