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]

spec2000 regression


Hi,
if you take look at Andreas automated tester (http://www.suse.de/~aj/SPEC) you
will see considerable performance regression at 10th. Take a look at for
instance VPR benchmark.  The ChangeLog of day regression came is attached.
Looking at the patches, only following appears to be relevant:
+ Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * sibcall.c (return_value_pseudo): New static variable.
+       (skip_copy_to_return_value): Handle return_value_pseudo.
+       (call_ends_block_p): Ensure that return_value_pseudo is set.
+       (optimize_sibling_and_tail_recursive_call): Discover the
+       load of pseudo return value in alternate exit block.
+

+ Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * predict.def: Set hitrates according our experimental run.
+

+ Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
+
+       * i386.h (HARD_REGNO_RENAME_OK): New macro.

+ 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
+
+       * alias.c (get_alias_set): Return a previously calculated
+       alias set for a VAR_DECL.
+       * function.c (gen_mem_addressof): Calculate the alias set before
+       touching the RTL.

Other appears that they should not affect i386 C code quality considerably.
Andreas kindly tested reverting my patches to sibcall.c and i386.h and
got no improvements in the performance (and few regressions).

Predict.def patch should be no-op also, as the regression appears even in
the profile driven tests.

So remaining patch I can't analyze completely is yours to alias.c
I've failed to find the corresponding email at gcc-patches mailing list
(even when I believe I've went across it in the pass), so please can
you double-check the patch and try to explain me what exactly it is
shooting for?

I am not claiming that it must be the problematic ones, but I don't have
time currently to investigate too much more and the regression is considerable.
The Andrea's benchmarks for reverted patch has been a bit strange, so
it is still possible that sibcall patch cause it - in case we generate
considerably worse code when sibcall optimization suceeds.  This is weird
too.

Thanks a lot!
Honza
Index: gcc/ChangeLog
===================================================================
RCS file: /cvs/gcc/gcc/gcc/ChangeLog,v
retrieving revision 1.10938
retrieving revision 1.10961
diff -c -p -r1.10938 -r1.10961
*** ChangeLog	2001/08/07 20:37:26	1.10938
--- ChangeLog	2001/08/08 23:33:49	1.10961
***************
*** 1,3 ****
--- 1,204 ----
+ 2001-08-08  Anthony Green  <green@redhat.com>
+ 
+ 	* java/class.c (emit_register_classes): Use assemble_jcr if
+ 	possible.  Keep the original mechanism as a fallback.
+ 	* defaults.h (JCR_SECTION_NAME): Define if we have named section
+ 	and weak symbol support.
+ 	* crtstuff.c (__JCR_LIST__): Define.
+ 	(__JCR_END__): Define.
+ 	(_Jv_RegiserClasses): Define weak symbol if possible.
+ 	(__do_global_ctors_aux): Register classes for ELF targets with
+ 	weak symbol support.
+ 
+ 2001-08-08  Kazu Hirata  <kazu@hxi.com>
+ 
+ 	* dbxout.c: Fix comment formatting.
+ 	* dependence.c: Likewise.
+ 	* df.c: Likewise.
+ 	* diagnostic.c: Likewise.
+ 	* dominance.c: Likewise.
+ 	* doprint.c: Likewise.
+ 	* dwarf2out.c: Likewise.
+ 	* dwarfout.c: Likewise.
+ 	* emit-rtl.c: Likewise.
+ 	* except.c: Likewise.
+ 	* explow.c: Likewise.
+ 	* expmed.c: Likewise.
+ 	* expr.c: Likewise.
+ 	* flow.c: Likewise.
+ 	* fold-const.c: Likewise.
+ 	* function.c: Likewise.
+ 
+ 2001-08-08  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+ 
+ 	* global.c (retry_global_alloc): Avoid shadowing allocno.
+ 
+ 2001-08-08  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	* except.c (remove_fixup_regions): Fix typo.
+ 
+ 2001-08-08  Jan van Male <jan.vanmale@fenk.wau.nl>
+ 
+         * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to
+ 	unsigned HOST_WIDE_INT to avoid warning.
+         * final.c (final): Cast INSN_UID to unsigned to avoid warning.
+         * flow.c (set_block_for_new_insns): Likewise.
+ 
+ Wed Aug  8 21:08:14 CEST 2001  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* sibcall.c (return_value_pseudo): New static variable.
+ 	(skip_copy_to_return_value): Handle return_value_pseudo.
+ 	(call_ends_block_p): Ensure that return_value_pseudo is set.
+ 	(optimize_sibling_and_tail_recursive_call): Discover the
+ 	load of pseudo return value in alternate exit block.
+ 
+ Wed Aug  8 21:06:43 CEST 2001  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* calls.c (ECF_ALWAYS_RETURN): New constant.
+ 	(emit_call_1): Add REG_ALWAYS_RETURN note if needed.
+ 	(expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func.
+ 	(emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN.
+ 	* flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN.
+ 	* rtl.c (reg_note_name): New name.
+ 	* rtl.h (enum reg_note): Add REG_ALWAYS_RETURN.
+ 
+ 2001-08-07  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses.
+ 
+ 2001-08-08  Jason Merrill  <jason_merrill@redhat.com>
+ 
+ 	* alias.c (get_alias_set): Return a previously calculated
+ 	alias set for a VAR_DECL.
+ 	* function.c (gen_mem_addressof): Calculate the alias set before
+ 	touching the RTL.
+ 
+ Wed Aug  8 18:44:37 CEST 2001  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* predict.def: Set hitrates according our experimental run.
+ 
+ Wed Aug  8 18:01:58 CEST 2001  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* i386.h (HARD_REGNO_RENAME_OK): New macro.

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