(RFA): Enable first scheduling pass for SH4
Sanjiv Kumar Gupta, Noida
sanjivg@noida.hcltech.com
Wed Sep 3 08:28:00 GMT 2003
Hi,
The attached patch enables the first scheduling pass for SH4.
The insn movement is throttled taking the register pressure
heuristics into account. The earlier discussion on this topic
is at
http://gcc.gnu.org/ml/gcc/2003-04/threads.html#01445
The overall idea is to keep
count of SImode and SFmode regs required by
already scheduled insns. When these counts cross
some threshold values; give higher priority to insns
that free registers. The insn that frees registers is most
likely to be the insn with lowest LUID (original insn order);
but such an insn might be there in the stalled queue (Q)
instead of the ready queue (R). To solve this, we skip cycles
upto a max of 8 cycles so that such insns may move from
Q -> R.
The results seem good. We get significant performance gain
on some benchmarks (GSM compression, JPEG compression). The
performance data is attached.
The figures are average execution timings (in seconds)for
sample data, run several times. The % reduction
in time is also indicated.
=========================================================
Benchmark -fno-schedule-insns -fschedule-insns
=========================================================
Gsm compression 31.83 26.16 (+17 %)
Gsm decompression 17.72 16.94 (+4.4 %)
cjpeg -dct int 2.30 2.34 (-1.7 %)
cjpeg -dct float 2.12 2.19 (-3 %)
djpeg -dct int 1.53 1.45 (+5 %)
djpeg -dct float 1.69 1.42 (+15 %)
gzip 225 222 (+1 %)
gunzip 17.30 16.69 (+3.5 %)
Mpg123 1.29 1.26 (+2%)
---------------------------------------------------------
HINT (results in QUIPS)
-----------------------
INT 5102029.742473 5349600.780303(+4.8 %)
FLOAT 4769935.443263 5049562.236025(+5.8 %)
DOUBLE 3296055.498210 3271869.361460(-0.7 %)
===========================================================
The patch is regtested for SH. This is enabled for SH4 only at the moment.
Comments and reactions awaited.
Regards,
--Sanjiv.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ChangeLog.ISP1
Type: application/octet-stream
Size: 877 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030903/302bd7e9/attachment.obj>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: PATCH_20030902.txt
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20030903/302bd7e9/attachment.txt>
More information about the Gcc-patches
mailing list