This is the mail archive of the gcc-patches@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]

Re: [PATCH] Fix combine_givs


Toon Moene <moene@knmi.nl> writes:

>> 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 ?

It seems so - the only patches I see according to the ChangeLog
are:

2001-09-03  Jakub Jelinek  <jakub@redhat.com>

	* loop.c (express_from_1): Fix CONSTANT_P(a) case.

2001-09-03  Richard Henderson  <rth@redhat.com>

	* function.h (struct function): Add arg_pointer_save_area_init.
	* function.c (expand_function_end): Init arg_pointer_save_area.
	(get_arg_pointer_save_area): Do not init arg_pointer_save_area
	when called from a nested function.


> 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) ...

Shouldn't we consider the patch then also for the 3.0 branch?

Thanks Jakub for a small but important patch,
Andreas

P.S. apsi was broken for some days and fixed with Richard's patch.
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


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