Re: 40% performance regression SPEC2006/leslie3d on gcc-4_2-branch

2007-02-17 Thread H. J. Lu
On Sat, Feb 17, 2007 at 01:35:28PM +0300, Vladimir Sysoev wrote:
> Hello, Daniel
> 
> It looks like your changeset listed bellow makes performance
> regression ~40% on SPEC2006/leslie3d. I will try to create minimal
> test for this issue this week and update you in any case.
> 

That is a known issue:

http://gcc.gnu.org/ml/gcc/2007-01/msg00408.html


H.J.


Re: Makefile.def and fixincludes/Makefile.in inconsistency?

2007-02-17 Thread Brooks Moses

Paolo Bonzini wrote:
Am I correct in guessing that the "missing" lines in Makefile.def are 
not currently needed?  Or are they merely present in the GCC fixincludes 
but missing in the fixincludes directories in some other trees that 
share the top-level build files?


Yes, a patch that removes the "missing" lines for "info", "dvi", "pdf", 
"installcheck" (not "install-info" and "TAGS" is preapproved).  Please 
test it with a "make info", "make dvi", "make pdf" and "make 
installcheck" from the toplevel.


Thanks!  I'll do that, as soon as I get a chance to test it (which will 
probably be next week, since my build tree is currently borked with 
another makefile patch I'm working on.)


- Brooks



messages in objective-C

2007-02-17 Thread Come Lonfils
Hello,

I've already asked some questions about the messages in objective-c. But I 
still not understand all.

When a program is running, and I send a message to an object, how is it done in 
gcc to sent this message to the good object and to execute the good method. 
Which structures are used to do it?

I see the objc_msg_lookup in sendmsg.c but where is it call?
I also see two hash lists (nst_method_hash_list and cls_method_hash_list) I 
think they are use to store messages at runtime but I don't understand how they 
are used.

Sorry my question is quite general but I don't know very much gcc. Can't juste 
someone help me to understand a bit more and to put me on the right way.

Thanks very much

Côme Lonfils


Re: 40% performance regression SPEC2006/leslie3d on gcc-4_2-branch

2007-02-17 Thread David Edelsohn
> Vladimir Sysoev writes:

Vladimir> It looks like your changeset listed bellow makes performance
Vladimir> regression ~40% on SPEC2006/leslie3d. I will try to create minimal
Vladimir> test for this issue this week and update you in any case.

I believe that this is known and expected.  GCC 4.2 includes some
conservative alias analysis fixes for correctness that hurt performance.

David



40% performance regression SPEC2006/leslie3d on gcc-4_2-branch

2007-02-17 Thread Vladimir Sysoev

Hello, Daniel

It looks like your changeset listed bellow makes performance
regression ~40% on SPEC2006/leslie3d. I will try to create minimal
test for this issue this week and update you in any case.

Feel free to ask if any question.

FYI:
Hardware is Core2Duo.

Compiler config
Target: x86_64-redhat-linux
Configured with: ../src/configure
--prefix=/home/vlad/sandbox/bin_search/117891/usr --program-suffix=-42
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-languages=fortran --disable-multilib --with-system-zlib
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.2.0 20061019 (experimental)



r117891 | dberlin | 2006-10-20 03:05:53 +0400 (Fri, 20 Oct 2006) | 61 lines

2006-10-19  Daniel Berlin  <[EMAIL PROTECTED]>

   Fix PR tree-optimization/28778
   Fix PR tree-optimization/29156
   Fix PR tree-optimization/29415
   * tree.h (DECL_PTA_ARTIFICIAL): New macro.
   (tree_decl_with_vis): Add artificial_pta_var flag.
   * tree-ssa-alias.c (is_escape_site): Remove alias info argument,
   pushed into callers.
   * tree-ssa-structalias.c (nonlocal_for_type): New variable.
   (nonlocal_all): Ditto.
   (struct variable_info): Add directly_dereferenced member.
   (var_escaped_vars): New variable.
   (escaped_vars_tree): Ditto.
   (escaped_vars_id): Ditto.
   (nonlocal_vars_id): Ditto.
   (new_var_info): Set directly_dereferenced.
   (graph_size): New variable
   (build_constraint_graph): Use graph_size.
   (solve_graph): Don't process constraints that cannot change the
   solution, don't try to propagate an empty solution to our
   successors.
   (process_constraint): Set directly_dereferenced.
   (could_have_pointers): New function.
   (get_constraint_for_component_ref): Don't process STRING_CST.
   (nonlocal_lookup): New function.
   (nonlocal_insert): Ditto.
   (create_nonlocal_var): Ditto.
   (get_nonlocal_id_for_type): Ditto.
   (get_constraint_for): Allow results vector to be empty in the case
   of string constants.
   Handle results of calls properly.
   (update_alias_info): Update alias info stats on number and type of
   calls.
   (find_func_aliases): Use could_have_pointers.
   (make_constraint_from_escaped): Renamed from
   make_constraint_to_anything, and changed to make constraints from
   escape variable.
   (make_constraint_to_escaped): New function.
   (find_global_initializers): Ditto.
   (create_variable_info_for): Make constraint from escaped to any
   global variable, and from any global variable to the set of
   escaped vars.
   (intra_create_variable_infos): Deal with escaped instead of
   pointing to anything.
   (set_uids_in_ptset): Do type pruning on directly dereferenced
   variables.
   (find_what_p_points_to): Adjust call to set_uids_with_ptset.
   (init_base_vars): Fix comment, and initialize escaped_vars.
   (need_to_solve): Removed.
   (find_escape_constraints): New function.
   (expand_nonlocal_solutions): Ditto.
   (compute_points_to_sets): Call find_escape_constraints and
   expand_nonlocal_solutions.
   (delete_points_to_sets): Don't fall off the end of the graph.
   (init_alias_heapvars): Initialize nonlocal_for_type and
   nonlocal_all.
   (delete_alias_heapvars): Free nonlocal_for_type and null out
   nonlocal_all.



[

--
- Vladimir