40% performance regression SPEC2006/leslie3d on gcc-4_2-branch
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
Re: 40% performance regression SPEC2006/leslie3d on gcc-4_2-branch
> 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
messages in objective-C
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: Makefile.def and fixincludes/Makefile.in inconsistency?
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
Re: 40% performance regression SPEC2006/leslie3d on gcc-4_2-branch
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.