This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

A workaround for PR 19038





The attached patch implements loop header copying in the RTL level
to work around the problem in http://gcc.gnu.org/PR19038
I know that this patch is controversial, but it could be added
at first at -O3 (or -O2) and disabled after the final fix in
out-of-ssa. Anyhow, I thought it would be helpful to put the
patch on the mailing list.
Currently this patch buy us improvements of 3.5% on SPEC (a 66%
for 176.gcc benchmark) on a G5 machine.  Compile time wasn't
affected by this patch, following are the compile time results
on a G5:

% time gcc -c -O3 generate-3.4.ii
53.140u 1.590s 0:54.70 100.0%   0+0k 0+12io 0pf+0w
% time gcc -c -frtl-loop-hc -O3 generate-3.4.ii
53.140u 1.670s 0:54.82 99.9%    0+0k 0+11io 0pf+0w
% time ./compile_i_files.sh gcc
150.220u 15.050s 2:45.46 99.8%  0+0k 0+124io 0pf+0w
% time ./compile_i_files.sh gcc -frtl-loop-hc
150.340u 14.850s 2:45.53 99.7%  0+0k 0+115io 0pf+0w
% time ./compile_i_files.sh gcc -O3
656.550u 33.980s 11:30.50 100.0%        0+0k 0+296io 0pf+0w
% time ./compile_i_files.sh gcc -O3 -frtl-loop-hc
658.510u 35.090s 11:33.77 99.9% 0+0k 0+313io 0pf+0w

Mostafa.


(See attached file: rtl_loop_ch.patch)

Attachment: rtl_loop_ch.patch
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]