[google] Merged google/main -> google/gcc-4_6 rev 173605

Diego Novillo dnovillo@google.com
Tue May 10 18:49:00 GMT 2011


This merge brings all the changes in google/main up to rev
173605.

Validated on x86_64.


Diego.

Merged revisions 173258,173353,173395,173398,173411,173416,173499,173504,173526,173605 via svnmerge from 
svn+ssh://gcc.gnu.org/svn/gcc/branches/google/main

........
  r173258 | cgd | 2011-05-02 12:34:02 -0400 (Mon, 02 May 2011) | 5 lines
  
  2011-05-02  Chris Demetriou  <cgd@google.com>
  
          * config/i386/i386.c (get_pc_thunk_name): Make 32-bit
          thunk prefix be __x86.get_pc_thunk.
........
  r173353 | davidxl | 2011-05-04 00:15:49 -0400 (Wed, 04 May 2011) | 1 line
  
  backport 173177,173147 etc from trunk
........
  r173395 | eraman | 2011-05-04 17:02:51 -0400 (Wed, 04 May 2011) | 23 lines
  
  2011-05-04  Silvius Rus  <silvius.rus@gmail.com>
  
  	* doc/invoke.texi: Document -fprofile-generate-sampling option.
  	* gcov-io.h (__gcov_set_sampling_rate): New declaration.
  	* profile.c (branch_prob): Add support for sampled profile
  	collection.
  	* profile.h (add_sampling_to_edge_counters): New declaration.
  	* common.opt (fprofile-generate-sampling): New option.
  	* tree-profile: Include header files; define EDGE_COUNTER_STMT_COUNT.
  	(instrumentation_to_be_sampled, gcov_sample_counter_decl)
  	(gcov_sampling_rate_decl): New globals.
  	(insert_if_then, add_sampling_wrapper, is_instrumentation_to_be_sampled)
  	(add_sampling_to_edge_counters, gimple_init_instrumentation_sampling):
  	New functions.
  	(gimple_init_edge_profiler): Call gimple_init_instrumentation_sampling.
  	(gimple_gen_edge_profiler): Mark start of instrumentation block.
  	* libgcov.c (__gcov_sampling_rate): New extern declaration.
  	(gcov_sampling_rate_initialized, __gcov_sample_counter): New globals.
  	(gcov_exit): Set sampling rate; minor coding style fixes.
  	(__gcov_init): Initialize __gcov_sampling_rate.
  	* params.def (PARAM_PROFILE_GENERATE_SAMPLING_RATE): New parameter.
........
  r173398 | tmsriram | 2011-05-04 18:15:16 -0400 (Wed, 04 May 2011) | 46 lines
  
  2011-05-04  Sriraman Tallam  <tmsriram@google.com>
  
  	* tree-pass.h (pass_tree_convert_builtin_dispatch): New pass.
  	(pass_ipa_multiversion_dispatch): New pass.
  	* builtin-types.def (BT_PTR_FN_INT): New pointer type.
  	(BT_FN_INT_PTR_FN_INT_PTR_PTR_VAR): New function type for __builtin_dispatch.
  	* builtins.def (BUILT_IN_DISPATCH): New builtin to
  	support multi-version calls.
  	* mversn-dispatch.c: New file.
  	* timevar.def (TV_MVERSN_DISPATCH): New time var.
  	* common.opt (fclone-hot-version-paths): New flag.
  	* Makefile.in (mversn-dispatch.o): New rule.
  	* passes.c (init_optimization_passes): Add the new
  	multi-version and dispatch passes to the pass list.
  	* params.def (PARAM_NUMBER_OF_MVERSN_CLONES): Define.
  	(PARAM_MVERSN_CLONE_CGRAPH_DEPTH): Define.
  	* doc/invoke.texi (mversn-clone-depth): Document.
  	(num-mversn-clones): Document.
  	(fclone-hot-version-paths): Document.
  	* c-family/c-common.c (handle_version_selector_attribute): New function.
  	(c_common_attribute_table): New attribute "version_selector".
  	* testsuite/gcc.dg/mversn7.c: New test.
  	* testsuite/gcc.dg/mversn4.c: New test.
  	* testsuite/gcc.dg/mversn4.h: New test.
  	* testsuite/gcc.dg/mversn4a.c: New test.
  	* testsuite/gcc.dg/torture/mversn1.c: New test.
  	* testsuite/gcc.dg/mversn2.c: New test.
  	* testsuite/gcc.dg/mversn6.c: New test.
  	* testsuite/gcc.dg/mversn3.c: New test.
  	* testsuite/g++.dg/mversn8.C: New test.
  	* testsuite/g++.dg/mversn10a.C: New test.
  	* testsuite/g++.dg/mversn14a.C: New test.
  	* testsuite/g++.dg/tree-prof/mversn13.C: New test.
  	* testsuite/g++.dg/tree-prof/mversn15.C: New test.
  	* testsuite/g++.dg/tree-prof/mversn15a.C: New test.
  	* testsuite/g++.dg/mversn9.C: New test.
  	* testsuite/g++.dg/mversn10.C: New test.
  	* testsuite/g++.dg/mversn12.C: New test.
  	* testsuite/g++.dg/mversn14.C: New test.
  	* testsuite/g++.dg/mversn16.C: New test.
  	* testsuite/g++.dg/torture/mversn11.C: New test.
  	* testsuite/g++.dg/torture/mversn5.C: New test.
  	* testsuite/g++.dg/torture/mversn5.h: New test.
  	* testsuite/g++.dg/torture/mversn5a.C: New test.
........
  r173411 | cgd | 2011-05-04 21:47:55 -0400 (Wed, 04 May 2011) | 14 lines
  
  2011-05-04  Chris Demetriou  <cgd@google.com>
  
  	Backport from trunk r173391:
  	2011-05-04  Chris Demetriou  <cgd@google.com>
  
  	* config/i386/morestack.S (__i686.get_pc_thunk.bx): Rename to...
  	(__x86.get_pc_thunk.bx): ...this.
  	(__morestack): Adjust for rename, remove undef of __i686.
  
  	Backport from trunk r173345:
  	2011-05-03  Chris Demetriou  <cgd@google.com>
  
  	* config/i386/morestack.S (__i686.get_pc_thunk.bx): New.
........
  r173416 | davidxl | 2011-05-05 01:43:59 -0400 (Thu, 05 May 2011) | 1 line
  
  LIPO option handling
........
  r173499 | eraman | 2011-05-06 14:09:21 -0400 (Fri, 06 May 2011) | 37 lines
  
  2011-05-06  Easwaran Raman  <eraman@google.com>
  
  Backport r172837:
  
  	* cfgexpand.c (stack_var): Remove OFFSET...
  	(add_stack_var): ...and its reference here...
  	(expand_stack_vars): ...and here.
  	(stack_var_cmp): Sort by descending order of size.
  	(partition_stack_vars): Change heuristic.
  	(union_stack_vars): Fix to reflect changes in
  	partition_stack_vars.
  	(dump_stack_var_partition): Add newline after each partition.
  	
  2011-05-06  Easwaran Raman  <eraman@google.com>
  
  Backport r172788:
  
  	* cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
  	containing union type only with -fstrict-aliasing.
  
  testsuite/Changelog.google-main:
  
  2011-05-06  Easwaran Raman  <eraman@google.com>
  
  Backport r172837:
  
  	* gcc.dg/stack-layout-2.c: New test.
  	
  2011-05-06  Easwaran Raman  <eraman@google.com>
  
  Backport r172788:
  
  	* gcc.dg/stack-layout-1.c: New test.
........
  r173504 | eraman | 2011-05-06 14:33:38 -0400 (Fri, 06 May 2011) | 3 lines
  
  Fix indentation of some Changelog entries.
........
  r173526 | crowl | 2011-05-06 21:49:53 -0400 (Fri, 06 May 2011) | 135 lines
  
  Upgrade timevar reporting.
  
  gcc/ChangeLog.google-main
  
  2011-05-06  Lawrence Crowl  <crowl@google.com>
  
  	* timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
  	(timevar_cond_start): New for starting a timer only when it is not
  	already running.
  	(timevar_cond_stop): New for stopping a timer when it was not already
  	running.
  
  	* timevar.c (timevar_stop): Enable start/stop timers to start again.
  	(timevar_cond_start): New as above.
  	(timevar_cond_stop): New as above.
  
  	* timevar.def: Add start/stop timers for compiler phases,
  	TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
  	TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
  	and TV_PHASE_FINALIZE.
  	Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
  	Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
  	TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
  	Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
  	Make unused TV_OVERLOAD into a start/stop timer.
  
  	Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
  	Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
  	to indicate that they are start/stop timers.
  
  	* toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
  	Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
  	Move initialization to do_compile.
  	(do_compile): Add initialization from above.
  	Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
  
  	* c-decl.c (c_write_global_declarations): Add start/stop of
  	TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
  
  	* c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
  	or TV_PARSE_INLINE, as appropriate.
  	(c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
  	(c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
  
  gcc/cp/ChangeLog.google-main
  
  2011-05-06  Lawrence Crowl  <crowl@google.com>
  
  	* decl.c: (push_local_name): Change TV_NAME_LOOKUP to start/stop.
  	(poplevel): Refactor POP_TIMEVAR_AND_RETURN to plain code.
  	Change TV_NAME_LOOKUP to start/stop.
  	(define_label): Refactor timevar calls out to a wrapper function.
  	Change TV_NAME_LOOKUP to start/stop.
  	(xref_tag): Likewise.
  	(lookup_label): Refactor timevar calls out to a wrapper function.
  	Change TV_NAME_LOOKUP to start_cond/stop_cond.
  
  	* pt.c: (instantiate_class_template): Add a wrapper to push/pop new
  	TV_TEMPLATE_INST.
  	(instantiate_template): Add a wrapper to push/pop new TV_TEMPLATE_INST.
  	(lookup_template_class): Refactor timevar calls out to a wrapper
  	function.  Change use of TV_NAME_LOOKUP to TV_TEMPLATE_INST.
  	(instantiate_decl): Change TV_PARSE to TV_TEMPLATE_INST.
  
  	* name-lookup.c: (store_bindings): Change TV_NAME_LOOKUP to start/stop.
  	(poplevel_class): Change TV_NAME_LOOKUP to start_cond/stop_cond.
  	(push_namespace): Likewise.
  	(pop_nested_namespace): Likewise.
  	(pushdecl_namespace_level): Likewise.
  	(store_class_bindings): Likewise.
  	(push_to_top_level): Likewise.
  	(identifier_type_value): Refactor timevar calls out to a wrapper
  	function.  Change TV_NAME_LOOKUP to start/stop.
  	(find_binding): Likewise.
  	(push_using_decl): Likewise.
  	(lookup_arg_dependent): Likewise.
  	(push_using_directive): Likewise.
  	(qualified_lookup_using_namespace): Refactor POP_TIMEVAR_AND_RETURN
  	to plain code.  Change TV_NAME_LOOKUP to start/stop.
  	(lookup_type_current_level): Likewise.  Refactor inner return to
  	break.
  	(pushdecl_class_level): Refactor POP_TIMEVAR_AND_RETURN to plain
  	code.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
  	(pushdecl_top_level_1): Likewise.
  	(lookup_using_namespace): Likewise.
  	(pushdecl_with_scope): Refactor timevar calls out to a wrapper
  	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.
  	(push_overloaded_decl): Likewise.
  	(push_class_level_binding): Likewise.
  	(namespace_binding): Likewise.
  	(set_namespace_binding): Likewise.
  	(supplement_binding): Likewise.
  	(unqualified_namespace_lookup): Likewise.
  	(lookup_name_real): Likewise.
  	(lookup_type_scope): Likewise.
  	(namespace_ancestor): Likewise.
  	(lookup_name_innermost_nonclass_level): Likewise.
  	(pushtag): Likewise.
  	(pop_from_top_level): Likewise.
  	(pushdecl_maybe_friend): Refactor timevar calls out to a wrapper
  	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Wrap long
  	lines.
  	(add_using_namespace): Refactor timevar calls out to a wrapper
  	function.  Change TV_NAME_LOOKUP to start_cond/stop_cond.  Bypass
  	wrapper on call to self.
  
  	* decl2.c: (cp_write_global_declarations):  Add start/stop of
  	new TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_CHECK_DBGINFO.
  	Remove push/pop calls to TV_VARCONST.
  
  	* parser.c: Add include of "timevar.h".
  	(cp_parser_explicit_instantiation): Add push/pop calls to
  	TV_TEMPLATE_INST.
  	(cp_parser_enum_specifier): Add push/pop calls to new TV_PARSE_ENUM.
  	(cp_parser_class_specifier): Add wrapper to add push/pop calls to
  	TV_PARSE_STRUCT.
  	(cp_parser_function_definition_from_specifiers_and_declarator): Add
  	push/pop calls to new TV_PARSE_FUNC or TV_PARSE_INLINE.
  	(cp_parser_late_parsing_for_member):  Add push/pop calls to
  	new TV_PARSE_INMETH.
  
  	* call.c: Add include of "timevar.h".
  	(convert_class_to_reference): Wrap and add push/pop calls to
  	TV_OVERLOAD.
  	(build_op_call): Likewise.
  	(build_conditional_expr): Likewise.
  	(build_new_op): Likewise.
  	(build_new_method_call): Likewise.
  	(build_user_type_conversion): Reorganize to single return and add
  	push/pop calls to TV_OVERLOAD.
  	(perform_overload_resolution): Likewise.
  
  	* Make-lang.in: Add dependence of call.o and parser.o on $(TIMEVAR_H).
........
  r173605 | eraman | 2011-05-09 22:03:18 -0400 (Mon, 09 May 2011) | 40 lines
  
  2011-05-09  Silvius Rus <silvius.rus@gmail.com>
  
  	* value-prof.c (interesting_stringop_to_profile_p): Disbale
  	stringop profiling if reuse distance profiling is turned on.
  	* value-prof.h (gimple_gen_reusedist, optimize_reusedist): Declare.
  	* gcov-io.h: (GCOV_COUNTER_REUSE_DIST): New counter.
  	(GCOV_COUNTERS): Update.
  	(GCOV_COUNTER_NAMES): Add reuse_distance.
  	(GCOV_MERGE_FUNCTIONS): Add __gcov_merge_reusedist.
  	(__gcov_merge_reusedist): New declaration.
  	* profile.c (branch_prob): Enable reuse distance profiling and
  	optimization.
  	* common.opt (fprofile-reusedist, foptimize-locality): New options.
  	* tree-profile.c: Include params.h.
  	(stringop_subst, reusedist_t): New structures.
  	(stringop_subst_t, reusedist_t): New typedefs.
  	(stringop_decl): New global array.
  	(RD_NUM_COUNTERS): New constant.
  	(get_stringop_subst, reusedist_is_interesting_call)
  	(reusedist_instr_func_name, reusedist_get_instr_decl)
  	(reusedist_make_instr_call, reusedist_from_counters)
  	(gimple_gen_reusedist, nt_op_name, reusedist_get_size_threshold)
  	(reusedist_get_distance_large_threshold)
  	(reusedist_get_distance_small_threshold)
  	(reusedist_get_count_threshold, reusedist_nt_is_worth_it)
  	(reusedist_get_nt_decl, maybe_issue_profile_use_note)
  	(reusedist_maybe_replace_with_nt_version, optimize_reusedist): New
  	functions.
  	(gate_tree_profile_ipa): Return true if reuse distance instrumentation
  	or use is turned on.
  	* Makefile.in (LIBGCOV): Add _gcov_merge_reusedist.
  	* libgcov.c (__gcov_weighted_mean2, __gcov_merge_reusedist): New
  	functions.
  	* params.def (PARAM_REUSEDIST_MEAN_DIST_LARGE_THRESH)
  	(PARAM_REUSEDIST_MEAN_DIST_SMALL_THRESH)
  	(PARAM_REUSEDIST_CALL_COUNT_THRESH, PARAM_REUSEDIST_MEMCPY_SIZE_THRESH)
  	(PARAM_REUSEDIST_MEMSET_SIZE_THRESH): New params.
........



More information about the Gcc mailing list