This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Fix combine_givs
- To: jakub at redhat dot com
- Subject: Re: [PATCH] Fix combine_givs
- From: Toon Moene <moene at knmi dot nl>
- Date: Tue, 04 Sep 2001 11:25:36 +0000
- CC: gcc-patches at gcc dot gnu dot org
- Organization: Royal Netherlands Meteorological Institute
> When express_from_1 is called with say:
> a = (const:SI (plus:SI (symbol_ref:SI ("b")) (const_int 640
> [0x280])))
> b = (const:SI (plus:SI (symbol_ref:SI ("b")) (const_int 640
> [0x280])))
> mult = (const_int 1 [0x1])
> (as may happen in some gcc versions on the testcase below),
> the result is surprisingly not const0_rtx.
> This causes two different giv registers used for input and output > memory bases ...
Hmm, could it be this patch is responsible for the notable improvements
in performance on swim, applu, sixtrack and (less so) apsi, of the
SPECfp2000 runs reported by Andreas Jaeger ?
See: http://www.suse.de/~aj/SPEC/CFP/d-permanent/index.html
An explanation could be that the conflict you describe above also exists
for any read/modify/write loop of an array in COMMON (or just statically
allocated, i.e. with a compile time constant start address) ...
--
Toon Moene, KNMI, PO Box 201, 3730 AE De Bilt, The Netherlands.
Tel. +31302206443, Fax +31302210407, e-mail moene@knmi.nl
URL: http://www.knmi.nl/hirlam