------- Comment #26 from hubicka at gcc dot gnu dot org 2008-09-06 12:00
-------
IRA seems to fix the remaining problem with spill in internal loop on 32bit
nicely, so we produce good scores for gzip compared to older GCC versions.
http://gcc.opensuse.org/SPEC-britten/CINT/sandbox-britten-32bit/164_gzip_big.png
and with profile feedback
http://gcc.opensuse.org/SPEC-britten/CINT/sandbox-britten-FDO/164_gzip_big.png
we get close to ICC scores.
We now output comparsion loop as:
.L98:
movzbl 1(%eax), %edx #,
leal 1(%eax), %edi #, scan
cmpb 1(%ecx), %dl #,
jne .L161 #,
movzbl 2(%eax), %edx #,
leal 2(%eax), %edi #, scan
cmpb 2(%ecx), %dl #,
jne .L161 #,
movzbl 3(%eax), %edx #,
leal 3(%eax), %edi #, scan
cmpb 3(%ecx), %dl #,
jne .L161 #,
movzbl 4(%eax), %edx #,
leal 4(%eax), %edi #, scan
cmpb 4(%ecx), %dl #,
jne .L161 #,
movzbl 5(%eax), %edx #,
leal 5(%eax), %edi #, scan
cmpb 5(%ecx), %dl #,
jne .L161 #,
movzbl 6(%eax), %edx #,
leal 6(%eax), %edi #, scan
cmpb 6(%ecx), %dl #,
jne .L161 #,
movzbl 7(%eax), %edx #,
leal 7(%eax), %edi #, scan
cmpb 7(%ecx), %dl #,
jne .L161 #,
there is still room for improvement however.
Remaining problem is that we still miss coaliescing of scan_end and scan_end1
(so -fno-tree-dominator-opts -fno-tree-copyrename still helps).
Vladimir, perhaps this can be solved in IRA too?
Honza
--
hubicka at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |vmakarov at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33761