[Bug rtl-optimization/78634] New: [7 Regression] 30% performance drop after r242832.
ysrumyan at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Dec 1 14:49:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78634
Bug ID: 78634
Summary: [7 Regression] 30% performance drop after r242832.
Product: gcc
Version: 7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: ysrumyan at gmail dot com
Target Milestone: ---
Created attachment 40215
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40215&action=edit
test-case to reproduce
We noticed a huge performance regression on x86 for one important benchmark
(the reproduced for which is attached). It is caused by additional
if-conversion which can be seen in ce2 dump:
IF-THEN-ELSE-JOIN block found, pass 1, test 12, then 13, else 14, join 15
scanning new insn with uid = 163.
scanning new insn with uid = 164.
scanning new insn with uid = 165.
scanning new insn with uid = 166.
scanning new insn with uid = 167.
scanning new insn with uid = 168.
scanning new insn with uid = 169.
if-conversion succeeded through noce_try_cmove_arith
deleting insn with uid = 85.
deleting block 14
Removing jump 78.
deleting insn with uid = 78.
deleting insn with uid = 80.
deleting block 13
Merging block 15 into block 12...
changing bb of uid 87
changing bb of uid 88
from 15 to 12
changing bb of uid 89
from 15 to 12
Merged blocks 12 and 15.
Conversion succeeded on pass 1.
On AVX2 machine we see:
time ./test1.1124.exe // build by compiler before r242832.
real 0m0.577s
user 0m0.575s
sys 0m0.002s
time ./test1.1125.exe // build by compiler after r242832.
real 0m0.888s
user 0m0.886s
sys 0m0.001s
It is sufficient to compile it with -Ofast option to reproduce on x86.
More information about the Gcc-bugs
mailing list