LIPO clean up to handle ipa_references better
[official-gcc.git] / main / gcc / ChangeLog.google-main
blob2c70671d1ee5a55dfcf08caac097514b6e5b9b59
1 2012-05-14  Xinliang David Li  <davidxl@google.com>
3         Backport r187488 from google/gcc-4_7
4         * cgraphbuild.c (record_reference_to_real_target_from_alias):
5         New function.
6         (mark_address): Record reference to the resolved target node
7         in LIPO mode. Also record reference to alias's real target.
8         (rebuild_cgraph_edges): As above.
9         * cgraph.c (cgraph_clone_edge): Create cgraph edge for
10         indirect call inlining edge properly.
11         * l-ipo.c (cgraph_lipo_get_resolved_node_1): Do not force
12         creating cgraph node.
13         (fixup_reference_list): New function.
14         (varpool_do_link): Fix up initializer's references to functions
15         after linking.
17 2012-05-09  Teresa Johnson  <tejohnson@google.com>
19         Backport from trunk r187297:
20         2012-05-08   Teresa Johnson  <tejohnson@google.com>
22         * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
23         * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
25 2012-05-08  Xinliang David Li  <davidxl@google.com>
27         Fix issue 6457844 (backport r187312 from google-4_7)
29         * ipa-inline-transform.c (inline_call): When
30         fixing up cgraph edge callees which are aliases,
31         find the real resolved alias target in LIPO mode.
32         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
33         Remove unnecssary check in LIPO mode.
34         * ipa-inline.c (inline_small_functions): Compute
35         max_count properly by considering indirect edges.
38 2012-05-08  Xinliang David Li  <davidxl@google.com>
40         Fix issue 6461583 (backport r187310 from google-4_7)
42         * profile.c (instrument_values): Skip static ctor/dtors
43         for ic counter allocation to match instrumentation.
44         * tree-profile.c (gimple_gen_ic_profiler): Remove
45         unnecessary guard in FDO mode.
48 2012-05-01   Rong Xu  <xur@google.com>
50         * gcc/cp/rtti.c (get_tinfo_decl): generate tinfo for aux 
51         modules in LIPO.
53 >>>>>>> .r187488
54 2012-04-15  Xinliang David Li  <davidxl@google.com>
56         * varasm.c (alias_target_node_exist_p): New function.
57         (finish_alias_1): Use the new function in LIPO mode.
59 2012-04-12  Xinliang David Li  <davidxl@google.com>
61         * cgraphbuild.c (rebuild_cgraph_edges): Add ipa reference from
62         an alias node to its body node (post LIPO linking one) to avoid
63         the body being eliminated.
64         * varasm.c (finish_aliases_1): Do not emit error for an alias
65         which is artificial in LIPO mode -- it exists but can not be
66         found.
68 2012-04-11  Teresa Johnson  <tejohnson@google.com>
70         Revert r182254 since it is subsumed by r186176 on trunk.
71         Limit unrolling of loops with LCP stalling instructions on Core i7
72         so that they will fit into the LSD.
73         * loop-unroll.c (decide_unroll_constant_iterations): Call loop
74         unroll target hook.
75         * config/i386/i386.c (ix86_loop_unroll_adjust): New function.
76         (TARGET_LOOP_UNROLL_ADJUST): Define hook for x86.
78 2012-04-10  Xinliang David Li  <davidxl@google.com>
80         * mversn-dispatch.c (builtin_dispatch_ipa_clone): returns
81         TODO flags when there are changes.
82         (do_convert_builtin_dispatch): Ditto.
85 2012-04-09  Xinliang David Li  <davidxl@google.com>
87         Fix b/6300341: LIPO profile-gen ICEs 
89         * coverage.c (converage_dc_end_function): Properly initialize
90         the fn_decl and ctr_data field of the coverage_data.
92 2012-04-03  Harshit Chopra  <harshit@google.com>
94         * config/i386/i386.c (check_should_patch_current_function): Made C90
95         compatible.
96         * config/i386/i386.md: Added '\t' to bytes generated by
97         ix86_output_function_nops_prologue_epilogue for proper formatting
98         of assembly.
100 2012-03-29  Dehao Chen  <dehao@google.com>
102         * predict.c (predict_iv_comparison): Add the comparison of induction
103         variable against its initial value.
105 2012-03-09   Rong Xu  <xur@google.com>
107         * opts-global.c (lipo_save_cl_args): save -std option.
108         Google ref b/6117980.
110 2012-03-07  Sriraman Tallam  <tmsriram@google.com>
112         * config/i386/i386.c (build_struct_with_one_bit_fields): New function.
113         (make_var_decl): New function.
114         (get_field_from_struct): New function.
115         (fold_builtin_target): New function.
116         (ix86_fold_builtin): New function.
117         (ix86_expand_builtin): Expand new builtins by folding them.
118         (make_platform_builtin): New functions.
119         (ix86_init_platform_type_builtins): Make the new builtins.
120         (ix86_init_builtins): Make new builtins to detect CPU type.
121         (TARGET_FOLD_BUILTIN): New macro.
122         (IX86_BUILTIN_CPU_SUPPORTS_CMOV): New enum value.
123         (IX86_BUILTIN_CPU_SUPPORTS_MMX): New enum value.
124         (IX86_BUILTIN_CPU_SUPPORTS_POPCOUNT): New enum value.
125         (IX86_BUILTIN_CPU_SUPPORTS_SSE): New enum value.
126         (IX86_BUILTIN_CPU_SUPPORTS_SSE2): New enum value.
127         (IX86_BUILTIN_CPU_SUPPORTS_SSE3): New enum value.
128         (IX86_BUILTIN_CPU_SUPPORTS_SSSE3): New enum value.
129         (IX86_BUILTIN_CPU_SUPPORTS_SSE4_1): New enum value.
130         (IX86_BUILTIN_CPU_SUPPORTS_SSE4_2): New enum value.
131         (IX86_BUILTIN_CPU_INIT): New enum value.
132         (IX86_BUILTIN_CPU_IS_AMD): New enum value.
133         (IX86_BUILTIN_CPU_IS_INTEL): New enum value.
134         (IX86_BUILTIN_CPU_IS_INTEL_ATOM): New enum value.
135         (IX86_BUILTIN_CPU_IS_INTEL_CORE2): New enum value.
136         (IX86_BUILTIN_CPU_IS_INTEL_COREI7_NEHALEM): New enum value.
137         (IX86_BUILTIN_CPU_IS_INTEL_COREI7_WESTMERE): New enum value.
138         (IX86_BUILTIN_CPU_IS_INTEL_COREI7_SANDYBRIDGE): New enum value.
139         (IX86_BUILTIN_CPU_IS_AMDFAM10_BARCELONA): New enum value.
140         (IX86_BUILTIN_CPU_IS_AMDFAM10_SHANGHAI): New enum value.
141         (IX86_BUILTIN_CPU_IS_AMDFAM10_ISTANBUL): New enum value.
142         (IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER1): New enum value.
143         (IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER2): New enum value.
144         * config/i386/i386-builtin-types.def: New function type.
145         * testsuite/gcc.target/builtin_target.c: New testcase.
147 2012-03-05   Xinliang David Li  <davidxl@google.com>
148         * Merged revisions 184824,184851 via svnmerge from 
149         svn+ssh://gcc.gnu.org/svn/gcc/branches/google/integration
151 2012-03-04   Xinliang David Li  <davidxl@google.com>
153         * Merged revisions 184370,184482,184682 via svnmerge from 
154         svn+ssh://gcc.gnu.org/svn/gcc/branches/google/integration
156 2012-02-14  Jing Yu  <jingyu@google.com>
158         Google ref 42402-p2
159         * config/arm/arm.h: Emit GNU-stack note for all arm targets by
160         default.
162 2012-02-13   Xinliang David Li  <davidxl@google.com>
164         * coverage.c: (process_include_paths): New function.
165         (process_include_paths_1): New function.
166         (process_include): New function.
167         (set_lipo_c_parsing_context): Process option -fripa-inc-path-sub=
170 2012-02-13   Xinliang David Li  <davidxl@google.com>
172         * tree-optimize.c (execute_fixup_cfg): Using double type in
173         scaling to avoid count overflow during out-of-line copy
174         fixup. (ref: google-4_6 r184162)
176 2012-02-06   Dmitriy Vyukov  <dvyukov@google.com>
178         Port revision 183839 from google/gcc-4_6 branch.
179         * tree-tsan.c: Code style changes.
181 2012-02-01  Xinliang David Li  <davidxl@google.com>
183         * diagnostic.c (diagnostic_set_info_translated):
184         strip discriminator for location used in messages.
185         * loop-unroll.c (unroll_and_peel_loops):
186         remove exit recording which is redundant.
188 2012-02-01  Dehao Chen  <dehao@google.com>
190         * predict.c (strips_small_constant): New
191         (get_base_value): New
192         (find_ssa_name_in_assign_stmt): New
193         (is_comparison_with_loop_invariant_p): New
194         (expr_coherent_p): New
195         (predict_iv_comparison): New
196         (predict_loops): Add heuristic for loop-nested branches that compare an
197         induction variable to a loop bound variable.
198         * predict.def (PRED_LOOP_IV_COMPARE): New macro
200 2012-01-31  Xinliang David Li  <davidxl@google.com>
202         * Merged revisions 183740 via svnmerge from 
203         svn+ssh://gcc.gnu.org/svn/gcc/branches/google/integration
204         * Resolved merge conflicts
205         * Changed libgcov.c to match upstream's handling of crc
206         computation
208 2012-01-27  Xinliang David Li  <davidxl@google.com>
210         Merged revisions 179852,180436,182413,182518 via svnmerge from
211         svn+ssh://gcc.gnu.org/svn/gcc/branches/google/integration.
212         Fixed new regressions and FDO/LIPO failures.
215 2012-01-26  Han Shen  <shenhan@google.com>
217         Add a new option "-fstack-protector-strong".
218         * cfgexpand.c (expand_used_vars): Add logic handling
219         stack-protector-strong.
220         (record_or_union_type_has_array): New, tests if a record or union type
221         contains an array.
222         * common.opt (fstack-protector-strong): New option.
224 2012-01-25   Harshit Chopra  <harshit@google.com>
226         Introduce a new option -mpatch-functions-for-instrumentation to
227         generate Nops at function prologue and epilogue for dynamic
228         instrumentation.
229         * gcc/config/i386/i386-protos.h: Added function and macro definitions
230         for function patch sections used globally.
231         * gcc/config/i386/i386.c (check_should_patch_current_function): Check
232         if the current function should be patched with Nops.
233         (ix86_output_function_prologue): Output Nops for function prologue.
234         (ix86_output_function_nops_prologue_epilogue): Helper function which
235         outputs Nops for function prologue and epilogue.
236         (ix86_elf_asm_named_section): Generate the name of the function patch
237         section.
238         (ix86_output_call_insn): Generate nops for sibling calls.
239         * gcc/config/i386/i386.md: Generate nops for returns.
240         * gcc/config/i386/i386.opt: Commandline options to control nops
241         generation for function patching.
242         * gcc/params.def (DEFPARAM): Define parameter to control generation
243         of nops based on number of instructions in a function
244         * gcc/testsuite/gcc.target/i386/patch-functions-1.c: New testcase
245         * gcc/testsuite/gcc.target/i386/patch-functions-2.c: New testcase
246         * gcc/testsuite/gcc.target/i386/patch-functions-3.c: New testcase
247         * gcc/testsuite/gcc.target/i386/patch-functions-4.c: New testcase
248         * gcc/testsuite/gcc.target/i386/patch-functions-5.c: New testcase
249         * gcc/testsuite/gcc.target/i386/patch-functions-6.c: New testcase
250         * gcc/testsuite/gcc.target/i386/patch-functions-7.c: New testcase
252 2012-01-13   Xinliang David Li  <davidxl@google.com>
254         *ipa-inline-analysis.c (do_estimate_edge_growth): Skip fake edges.
256 2012-01-12   Rong Xu  <xur@google.com>
258         * gcc/profile.c (compute_value_histograms): ignore the 
259                 histrogram when the counters not found in gcda file.
261 2011-12-21   Rong Xu  <xur@google.com>
263         * gcc/profile.c (compute_value_histograms): handle the 
264         case when INDIR_CALL counters not available in gcda files.
266 2012-01-09   Sterling Augustine  <saugustine@google.com>
268        * dwarf2out.c (output_pubnames): Add check for info_section_emitted.
270 2012-01-09  Dehao Chen  <dehao@google.com>
272         * ipa-inline-transform.c (cgraph_node_opt_info): Print profile info
273         if available.
274         (dump_inline_decision): Disable einline dump at OPT_INFO_MIN.
275         * ipa-inline.h (is_in_ipa_inline): New variable.
276         * ipa-inline.c (inline_small_functions): Set the current inline phase.
278 2012-01-04   Sterling Augustine  <saugustine@google.com>
280         * dwarf2out.c (add_pubname): Move conditional clause from outer to
281         inner if-statement.
282         (dwarf2out_finish): Fix conditions to output DW_AT_GNU_pubnames and
283         DW_AT_GNU_pubtypes.  Move decision to output pubnames and pubtypes from
284         here...
285         (output_pubnames): ...to here.
286         (pubtypes_section_empty): Delete unused function.
288 2012-01-02  Dehao Chen  <dehao@google.com>
290         * ipa-inline.c (cgraph_node_opt_info): Print more concise info when
291         dumping inline decisions.
293 2011-12-19  Sterling Augustine <saugustine@google.com>
295         * dwarf2out.c (DEBUG_PUBNAMES_SECTION_LABEL,
296         DEBUG_PUBTYPES_SECTION_LABEL): Define.
297         (debug_pubnames_section_label, debug_pubtypes_section_label):
298         Declare.
299         (is_namespace_die, is_class_die): New functions.
300         (add_enumerator_pubname): New function.
301         (add_pubname): Call is_namespace_die, is_cu_die, and is_class_die in
302         conditional.
303         (add_pubtype): Call is_namespace_die. Rework name calculation.  Call
304         type_tag, lang_hooks.dwarf_name and add_enumerator_pubname.
305         (output_pubnames): Output debug_pubnames_section_label or
306         debug_pubtypes_section_label.
307         (base_type_die): Call add_pubtype.
308         (gen_namespace_die): Call add_pubname_string and lang_hooks.dwarf_name.
309         (dwarf2_out_init): Generate debug_pubnames_section_label and
310         debug_pubtypes_section_label.
311         (pubtypes_section_empty): New function.
312         (dwarf2_out_finish): Call add_AT_lineptr if pubnames or pubtypes is
313         non-empty.  When dealing with pubnames, change assertion to conditional.
314         Call pubtypes_section_empty.  Likewise when dealing with pubtypes.
315         Move code checking for empty section to...
316         (pubtypes_section_empty): Here.
317         * target.def: Switch boolean to enable pubnames and pubtypes.
319 2011-12-17   Easwaran Raman  <eraman@google.com>
321         * common.opt (fsized-delete): New option.
323 2011-12-16   Dmitriy Vyukov  <dvyukov@google.com>
325         * tree-tsan.c (tsan_ignore): Add check for thunks.
327 2011-12-16  Dehao Chen  <dehao@google.com>
329         * ipa-inline-transform.c (dump_inline_decision): New function.
330         (cgraph_node_call_chain): New function.
331         (cgraph_node_opt_info): New function.
332         (cgraph_mark_inline_edge): Dump inline decisions to stderr.
334 2011-12-14  Sriraman Tallam  <tmsriram@google.com>
336         Do not vectorize loops on Core2 that need to use unaligned
337         vector load/stores.
338         * tree-vect-stmts.c (is_vector_load_store_slow): New function.
339         (vectorizable_load): Return false if the load
340         is unaligned and slow.
341         (vectorizable_store): Ditto.
342         * target.def (TARGET_SLOW_UNALIGNED_VECTOR_MEMOP): New target hook.
343         * doc/m.texi.in: Document new target hook:
344         TARGET_SLOW_UNALIGNED_VECTOR_MEMOP
345         * doc/m.texi: Regenerate.
346         * config/i386/i386.c (ix86_slow_unaligned_vector_memop): New function.
347         (TARGET_SLOW_UNALIGNED_VECTOR_MEMOP): New macro. 
349 2011-12-12  Teresa Johnson  <tejohnson@google.com>
351         Limit unrolling of loops with LCP stalling instructions on Core i7
352         so that they will fit into the LSD.
353         * loop-unroll.c (decide_unroll_constant_iterations): Call loop
354         unroll target hook.
355         * config/i386/i386.c (ix86_loop_unroll_adjust): New function.
356         (TARGET_LOOP_UNROLL_ADJUST): Define hook for x86.
358 2011-12-09   Dmitriy Vyukov  <dvyukov@google.com>
360         Fix ThreadSanitizer pass required properties.
361         * gcc/tree-tsan.c (pass_tsan): Replace PROP_trees with PROP_ssa.
363 2011-12-05   Dmitriy Vyukov  <dvyukov@google.com>
365         Fix taking address of SSA_NAME in ThreadSanitizer pass.
366         * gcc/tree-tsan.c (handle_expr): Add the additional check.
368 2011-11-30   Dmitriy Vyukov  <dvyukov@google.com>
370         Add directives to run ThreadSanitizer tests
371         only on i386/x86_64-*-linux targets.
372         * gcc/testsuite/gcc.dg/tsan-ignore.c: Add the directives.
373         * gcc/testsuite/gcc.dg/tsan-stack.c: Add the directives.
374         * gcc/testsuite/gcc.dg/tsan-mop.c: Add the directives.
376 2011-11-23   Teresa Johnson  <tejohnson@google.com>
378         * loop-unroll.c (loop_has_FP_comp): New function.
379         (limit_code_size): New function.
380         (unroll_and_peel_loops): Check if unrolling and/or peeling
381         should be disabled due to large code size estimates.
382         * common.opt (fripa-peel-size-limit): New option.
383         (fripa-unroll-size-limit): New option.
384         * tree-optimize.c (compute_codesize_estimate): New function.
385         (execute_cleanup_cfg_post_optimizing): Invoke
386         compute_codesize_estimate at the end of tree optimization.
387         * params.def (codesize-hotness-threshold): New parameter.
388         (unrollpeel-codesize-threshold): New parameter.
389         * doc/invoke.texi: Document the new options and parameters.
391 2011-11-14   Dmitriy Vyukov  <dvyukov@google.com>
393         Introduce a new option -ftsan which enables
394         ThreadSanitizer (TSan), a data race detector:
395         http://code.google.com/p/data-race-test/.
396         * gcc/Makefile.in: Add tree-tsan.c.
397         * gcc/common.opt: Add -ftsan, -ftsan-ignore flags.
398         * gcc/doc/invoke.texi: Document the new flags.
399         * gcc/passes.c: Add tsan pass.
400         * gcc/tree-pass.h: Add tsan pass.
401         * gcc/toplev.c (compile_file): Call tsan_finish_file.
402         * gcc/tree-tsan.c: New file.
403         * gcc/tree-tsan.h: New file.
404         * gcc/testsuite/gcc.dg/tsan.h: New file.
405         * gcc/testsuite/gcc.dg/tsan-mop.c: New file.
406         * gcc/testsuite/gcc.dg/tsan-stack.c: New file.
407         * gcc/testsuite/gcc.dg/tsan-ignore.c: New file.
408         * gcc/testsuite/gcc.dg/tsan-ignore.h: New file.
409         * gcc/testsuite/gcc.dg/tsan-ignore.ignore: New file.
411 2011-11-16   Rong Xu  <xur@google.com>
413         * gcc/dwarf2out.c: use TYPE_CONTEXT to get the context for types.
415 2011-11-07   Rong Xu  <xur@google.com>
417         * gcc/dwarf2out.c (dwarf2out_decl): fix mixed declarations and code.
419 2011-11-07   Sharad Singhai  <singhai@google.com>
421        * gcc.c (cc1_options): Added -fno-early-inlining for coverage.
423 2011-11-04   Rong Xu  <xur@google.com>
425         * gcc/c-family/c-opts.c: move the notes under fopt-info.
427 2011-11-04   Rong Xu  <xur@google.com>
429         * gcc/dwarf2out.c (dwarf2out_decl): not emit type info
430         for unreachable functions in LIPO mode.
432 2011-10-31   Teresa Johnson  <tejohnson@google.com>
434         * common.opt (fopt-info): Disable -fopt-info by default.
435         * loop-unroll.c (report_unroll_peel): New function.
436         (unroll_and_peel_loops): Call record_loop_exits for later use.
437         (peel_loops_completely): Print the loop source position in dump
438         info and emit note under -fopt-info.
439         (decide_unroll_and_peeling): Ditto.
440         (decide_peel_once_rolling): Record peel factor for use in note
441         emission.
442         (decide_peel_completely): Ditto.
443         * cfgloop.c (get_loop_location): New function.
444         * cfgloop.h (get_loop_location): Ditto.
445         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Emit note
446         under -fopt-info.
448 2011-11-02   Kostya Serebryany  <kcc@google.com>
450         Introduce a new option -fasan which enables
451         AddressSanitizer, a fast memory error detector:
452         * gcc/Makefile.in: Add tree-asan.c.
453         * gcc/common.opt: Add -fasan option.
454         * gcc/invoke.texi: Document the new flag.
455         * gcc/passes.c: Add the asan pass.
456         * gcc/toplev.c (compile_file): Call asan_finish_file.
457         * gcc/tree-asan.c: New file.
458         * gcc/tree-asan.h: New file.
459         * gcc/tree-pass.h: Declare pass_asan.
461 2011-10-19   Rong Xu  <xur@google.com>
462         (1) Introduce a new option -fopt-info:
463          * fopt-info=0 or fno-opt-info: no message will be emitted.
464          * fopt-info or fopt-info=1: emit important warnings and optimization
465            messages with large performance impact.
466          * fopt-info=2: warnings and optimization messages targeting power users.
467          * fopt-info=3: informational messages for compiler developers.
468         (2) Suppress verbose notes/warnings printed in FDO-use compilation.
470         * gcc/common.opt (fopt-info): New flag. (fopt-info=) Ditto.
471         * gcc/opts.c (common_handle_option): Handle OPT_fopt_info_.
472         * gcc/flag-types.h (opt_info_verbosity_levels): New enum.
473         * gcc/value-prof.c (check_ic_counter): guard warnings/notes by
474           flag_opt_info.
475           (find_func_by_funcdef_no): Ditto. 
476           (check_ic_target): Ditto.
477           (check_counter): Ditto.
478           (check_ic_counter): Ditto.
479         * gcc/mcf.c (find_minimum_cost_flow): Ditto.
480         * gcc/profile.c (read_profile_edge_counts): Ditto.
481           (compute_branch_probabilities): Ditto.
482         * gcc/coverage.c (read_counts_file): Ditto.
483           (get_coverage_counts): Ditto.
484         * gcc/tree-profile.c: (gimple_gen_reusedist): Ditto.
485           (maybe_issue_profile_use_note): Ditto.
486           (optimize_reusedist): Ditto.
487         * gcc/testsuite/gcc.dg/pr32773.c: add -fopt-info.
488         * gcc/testsuite/gcc.dg/pr40209.c: Ditto.
489         * gcc/testsuite/gcc.dg/pr26570.c: Ditto.
490         * gcc/testsuite/g++.dg/tree-ssa/dom-invalid.C: Ditto.
492 2011-10-17  Dehao Chen  <dehao@google.com>
494         Add a flag (-frecord-gcc-switches-in-elf) to record compiler
495         command line options to .gnu.switches.text sections of
496         the object file.
497         * coverage.c (write_opts_to_asm): Write the options to
498         .gnu.switches.text sections.
499         * common.opt: Ditto.
500         * opts.h: Ditto.
502 2011-10-04   Diego Novillo  <dnovillo@google.com>
504         Merge from google/integration rev 179485.
506 2011-09-22   Diego Novillo  <dnovillo@google.com>
508         Merge from google/integration rev 179052.
510 2011-09-20   Diego Novillo  <dnovillo@google.com>
512         Merge from google/integration rev 178863.
514 2011-09-15  Easwaran Raman  <eraman@google.com>
516         * Makefile.in (PLUGIN_HEADERS): Add l-ipo.h.
518 2011-09-07  Sriraman Tallam  <tmsriram@google.com>
520         * mversn-dispatch.c (specialize_call): Rebuild cgraph edges after
521         specialization.
522         (clone_and_dispatch_function): Rebuild cgraph edges to compute
523         inline parameters.
524         (do_convert_builtin_dispatch): Ditto.
525         (convert_builtin_dispatch): Remove call to mark_syms_for_renaming
526         for phi nodes.
527         * passes.c (init_optimization_passes): Remove pass to rebuild
528         cgraph edges after converting __builtin_dispatch.
530 2011-08-11  David Li  <davidxl@google.com>
532         * l-ipo.c (process_module_scope_static_var): Handle aliases.
533         (process_module_scope_static_func): New function.
535 2011-08-02   David Li  <davidxl@google.com>
537         Port 53689-p2 and 53705-p2 to v15
538         * libgcov.c (__gcov_merge_dc): Relax over assertion in
539         dc merging.
541 2011-07-28  David Li  <davidxl@google.com>
543         * coverage.c (coverage_init): Remove checking of profile-use
544         flags.
546 2011-07-26  David Li  <davidxl@google.com>
548         * value-prof.c (gimple_value_profile_transformations): Remove redundant code.
549         * cgraphunit.c (cgraph_mark_functions_to_output): Fix assertion in lipo mode.
550         * ipa-inline.c (early_inliner): Check fake edge.
551         * l-ipo.c (pop_module_scope): Process alias node.
552         (cgraph_unify_type_alias_sets): Skip empty function.
554 2011-07-25  Diego Novillo  <dnovillo@google.com>
556         * tree-threadsafe-analyze.c (gate_threadsafe_analyze): Always
557         return false.
559 2011-07-21   Rong Xu  <xur@google.com>
561         * ipa.c (function_and_variable_visibility): In LIPO mode, call 
562         varpool_externally_visible_p() to set the externally visible 
563         attribute even for varpool nodes that not marked as needed.
564         * l-ipo.c (varpool_do_link): Merge the externally visible 
565         attribute for varpool nodes.
567 2011-07-21  Diego Novillo  <dnovillo@google.com>
569         Merge from google/integration rev. 176385.
571 2011-07-21  David Li  <davidxl@google.com>
573         * cgraphunit.c (cgraph_mark_functions_to_output): Fix test for
574         DECL_EXTERNAL.
576 2011-07-21   Diego Novillo  <dnovillo@google.com>
578         * Makefile.in (COLLECT2_OBJS): Add vec.o and ggc-none.o.
579         (GCOV_OBJS): Likewise.
580         (GCOV_DUMP_OBJS): Likewise.
581         (LTO_WRAPPER_OBJS): New.
582         (lto-wrapper$(exeext)): Use.
583         (mversn-dispatch.o): Add dependency on ipa-inline.h.
584         (value-prof.o): Likewise.
586 2011-07-21   Diego Novillo  <dnovillo@google.com>
588         * ipa-inline.c (ipa_inline): Remove extra fprintf argument.
590 2011-07-21   Diego Novillo  <dnovillo@google.com>
592         * coverage.c (check_pmu_profile_options): Move ...
593         * opts.c (check_pmu_profile_options): ... here.  Make static.
594         * coverage.h (check_pmu_profile_options): Remove declaration.
596 2011-07-21   Diego Novillo  <dnovillo@google.com>
598         * tree-inline.c (tree_can_inline_p): Remove unused function.
600 2011-07-21   Diego Novillo  <dnovillo@google.com>
602         * c-decl.c (c_save_built_in_decl_post_parsing): Call
603         cgraph_get_create_node instead of cgraph_node.
604         * final.c (leaf_renumber_regs_insn): Likewise.
605         (dump_cgraph_profiles): Likewise.
606         (rest_of_handle_final): Likewise.
607         * l-ipo.c (cgraph_lipo_get_resolved_node_1): Likewise.
608         (cgraph_lipo_get_resolved_node): Likewise.
609         (promote_static_var_func): Likewise.
610         * mversn-dispatch.c (make_constructor_function): Likewise.
611         (clone_function): Likewise.
612         (specialize_call): Likewise.
613         (clone_and_dispatch_function): Likewise.
614         (do_convert_builtin_dispatch): Likewise.
615         * tree-profile.c (gimple_gen_ic_profiler): Likewise.
616         (gimple_gen_ic_func_profiler): Likewise.
617         (gimple_gen_dc_profiler): Likewise.
618         (gimple_gen_dc_func_profiler): Likewise.
619         * value-prof.c (gimple_value_profile_transformations): Likewise.
621 2011-07-21   David Li  <davidxl@google.com>
623         * ipa-inline.c (better_inline_comdat_function_p): Call inline_summary.
624         (recursive_inlining): Add local PROBABILITY.
626 2011-07-21   Diego Novillo  <dnovillo@google.com>
628         * Makefile.in (ipa-inline-transform.o): Add dependency on l-ipo.h.
629         * ipa-inline-transform.c: Include l-ipo.h.
631 2011-07-21   Diego Novillo  <dnovillo@google.com>
633         * coverage.c (get_da_file_name): Use base_file_name instead of
634         filename.
636 2011-07-21   Diego Novillo  <dnovillo@google.com>
638         * cgraphbuild.c (add_fake_indirect_call_edges): Call
639         cgraph_get_create_node instead of cgraph_node.
640         (rebuild_cgraph_edges): Likewise.
642 2011-07-21  David Li  <davidxl@google.com>
644         * cgraphunit.c (cgraph_mark_functions_to_output): Fix test for
645         DECL_EXTERNAL.
647 2011-07-20  Diego Novillo  <dnovillo@google.com>
649         tree.h (enum operand_equal_flag): Add values
650         OEP_ALLOW_NULL, OEP_ALLOW_NO_TYPE.
652 2011-06-30   DeLesley Hutchins  <delesley@google.com>
654        * tree-threadsafe-analyze.c (handle_call_gs): Fixes case where
655        the virtual method callee has unknown type.
657 2011-06-27   Doug Kwan  <dougkwan@google.com>
659         Google ref 41164-p2
660         Backport upstream patch under review.
662         2011-01-19   NNick Clifton  <nickc@redhat.com>
663                      Matthias Klose <doko@debian.org>
665                 * configure.ac (gcc_cv_gold_srcdir): New cached variable -
666                 contains the location of the gold sources.
667                 (ORIGINAL_GOLD_FOR_TARGET): New substituted variable - contains
668                 the name of the locally built gold executable.
669                 * configure: Regenerate.
670                 * collect2.c (main): Detect the -use-gold and -use-ld switches
671                 and select the appropriate linker, if found.
672                 If a linker cannot be found and collect2 is executing in
673                 verbose mode then report the search paths examined.
674                 * exec-tool.in: Detect the -use-gold and -use-ld switches and
675                 select the appropriate linker, if found.
676                 Add support for -v switch.
677                 Report problems locating linker executable.
678                 * gcc.c (LINK_COMMAND_SPEC): Translate -fuse-ld=gold into
679                 -use-gold and -fuse-ld=bfd into -use-ld.
680                 * common.opt: Add fuse-ld=gold and fuse-ld=bfd.
681                 * opts.c (comman_handle_option): Ignore -fuse-ld=gold and
682                 -fuse-ld=bfd.
683                 * doc/invoke.texi: Document the new options.
685 2011-06-23   Sharad Singhai  <singhai@google.com>
687         * gcc/doc/invoke.texi: Document new pmu profile related options.
688         * gcc/doc/gcov.texi: Document new options -m and -q.
689         * gcc/gcc.c: Link libgcov for -fpmu-profile-generate option.
690         * gcc/gcov.c (filter_pmu_data_lines): New function.
691         (output_pmu_data_header): Ditto.
692         (output_pmu_data): Ditto.
693         (output_load_latency_line): Ditto.
694         (output_branch_mispredict_line): Ditto.
695         (static void process_pmu_profile): Ditto.
696         * gcc/gcov-io.c (gcov_canonical_filename): New function.
697         (gcov_read_pmu_load_latency_info): Ditto.
698         (gcov_read_pmu_branch_mispredict_info): Ditto.
699         (gcov_read_pmu_tool_header): Ditto.
700         (gcov_string_length): Ditto.
701         (convert_unsigned_to_pct): Ditto.
702         (print_load_latency_line): Ditto.
703         (print_branch_mispredict_line): Ditto.
704         (print_pmu_tool_header): Ditto.
705         (destroy_pmu_tool_header): Ditto.
706         (gcov_read_string): Make it unconditionally available.
707         * gcc/gcov-io.h (struct gcov_pmu_info): New structure.
708         * gcc/opts.c: New option -fpmu-profile-generate.
709         * gcc/pmu-profile.c (enum pmu_tool_type): New structure.
710         (enum pmu_event_type): Ditto.
711         (enum pmu_state): Ditto.
712         (enum cpu_vendor_signature): Ditto.
713         (struct pmu_tool_info): Ditto.
714         (get_x86cpu_vendor): New function.
715         (parse_pmu_profile_options): Ditto.
716         (start_addr2line_symbolizer): Ditto.
717         (reset_symbolizer_parent_pipes): Ditto.
718         (reset_symbolizer_child_pipes): Ditto.
719         (end_addr2line_symbolizer): Ditto.
720         (symbolize_addr2line): Ditto.
721         (start_pfmon_module): Ditto.
722         (convert_pct_to_unsigned): Ditto.
723         (parse_load_latency_line): Ditto.
724         (parse_branch_mispredict_line): Ditto.
725         (destroy_load_latency_infos): Ditto.
726         (destroy_branch_mispredict_infos): Ditto.
727         (parse_pfmon_load_latency): Ditto.
728         (parse_pfmon_tool_header): Ditto.
729         (parse_pfmon_branch_mispredicts): Ditto.
730         (pmu_start): Ditto.
731         (init_pmu_load_latency): Ditto.
732         (init_pmu_branch_mispredict): Ditto.
733         (init_pmu_tool): Ditto.
734         (__gcov_init_pmu_profiler): Ditto.
735         (__gcov_start_pmu_profiler): Ditto.
736         (__gcov_stop_pmu_profiler): Ditto.
737         (gcov_write_ll_line): Ditto.
738         (gcov_write_branch_mispredict_line): Ditto.
739         (gcov_write_load_latency_infos): Ditto.
740         (gcov_write_branch_mispredict_infos): Ditto.
741         (gcov_tag_pmu_tool_header_length): Ditto.
742         (gcov_write_tool_header): Ditto.
743         (__gcov_end_pmu_profiler): Ditto.
744         * gcc/coverage.c (get_const_string_type): New function.
745         (create_coverage): Do the coverage processing even if only
746         flag_pmu_profile_generate is specified.
747         (coverage_init): Call gimple_init_instrumentation_sampling from here instead
748         from tree-profile.c:gimple_init_edge_profiler.
749         (profiling_enabled_p): New function.
750         (init_pmu_profiling): Ditto.
751         (check_pmu_profile_options): Ditto.
752         * gcc/coverage.h (check_pmu_profile_options): Declaration.
753         (tree_init_instrumentation_sampling): Declaration.
754         * gcc/common.opt: Add new options -fpmu-profile-generate and
755         -fpmu-profile-use.
756         * gcc/tree-profile.c (gimple_init_instrumentation_sampling): Make
757         extern. Move the call from gimple_init_edge_profiler to
758         coverage.c:coverage_init.
759         * gcc/libgcov.c (gcov_alloc_filename) [__GCOV_KERNEL__]: Moved earlier.
760         (gcov_alloc_filename) [!__GCOV_KERNEL__]: Initialize gi_filename_up.
761         (pmu_profile_stop): New function.
762         (gcov_dump_module_info): Replace gcov_strip_leading_dirs with a macro.
763         (__gcov_init): Add initialization of PMU profiler.
764         (gcov_exit): Add finalization of PMU profiler.
765         (gcov_get_filename): Cleanup whitespaces.
766         * gcc/params.def: New parameter pmu_profile_n_addresses.
767         * gcc/gcov-dump.c (tag_pmu_load_latency_info): New function.
768         (tag_pmu_branch_mispredict_info): Ditto.
769         (tag_pmu_tool_header): Ditto.
771 2011-06-22   Rong Xu  <xur@google.com>
773         * gcc/libgcov.c: (TARGET_VTABLE_USES_DESCRIPTORS): Remove.
775 2011-06-21  Diego Novillo  <dnovillo@google.com>
777         Merge from google/integration rev 175221.
779 2011-06-16   Sharad Singhai  <singhai@google.com>
781         Google Ref 39999
783         * doc/gcov.texi: Document gcov intermediate format.
784         * gcov.c (get_gcov_file_intermediate_name): New function.
785         (output_intermediate_file): New function.
787 2011-06-14  Le-Chun Wu  <lcwu@google.com>
789         * tree-threadsafe-analyze.c (build_fully_qualified_lock): Handle
790         IPA-SRA cloned methods.
791         (get_canonical_lock_expr): Fold expressions that are INDIRECT_REF on
792         top of ADDR_EXPR.
793         (check_lock_required): Handle IPA-SRA cloned methods.
794         (check_func_lock_excluded): Likewise.
795         (process_function_attrs): Likewise.
797 2011-06-10  David Li  <davidxl@google.com>
799         Backport 174930
800         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
801         * passes.c (passr_eq): New function.
802         (create_pass_tab): New function.
803         (pass_traverse): New function.
804         (dump_one_pass): New function.
805         (dump_pass_list): New function.
806         (dump_passes): New function.
808 2011-06-14   David Li  <davidxl@google.com>
810         * cp/semantics.c (emit_associated_thunks):
811         Do not omit thunk emission for aux modules.
813 2011-06-10  Rong Xu  <xur@google.com>
815         * gcc/tree-ssa-loop-im.c (maxmimu_lsm): New define.
816         (find_refs_for_sm): Limit excessive lsm.
817         * gcc/gcse.c (cfgloop.h): New include.
818         (maximum_lsm_limit): New define.
819         (struct loop_lsm_limit_map): Ditto.
820         (loop_lsm_limit_map_htab): Ditto.
821         (loops_lsm): Ditto.
822         (dominator_info_avail_before_lsm_limit): Ditto.
823         (compute_ld_motion_mems): Limit execssive lsm.
824         (find_loop_lsm_limit): New functions.
825         (adjust_loop_lsm_limit): Ditto.
826         (init_loop_lsm_limit): Ditto.
827         (fini_loop_lsm_limit): Ditto.
828         (estimate_reg_pressure_before_lsm): Ditto.
829         (loop_lsm_limit_map_hash): Ditto.
830         (loop_lsm_limit_map_eq): Ditto.
831         (free_loop_lsm_limit_map): Ditto.
833 2011-06-09  Chris Demetriou  <cgd@google.com>
835         * doc/install.texi (--with-warn-frame-larger-than-extra-text): New.
836         * configure.ac (--with-warn-frame-larger-than-extra-text): New.
837         (WARN_FRAME_LARGER_THAN_EXTRA_TEXT): Define.
838         * final.c (final_start_function): Use
839         WARN_FRAME_LARGER_THAN_EXTRA_TEXT.
840         * configure: Regenerate.
841         * config.in: Regenerate.
843 2011-06-09  David Li  <davidxl@google.com>
845         Revert temporarily 
846         * gcse.c (gate_rtl_cprop): Gate cleanup
847         (execute_rtl_cprop): Gate cleanup
849 2011-06-09  David Li  <davidxl@google.com>
851         Revert temporarily 
852         Backport trunk 174849
853         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
854         * passes.c (passr_eq): New function.
855         (create_pass_tab): New function.
856         (pass_traverse): New function.
857         (dump_one_pass): New function.
858         (dump_pass_list): New function.
859         (dump_passes): New function.
861 2011-06-09  David Li  <davidxl@google.com>
863         * gcse.c (gate_rtl_cprop): Gate cleanup
864         (execute_rtl_cprop): Gate cleanup
866 2011-06-09  David Li  <davidxl@google.com>
868         Backport trunk 174849
869         * cgraphunit.c (cgraph_finalize_compilation_unit): Pass dump.
870         * passes.c (passr_eq): New function.
871         (create_pass_tab): New function.
872         (pass_traverse): New function.
873         (dump_one_pass): New function.
874         (dump_pass_list): New function.
875         (dump_passes): New function.
877 2011-06-09  David Li  <davidxl@google.com>
879         Backport trunk 174848
880         * tree-complex.c (tree_lower_complex): Gate cleanup.
881         * tree-stdarg.c (check_all_va_list_escapes): Ditto.
882         (execute_optimize_stdarg): Ditto.
883         * tree-eh.c (execute_lower_eh_dispatch): Ditto.
884         (execute_cleanup_eh_1): Ditto.
885         (execute_cleanup_eh): Ditto.
886         * gcse.c (gate_rtl_pre): Ditto.
887         (execute_rtl_pre): Ditto.
888         * except.c (finish_eh_generation): Ditto.
889         (convert_to_eh_region_ranges): Ditto.
890         * cprop.c (one_cprop_pass): Ditto.
892 2011-06-08  Sriraman Tallam  <tmsriram@google.com>
894         * doc/invoke.texi: document option -fcallgraph-profiles-sections.
895         * final.c  (dump_cgraph_profiles): New function.
896         (rest_of_handle_final): Create new section '.note.callgraph.text'
897         with compiler flag -fcallgraph-profiles-sections
898         * common.opt: New option -fcallgraph-profiles-sections.
899         * params.def (DEFPARAM): New param
900         PARAM_NOTE_CGRAPH_SECTION_EDGE_THRESHOLD.
902 2011-06-07  Mark Heffernan  <meheff@google.com>
904         * cgraph.h (cgraph_global_info): Remove field.
905         * ipa-inline.c (cgraph_clone_inlined_nodes): Change
906         stack frame computation.
907         (cgraph_check_inline_limits): Change stack frame computation.
908         (compute_inline_parameters): Remove dead initialization.
910 2011-06-07  David Li  <davidxl@google.com>
912         * tree-pretty-print.c   (revision 174779)
913         (dump_function_header): dump module id.
915 2011-06-07  David Li  <davidxl@google.com>
917         Backport trunk r174536,174537,174762,174698
919         * passes.c (enable_disable_pass): Handle assembler name.
920         (is_pass_explicitly_enabled_or_disabled): Ditto.
921         * predict.c : Change pass name
922         * ipa.c: Ditto.
923         * dce.c: Ditto.
924         * tree-profile.c: Ditto.
925         * except.c: Ditto.
926         * tree-pretty-print.c (dump_function_header): New function.
927         * final.c (rest_of_clean_state): Use header dumper.
928         * tree-cfg.c (gimple_dump_cfg): Use header dumper.
929         * passes.c (pass_init_dump_file): Use header dumper.
930         * tree-pretty-print.c (dump_function_header): Add flags.
931         Don't dump decl_uid with nouid.
932         * tree-pretty-print.h (dump_function_header): Adjust.
933         * final.c (rest_of_clean_state): Pass dump_flags on, with nouid.
934         * passes.c (pass_init_dump_file): Pass dump_flags on.
935         * tree-cfg.c (gimple_dump_cfg): Pass flags on.
937 2011-06-06  Diego Novillo  <dnovillo@google.com>
939         Merge from google/integration rev 174705.
941 2011-06-02  Neil Vachharajani  <nvachhar@gmail.com>
942             Dehao Chen <danielcdh@gmail.com>
944         * gcc/doc/invoke.texi (min-mcf-cancel-iters): Document.
945         * gcc/mcf.c (MAX_ITER): Use new param PARAM_MIN_MCF_CANCEL_ITERS.
946         (edge_type): Add SINK_SOURCE_EDGE.
947         (dump_fixup_edge): Handle SINK_SOURCE_EDGE.
948         (create_fixup_graph): Make problem miminum cost circulation.
949         (cancel_negative_cycle): Update handling of infinite capacity.
950         (compute_residual_flow): Update handling of infinite capacity.
951         (find_max_flow): Update handling of infinite capacity.
952         (modify_sink_source_capacity): New function.
953         (find_minimum_cost_flow): Make problem miminum cost circulation.
954         Use param PARAM_MIN_MCF_CANCEL_ITERS.
955         * gcc/params.def (PARAM_MIN_MCF_CANCEL_ITERS): Define.
957 2011-05-30  Xinliang David Li  <davidxl@google.com>
959         Backport trunk r174423, r174424
960         * opts-global.c (handle_common_deferred_options): Handle new options.
961         * passes.c (register_one_dump_file): Call register_pass_name.
962         (execute_one_pass): Check explicit enable/disable flag.
963         (passr_hash): New function.
964         (passr_eq): Ditto.
965         (register_pass_name): Ditto.
966         (get_pass_by_name): Ditto.
967         (pass_hash): Ditto.
968         (pass_eq): Ditto.
969         (enable_pass): Ditto.
970         (disable_pass): Ditto.
971         (is_pass_explicitly_enabled_or_disabled): Ditto.
973 2011-05-30  David Li  <davidxl@google.com>
975         * cgraphunit.c (cgraph_optimize):  Remove call to static
976         promotion funciton.
977         * cp/decl2.c (cp_process_pending_declarations):  Do not
978         remove body of __static_init functions for aux modules.
979         * ipa-inline.c (leaf_node_p):  Filter indirect callsite
980         to make sure profile gen and profile use consistency
981         (cgraph_decide_inlining_incrementally):  Remove LIPO
982         specific inline rule used to workaround size estimation
983         problem for static functions.
984         * tree-profile.c (tree_profiling):  Do static promotion here.
985         * l-ipo.c (cgraph_is_aux_decl_external):  Handle non-promoted
986         static function.
987         (create_unique_name): New function.
988         (promote_static_var_func): Do not promote non addr taken statics.
990 2011-05-23  Rong Xu  <xur@google.com>
992         * gcc/libgcov.c (gcov_merge_gcda_file): initialize eof_pos for
993         every invocation.
995 2011-05-21  David Li  <davidxl@google.com>
997         * function.h: Give funcdef_no 18 bits in label name.
999 2011-05-18  Mark Heffernan  <meheff@google.com>
1001        * opts.c (finish_options): Increase inlining limits with profile
1002        generate and use.
1004 2011-05-17  Mark Heffernan  <meheff@google.com>
1006         * ipa-inline.c (estimate_function_body_sizes): Parameterize static
1007         function static overhead.
1008         * params.def (PARAM_INLINE_FUNCTION_OVERHEAD_SIZE): New parameter.
1010 2011-05-12  Rong Xu  <xur@google.com>
1012         * gcc/coverage.c (coverage_note_define): set is_kernel_build if building
1013         for Linux kernel.
1014         * gcc/tree-profile.c (is_kernel_build): New declare.
1015         (init_ic_make_global_vars): don't emit TLS declarations for Linux kernel
1016         builds.
1017         (direct_call_profiling): Ditto.
1018         * gcc/gcov-io.h (__GCOV_KERNEL__): Set if __KERNEL__ is defined.
1019         (BTIS_PER_UNIT): Set the vaule under __GCOV_KERNEL__.
1020         (LONG_LONG_TYPE_SIZE): Ditto.
1021         (_GCOV_FILE, _GCOV_fclose, _GCOV_ftell, _GCOV_fseek, _GCOV_ftruncate,
1022         _GCOV_fread, _GCOV_fwrite, _GCOV_fread, _GCOV_fileno): Wrapper macros.
1023         (gcov_kernel_vfile): New type declare under __GCOV_KERNEL__.
1024         (gcc_assert): New function under __GCOV_KERNEL__.
1025         (gcov_var): Move the definition to gcov-io.c under __GCOV_KERNEL__.
1026         (gcov_rewrite): Change fseek to _GCOV_fseek.
1027         * gcc/gcov-io.c (gcov_var): Add declare under __GCOV_KERNEL__.
1028         (gcov_open): New implementation under __GCOV_KERNEL__.
1029         (gcov_sync): Ditto.
1030         (gcov_truncate): Ditto.
1031         (gcov_close): Replace calls to libc functions to macros.
1032         (gcov_write_block): Ditto.
1033         (gcov_read_words): Ditto.
1034         (gcov_sync): Ditto.
1035         (gcov_seek): Ditto.
1036         (kernel_file_fclose): New functions under __GCOV_KERNEL__.
1037         (kernel_file_ftell): Ditto.
1038         (kernel_file_fseek): Ditto.
1039         (kernel_file_ftruncate): Ditto.
1040         (kernel_file_fread): Ditto.
1041         (kernel_file_fwrite): Ditto.
1042         (kernel_file_fileno): Ditto.
1043         * gcc/libgcov.c (L_gcov, L_gcov_interval_profiler, 
1044         L_gcov_pow2_profiler, L_gcov_one_value_profiler,
1045         L_gcov_indirect_call_profiler, L_gcov_average_profiler,
1046         L_gcov_ior_profiler, TARGET_VTABLE_USES_DESCRIPTORS,
1047         HAVE_CC_TLS, __GCOV_KERNEL__, IN_LIBGCOV, IN_GCOV): Set the value
1048         under __KERNEL__ for Linux kernel FDO build support.
1049         (tconfig.h, tsystem.h, coretypes.h, tm.h): Do not inlude for kernel 
1050         builds (i.e. include under #ifndef __KERNELL__).
1051         (string.h, fcntl.h, errno,h, sys/stat.h) Ditto.
1052         (gcov_error): New function for error reporting.
1053         (all, this_program, this_object, program, object, summary_pos,
1054         eof_pos, gcov_prefix_strip, prefix_length
1055         gi_filename, gi_filename_up): New declares.
1056         (gcov_exit): Refactored.
1057         (gcov_open_by_filename): New function.
1058         (gcov_counter_active): Ditto.
1059         (gcov_alloc_filename): Ditto.
1060         (gcov_dump_module_info): Ditto.
1061         (gcov_counter_array): Ditto.
1062         (gcov_object_summary): Ditto.
1063         (gcov_merge_gcda_file): Ditto.
1064         (gcov_compute_fi_stride): Ditto.
1065         (gcov_gcda_file_size): Ditto.
1066         (gcov_write_gcda_file): Ditto.
1067         (gcov_exit_init): Ditto.
1068         (gcov_dump_one_gcov): Ditto.
1069         (gcov_get_filename): New implementation under __GCOV_KERNEL__.
1070         (gcov_sort_icall_topn_counter): Ditto.
1071         (gcov_alloc_filename): Ditto.
1072         (gcov_current_file): Ditto.
1073         (gcov_set_vfile): Ditto.
1074         (gcov_kernel_dump_one_gcov): Ditto.
1075         (__gcov_merge_add): New dummy functions under __GCOV_KERNEL__.
1076         (__gcov_merge_single): Ditto.
1077         (__gcov_merge_delta): Ditto.
1078         (__gcov_merge_ior): Ditto.
1079         (__gcov_merge_icall_topn): Ditto.
1080         (__gcov_merge_dc): Ditto.
1081         (__gcov_merge_reusedist): Ditto.
1082         (__gcov_merge_add): Export kernel symbol under __GCOV_KERNEL__.
1083         (__gcov_merge_single): Ditto.
1084         (__gcov_merge_delta): Ditto.
1085         (__gcov_merge_ior): Ditto.
1086         (__gcov_merge_icall_topn): Ditto.
1087         (__gcov_merge_dc): Ditto.
1088         (__gcov_merge_reusedist): Ditto.
1089         (__gcov_average_profiler): Ditto.
1090         (__gcov_indirect_call_profiler): Ditto.
1091         (__gcov_interval_profiler): Ditto.
1092         (__gcov_ior_profiler): Ditto.
1093         (__gcov_one_value_profiler): Ditto.
1094         (__gcov_pow2_profiler): Ditto.
1096 2011-05-10  David Li  <davidxl@google.com>
1098         * cgraphunit.c (verify_cgraph_node): Disable checking
1099         in LIPO mode temporarily.
1100         (cgraph_mark_functions_to_output): Ditto.
1101         * tree-cfg.c (verify_stmt): Ditto.
1103 2011-05-06  David Li  <davidxl@google.com>
1105         Revert r173158.
1106         * doc/invoke.texi (fno-strict-enum-precision): Document.
1107         * gimplify.c (gimplify_switch_expr): If
1108         -fno-strict-enum-precision is given, do not consider enum
1109         types.
1110         * tree-vrp.c (stmt_interesting_for_vrp): If
1111         -fno-strict-enum-precision is given, do not look at enum
1112         types.
1114 2011-05-09  Silvius Rus <silvius.rus@gmail.com>
1116         * value-prof.c (interesting_stringop_to_profile_p): Disbale
1117         stringop profiling if reuse distance profiling is turned on.
1118         * value-prof.h (gimple_gen_reusedist, optimize_reusedist): Declare.
1119         * gcov-io.h: (GCOV_COUNTER_REUSE_DIST): New counter.
1120         (GCOV_COUNTERS): Update.
1121         (GCOV_COUNTER_NAMES): Add reuse_distance.
1122         (GCOV_MERGE_FUNCTIONS): Add __gcov_merge_reusedist.
1123         (__gcov_merge_reusedist): New declaration.
1124         * profile.c (branch_prob): Enable reuse distance profiling and
1125         optimization.
1126         * common.opt (fprofile-reusedist, foptimize-locality): New options.
1127         * tree-profile.c: Include params.h.
1128         (stringop_subst, reusedist_t): New structures.
1129         (stringop_subst_t, reusedist_t): New typedefs.
1130         (stringop_decl): New global array.
1131         (RD_NUM_COUNTERS): New constant.
1132         (get_stringop_subst, reusedist_is_interesting_call)
1133         (reusedist_instr_func_name, reusedist_get_instr_decl)
1134         (reusedist_make_instr_call, reusedist_from_counters)
1135         (gimple_gen_reusedist, nt_op_name, reusedist_get_size_threshold)
1136         (reusedist_get_distance_large_threshold)
1137         (reusedist_get_distance_small_threshold)
1138         (reusedist_get_count_threshold, reusedist_nt_is_worth_it)
1139         (reusedist_get_nt_decl, maybe_issue_profile_use_note)
1140         (reusedist_maybe_replace_with_nt_version, optimize_reusedist): New
1141         functions.
1142         (gate_tree_profile_ipa): Return true if reuse distance instrumentation
1143         or use is turned on.
1144         * Makefile.in (LIBGCOV): Add _gcov_merge_reusedist.
1145         * libgcov.c (__gcov_weighted_mean2, __gcov_merge_reusedist): New
1146         functions.
1147         * params.def (PARAM_REUSEDIST_MEAN_DIST_LARGE_THRESH)
1148         (PARAM_REUSEDIST_MEAN_DIST_SMALL_THRESH)
1149         (PARAM_REUSEDIST_CALL_COUNT_THRESH, PARAM_REUSEDIST_MEMCPY_SIZE_THRESH)
1150         (PARAM_REUSEDIST_MEMSET_SIZE_THRESH): New params.
1152 2011-05-06  Lawrence Crowl  <crowl@google.com>
1154         * timevar.h (timevar_cond_start): Remove unused POP_TIMEVAR_AND_RETURN.
1155         (timevar_cond_start): New for starting a timer only when it is not
1156         already running.
1157         (timevar_cond_stop): New for stopping a timer when it was not already
1158         running.
1160         * timevar.c (timevar_stop): Enable start/stop timers to start again.
1161         (timevar_cond_start): New as above.
1162         (timevar_cond_stop): New as above.
1164         * timevar.def: Add start/stop timers for compiler phases,
1165         TV_PHASE_SETUP, TV_PHASE_PARSING, TV_PHASE_DEFERRED, TV_PHASE_CGRAPH,
1166         TV_PHASE_DBGINFO (C), TV_PHASE_CHECK_DBGINFO (C++), TV_PHASE_GENERATE,
1167         and TV_PHASE_FINALIZE.
1168         Change push/pop timer TV_PARSE to TV_PARSE_GLOBAL.
1169         Add push/pop timers TV_PARSE_STRUCT, TV_PARSE_ENUM, TV_PARSE_FUNC,
1170         TV_PARSE_INLINE, TV_PARSE_INMETH, TV_TEMPLATE_INST.
1171         Change push/pop timer TV_NAME_LOOKUP into a start/stop timer.
1172         Make unused TV_OVERLOAD into a start/stop timer.
1174         Remove unused timers TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION.
1175         Mark the strings for TV_NAME_LOOKUP and TV_OVERLOAD with a "|"
1176         to indicate that they are start/stop timers.
1178         * toplev.c (compile_file): Change TV_PARSE to TV_PARSE_GLOBAL.
1179         Add start/stop timers TV_PHASE_PARSING and TV_PHASE_GENERATE.
1180         Move initialization to do_compile.
1181         (do_compile): Add initialization from above.
1182         Add start/stop timers TV_PHASE_SETUP and TV_PHASE_FINALIZE.
1184         * c-decl.c (c_write_global_declarations): Add start/stop of
1185         TV_PHASE_DEFERRED, TV_PHASE_CGRAPH, TV_PHASE_DBGINFO.
1187         * c-parser.c (c_parser_declaration_or_fndef): Push/pop TV_PARSE_FUNC
1188         or TV_PARSE_INLINE, as appropriate.
1189         (c_parser_enum_specifier): Push/pop TV_PARSE_ENUM.
1190         (c_parser_struct_or_union_specifier): Push/pop TV_PARSE_STRUCT.
1192 2011-05-06  Easwaran Raman  <eraman@google.com>
1194         Backport r172837:
1196         * cfgexpand.c (stack_var): Remove OFFSET...
1197         (add_stack_var): ...and its reference here...
1198         (expand_stack_vars): ...and here.
1199         (stack_var_cmp): Sort by descending order of size.
1200         (partition_stack_vars): Change heuristic.
1201         (union_stack_vars): Fix to reflect changes in
1202         partition_stack_vars.
1203         (dump_stack_var_partition): Add newline after each partition.
1204         
1205 2011-05-06  Easwaran Raman  <eraman@google.com>
1207         Backport r172788:
1209         * cfgexpand.c (add_alias_set_conflicts): Add conflicts with a variable
1210         containing union type only with -fstrict-aliasing.
1212 2011-05-04  David Li  <davidxl@google.com>
1214         * coverage.c (incompatible_cl_args): Better handling
1215         of option mismatch.
1218 2011-05-04  Sriraman Tallam  <tmsriram@google.com>
1220         * tree-pass.h (pass_tree_convert_builtin_dispatch): New pass.
1221         (pass_ipa_multiversion_dispatch): New pass.
1222         * builtin-types.def (BT_PTR_FN_INT): New pointer type.
1223         (BT_FN_INT_PTR_FN_INT_PTR_PTR_VAR): New function type for __builtin_dispatch.
1224         * builtins.def (BUILT_IN_DISPATCH): New builtin to
1225         support multi-version calls.
1226         * mversn-dispatch.c: New file.
1227         * timevar.def (TV_MVERSN_DISPATCH): New time var.
1228         * common.opt (fclone-hot-version-paths): New flag.
1229         * Makefile.in (mversn-dispatch.o): New rule.
1230         * passes.c (init_optimization_passes): Add the new
1231         multi-version and dispatch passes to the pass list.
1232         * params.def (PARAM_NUMBER_OF_MVERSN_CLONES): Define.
1233         (PARAM_MVERSN_CLONE_CGRAPH_DEPTH): Define.
1234         * doc/invoke.texi (mversn-clone-depth): Document.
1235         (num-mversn-clones): Document.
1236         (fclone-hot-version-paths): Document.
1238 2011-05-04  Silvius Rus  <silvius.rus@gmail.com>
1240         * doc/invoke.texi: Document -fprofile-generate-sampling option.
1241         * gcov-io.h (__gcov_set_sampling_rate): New declaration.
1242         * profile.c (branch_prob): Add support for sampled profile
1243         collection.
1244         * profile.h (add_sampling_to_edge_counters): New declaration.
1245         * common.opt (fprofile-generate-sampling): New option.
1246         * tree-profile: Include header files; define EDGE_COUNTER_STMT_COUNT.
1247         (instrumentation_to_be_sampled, gcov_sample_counter_decl)
1248         (gcov_sampling_rate_decl): New globals.
1249         (insert_if_then, add_sampling_wrapper, is_instrumentation_to_be_sampled)
1250         (add_sampling_to_edge_counters, gimple_init_instrumentation_sampling):
1251         New functions.
1252         (gimple_init_edge_profiler): Call gimple_init_instrumentation_sampling.
1253         (gimple_gen_edge_profiler): Mark start of instrumentation block.
1254         * libgcov.c (__gcov_sampling_rate): New extern declaration.
1255         (gcov_sampling_rate_initialized, __gcov_sample_counter): New globals.
1256         (gcov_exit): Set sampling rate; minor coding style fixes.
1257         (__gcov_init): Initialize __gcov_sampling_rate.
1258         * params.def (PARAM_PROFILE_GENERATE_SAMPLING_RATE): New parameter.
1260 2011-05-03  David Li  <davidxl@google.com>
1262         Backport r173177:
1264         * tree-profile.c (init_ic_make_global_vars): Set
1265         tls attribute on ic vars.
1266         * coverage.c (coverage_end_function): Initialize
1267         function_list with zero.
1269 2011-05-03  David Li  <davidxl@google.com>
1271         Backport r173147:
1273         * tree.c (crc32_string): Use crc32_byte.
1274         (crc32_byte): New function.
1275         * tree.h (crc32_byte): New function.
1276         * gcov.c (read_graph_file): Handle new cfg_cksum.
1277         (read_count_file): Ditto.
1278         * profile.c (instrument_values): Ditto.
1279         (get_exec_counts): Ditto.
1280         (read_profile_edge_counts): Ditto.
1281         (compute_branch_probabilities): Ditto.
1282         (compute_value_histograms): Ditto.
1283         (branch_prob): Ditto.
1284         (end_branch_prob): Ditto.
1285         * coverage.c (read_counts_file): Ditto.
1286         (get_coverage_counts): Ditto.
1287         (tree_coverage_counter_addr): Ditto.
1288         (coverage_checksum_string): Ditto.
1289         (coverage_begin_output): Ditto.
1290         (coverage_end_function): Ditto.
1291         (build_fn_info_type): Ditto.
1292         (build_fn_info_value): Ditto.
1293         * libgcov.c (gcov_exit): Ditto.
1294         * gcov-dump.c (tag_function): Ditto.
1295         (compute_checksum): Remove.
1297 2011-05-03  David Li  <davidxl@google.com>
1299         * l-ipo.c (promote_static_var_or_func): Keep initializer
1300         for externalized aux module variables.
1301         (process_module_scope_static_var): Keep initializer
1302         for promoted static vars to allow ccp.
1304 2011-05-02  Sriraman Tallam  <tmsriram@google.com>
1306         Revert :
1308         2011-05-02  Sriraman Tallam  <tmsriram@google.com>
1310         * c-family/c-common.c   (revision 173122) (handle_version_selector_attribute): New function.
1311         (c_common_attribute_table): New attribute "version_selector".
1312         * tree-pass.h   (revision 173122) (pass_tree_convert_builtin_dispatch): New pass.
1313         (pass_ipa_multiversion_dispatch): New pass.
1314         * testsuite/gcc.dg/mversn7.c    (revision 0): New test case.
1315         * testsuite/gcc.dg/mversn4.c    (revision 0): New test case.
1316         * testsuite/gcc.dg/mversn4.h    (revision 0): New test case.
1317         * testsuite/gcc.dg/mversn4a.c   (revision 0): New test case.
1318         * testsuite/gcc.dg/torture/mversn1.c    (revision 0): New test case.
1319         * testsuite/gcc.dg/mversn2.c    (revision 0): New test case.
1320         * testsuite/gcc.dg/mversn6.c    (revision 0): New test case.
1321         * testsuite/gcc.dg/mversn3.c    (revision 0): New test case.
1322         * testsuite/g++.dg/mversn8.C    (revision 0): New test case.
1323         * testsuite/g++.dg/mversn10a.C  (revision 0): New test case.
1324         * testsuite/g++.dg/mversn14a.C  (revision 0): New test case.
1325         * testsuite/g++.dg/tree-prof/mversn13.C (revision 0): New test case.
1326         * testsuite/g++.dg/tree-prof/mversn15.C (revision 0): New test case.
1327         * testsuite/g++.dg/tree-prof/mversn15a.C        (revision 0): New test case.
1328         * testsuite/g++.dg/mversn9.C    (revision 0): New test case.
1329         * testsuite/g++.dg/mversn10.C   (revision 0): New test case.
1330         * testsuite/g++.dg/mversn12.C   (revision 0): New test case.
1331         * testsuite/g++.dg/mversn14.C   (revision 0): New test case.
1332         * testsuite/g++.dg/mversn16.C   (revision 0): New test case.
1333         * testsuite/g++.dg/torture/mversn11.C   (revision 0): New test case.
1334         * testsuite/g++.dg/torture/mversn5.C    (revision 0): New test case.
1335         * testsuite/g++.dg/torture/mversn5.h    (revision 0): New test case.
1336         * testsuite/g++.dg/torture/mversn5a.C   (revision 0): New test case.
1337         * builtin-types.def     (revision 173122) (BT_PTR_FN_INT): New pointer type.
1338         (BT_FN_INT_PTR_FN_INT_PTR_PTR_VAR): New function type for __builtin_dispatch.
1339         * builtins.def  (revision 173122) (BUILT_IN_DISPATCH): New builtin to
1340         support multi-version calls.
1341         * mversn-dispatch.c     (revision 0): New file.
1342         * timevar.def   (revision 173122) (TV_MVERSN_DISPATCH): New time var.
1343         * common.opt    (revision 173122) (fclone-hot-version-paths): New flag.
1344         * Makefile.in   (revision 173122) (mversn-dispatch.o): New rule.
1345         * passes.c      (revision 173122) (init_optimization_passes): Add the new
1346         multi-version and dispatch passes to the pass list.
1347         * params.def    (revision 173122) (PARAM_NUMBER_OF_MVERSN_CLONES): Define.
1348         (PARAM_MVERSN_CLONE_CGRAPH_DEPTH): Define.
1349         * doc/invoke.texi       (revision 173122) (mversn-clone-depth): Document.
1350         (num-mversn-clones): Document.
1351         (fclone-hot-version-paths): Document.
1353 2011-05-02  Diego Novillo  <dnovillo@google.com>
1355         Merge from google/integration rev 173255.
1357 2011-05-02  Chris Demetriou  <cgd@google.com>
1359         * config/i386/i386.c (get_pc_thunk_name): Make 32-bit
1360         thunk prefix be __x86.get_pc_thunk.
1362 2011-05-01  David Li  <davidxl@google.com>
1364         * l-ipo.c (clear_module_scope_bindings): Clear name binding for
1365         assembler name.
1366         (pop_module_scope): Clear name bindings for the last module.
1367         (lipo_cmp_type): Handle template arg type.
1369 2011-04-30  Guozhi Wei  <carrot@google.com>
1371         PR target/43129
1372         * hooks.c (hook_rtx_void_null): New function.
1373         * hooks.h (hook_rtx_void_null): New prototype.
1374         * target.def (got_access): New hook vector declaration.
1375         * tree-pass.h (pass_simplify_got): New pass.
1376         * timevar.def (TV_SIMPLIFY_GOT): New TV id.
1377         * simplify-got.c: New source file.
1378         * Makefile.in (simplify-got.o): Add a new file.
1379         * passes.c (init_optimization_passes): Add a new pass.
1380         * config/arm/arm.c (arm_output_addr_const_extra): Output GOT_PREL
1381         relocation.
1382         (arm_get_pic_reg): New function.
1383         (arm_clear_pic_reg): New function.
1384         (arm_can_simplify_got_access): New function.
1385         (arm_loaded_global_var): New function.
1386         (arm_load_global_address): New function.
1387         * config/arm/arm.md (UNSPEC_GOT_PREL_SYM): New UNSPEC symbol.
1389 2011-04-29  Cary Coutant  <ccoutant@google.com>
1391         * common.opt (generate_debug_line_table): New global var.
1392         (gmlt): New option
1393         * dwarf2out.c (GENERATE_MINIMUM_LINE_TABLE): New macro.
1394         (add_pubname_string): Test for -gmlt.
1395         (add_pubname): Likewise.
1396         (add_src_coords_attributes): Likewise.
1397         (decls_for_scope): Likewise.
1398         (dwarf2out_source_line): Likewise.
1399         (dwarf2out_finish): Likewise.
1400         * opts.c (finish_options): Force debug info to at least level 1
1401         if -gmlt specified.
1402         (common_handle_option): Add OPT_gmlt.
1403         (set_debug_level): Set generate_debug_line_table flag.
1404         * tree-ssa-live.c (remove_unused_scope_block_p): Test for -gmlt.
1406         * doc/invoke.texi (-gmlt): New options
1408 2011-04-29  Cary Coutant  <ccoutant@google.com>
1410         * basic-block.h (struct basic_block_def): Remove discriminator field.
1411         * cfghooks.c (split_block): Remove discriminator field.
1412         * cfglayout.c (insn_discriminator): New function.
1413         * final.c (discriminator): Remove.
1414         (override_discriminator): New file-scope variable.
1415         (final_start_function): Remove tracking of discriminator by basic
1416         block.
1417         (final_scan_insn): Track discriminator by instruction.
1418         (notice_source_line): Check for discriminator override. Get
1419         discriminator from instruction.
1420         * gimple-pretty-print.c (dump_gimple_stmt): Print discriminator.
1421         (dump_bb_header): Don't print discriminator.
1422         * input.c: Include vecprim.h.
1423         (discriminator_location_locations): New variable.
1424         (discriminator_location_discriminators): New variable.
1425         (min_discriminator_location): New variable.
1426         (expand_location): Use map_discriminator_location.
1427         (location_with_discriminator): New function.
1428         (has_discriminator): New function.
1429         (map_discriminator_location): New function.
1430         (get_discriminator_from_locus): New function.
1431         * input.h (location_with_discriminator): New function.
1432         (has_discriminator): New function.
1433         (map_discriminator_location): New function.
1434         (get_discriminator_from_locus): New function.
1435         * print-rtl.c (print_rtx): Print discriminator.
1436         * rtl.h (insn_discriminator): New function.
1437         * tree-cfg.c: Include input.h.
1438         (assign_discriminator): Assign discriminators to instructions rather
1439         than to the basic block.
1440         * tree-pretty-print.c (dump_location): Print discriminator.
1442 2011-04-28  Sharad Singhai  <singhai@google.com>
1444         * params.def: Add new parameters to control peeling.
1445         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Use
1446         different peeling parameters when profile feedback is available.
1447         * loop-unroll.c (decide_peel_once_rolling): Ditto.
1448         (decide_peel_completely): Ditto.
1449         * doc/invoke.texi: Document new peeling parameters.
1451 2011-04-28  Sharad Singhai  <singhai@google.com>
1453         Google Ref 40087
1455         * opts.c (common_handle_option): Disable -ftracer for profile use.
1456         * doc/invoke.texi: Update doc that -ftracer is no longer
1457         enabled for FDO.
1459 2011-04-28  Xinliang David Li  <davidxl@google.com>
1461         * final.c (profile_function): Use FUNC_LABEL_ID.
1462         * dwarf2out.c (dwarf2out_vms_end_prologue): Ditto.
1463         (dwarf2out_vms_begin_epilogue): Ditto.
1464         (dwarf2out_vms_debug_main_pointer): Ditto.
1465         * cgraphunit.c (cgraph_finalize_compilation_unit):
1466         Remove eq type alias set computation.
1467         * tree-profile.c (gimple_gen_ic_func_topn_profiler): Do not skip any functions.
1468         (tree_profiling): Add type alias merging.
1469         * l-ipo.c (restore_post_parsing_states): Use max funcdef_no.
1470         (pop_module_scope): Use max funcdef_no.
1471         * gcov-dump.c (tag_function): Fix a bug in function read.
1473 2011-04-27  Xinliang David Li  <davidxl@google.com>
1475         * value-prof.c (init_node_map): Disable for lipo mode.
1476         (del_node_map): Disable for lipo mode.
1478 2011-04-27  Le-Chun Wu  <lcwu@google.com>
1480         Google ref 42718.
1482         * doc/extend.texi (Wnonnull): Add documentation for C++.
1483         * doc/invoke.texi (Wnonnull): Add documentation for C++.
1485 2011-04-27  Le-Chun Wu  <lcwu@google.com>
1487         * opts.c (common_handle_option): Do not enable Wshadow-local
1488         nor Wshadow-compatible-local if Wshadow is disabled.
1490 2011-04-27  Le-Chun Wu  <lcwu@google.com>
1492         Google ref 39127.
1494         * c-decl.c (warn_if_shadowing): Use the warning code corresponding
1495         to the given -Wshadow- variant.
1496         * common.opt (Wshadow-local): New option.
1497         (Wshadow-compatible-local): New option.
1498         * invoke.texi: Document Wshadow-local and Wshadow-compatible-local.
1499         * opts.c (common_handle_option): Handle OPT_Wshadow and
1500         OPT_Wshadow_local.
1502 2011-04-27  Silvius Rus  <silvius.rus@gmail.com>
1504         Google ref 39984.
1506         * doc/invoke.texi (fno-strict-enum-precision): Document.
1507         * gimplify.c (gimplify_switch_expr): If
1508         -fno-strict-enum-precision is given, do not consider enum
1509         types.
1510         * tree-vrp.c (stmt_interesting_for_vrp): If
1511         -fno-strict-enum-precision is given, do not look at enum
1512         types.
1514 2011-04-26  Xinliang David Li  <davidxl@google.com>
1516         * tree-ssa-uninit.c (warn_uninitialized_phi): Pass
1517          warning code.
1518         * opts.c (common_handle_option): Ditto.
1519         * common.opt:  New option.
1520         * tree-ssa.c (warn_uninit): Add one more parameter.
1521         (warn_uninitialized_var): Pass warning code.
1522         * tree-flow.h: Interface change.
1524 2011-04-26  Xinliang David Li  <davidxl@google.com>
1526         * toplev.c (process_options): Enable -Werror=coverage-mismatch
1527         by default when -Wno-error is not specified.
1528         * opts-global.c (decode_options): Remove call to
1529         control_warning_options.
1531 2011-04-26  Xinliang David Li  <davidxl@google.com>
1533         * cgraph.h: Remove pid.
1534         * cgraph.c: Remove pid.
1535         * value-prof.c (init_node_map): New function.
1536         (del_node_map): New function.
1537         (find_func_by_funcdef_no): New function.
1538         (gimple_ic_transform): Call new function.
1539         * cgraphunit.c (cgraph_finalize_function): Remove pid.
1540         * function.c (get_last_funcdef_no): New function.
1541         * function.h (get_last_funcdef_no): New function.
1542         * tree-profile.c (gimple_gen_ic_func_profiler): Pass funcdef_no
1543         to libgcov function.
1544         (tree-profiling): Call node map init and delete function.
1546 2011-04-26  Le-Chun Wu  <lcwu@google.com>
1548         * common.opt: New option.
1549         * doc/invoke.texi: Documentation for new options.
1550         * fold-const.c (operand_equal_p): Allow operands without typres to
1551         compare.
1552         (fold_unary_loc_1): Renamed from fold_unary_loc.
1553         (fold_unary_loc): New wrapper function.
1554         (fold_binary_loc_1): Renamed from fold_binary_loc.
1555         (fold_binary_loc): New wrapper function.
1556         (fold_ternary_loc_1): Renamed from fold_ternary_loc.
1557         (fold_ternary_loc): New wrapper function.
1558         * tree.h (struct tree_base): New flag for folded expr.
1559         (enum operand_equal_flag): New flags.
1561 2011-04-25  David Li  <davidxl@google.com>
1563         * cgraphbuild.c (rebuild_cgraph_edges): Create edges based
1564         using resolved nodes in LIPO mode after ipa_tree_profiling.
1565         * dyn-ipa.c:  New file.
1566         * dbgcnt.def: New debug counters.
1567         * cgraph.c (cgraph_mark_reachable_node): Handle aux module nodes.
1568         (cgraph_clone_node): New field initialization.
1569         (cgraph_create_virtual_clone): New field initialization.
1570         * value-prof.c (dump_histogram_value): New hist kind.
1571         (check_counter): New function.
1572         (gimple_value_profile_transformations): New ic kind.
1573         (gimple_ic_transform): Changed interface.
1574         (gimple_indirect_call_to_profile): New vpt kind.
1575         (gimple_find_values_to_profile): New vpt kind.
1576         * cgraphunit.c (cgraph_finalize_function): Handle LIPO mode.
1577         (verify_edge_count_and_frequency): Ditto.
1578         (verify_cgraph_node): Ditto.
1579         (cgraph_finalize_compilation_unit): Ditto.
1580         (cgraph_mark_functions_to_output): Ditto.
1581         (cgraph_expand_function): Ditto.
1582         (cgraph_output_in_order): Ditto.
1583         (cgraph_optimize): Ditto.
1584         (cgraph_copy_node_for_versioning): Ditto.
1585         (cgraph_materialize_clone): Ditto.
1586         (cgraph_redirect_edge_call_stmt_to_callee): Ditto.
1587         * gcov-io.c (gcov_read_summary): Ditto.
1588         * tree-ssa-alias.c (same_type_for_tbaa): Ditto.
1589         (refs_may_alias_p_1): Ditto.
1590         (walk_aliased_vdefs): Ditto.
1591         * ipa-inline.c (cgraph_mark_inline_edge): Ditto.
1592         (cgraph_recursive_inlining_p): Ditto.
1593         (cgraph_edge_badness): Ditto.
1594         (update_caller_keys): Ditto.
1595         (cgraph_decide_recursive_inlining): Ditto.
1596         (cgraph_decide_inlining_of_small_function): Ditto.
1597         (cgraph_decide_inlining): Ditto.
1598         (cgraph_decide_inlining_incrementally): Ditto.
1599         (estimate_function_body_sizes): Ditto.
1600         * dwarf2out.c (dwarf2out_do_cfi_startproc): Ditto.
1601         (dwarf2out_begin_prologue): Ditto.
1602         (dwarf2out_end_epilogue): Ditto.
1603         (dw_loc_list): Ditto.
1604         (gen_subprogram_die): Ditto.
1605         (dwarf2out_source_line): Ditto.
1606         * c-decl.c (bind): Ditto.
1607         (pop_scope): Ditto. Ditto.
1608         (push_file_scope): Ditto.
1609         (pop_file_scope): Ditto.
1610         (finish_decl): Ditto.
1611         (c_write_global_declarations): Ditto.
1612         * langhooks.c (lhd_do_nothing_f): Ditto.
1613         (lhd_do_nothing_t_t_return_null_tree): Ditto.
1614         (lhd_return_null_tree_v): Ditto.
1615         (lhd_builtin_function): Ditto.
1616         * function.c (pop_cfun): Ditto.
1617         (allocate_struct_function): Ditto.
1618         * profile.c (instrument_values): Ditto.
1619         (is_edge_inconsistent): Ditto.
1620         * ipa.c (process_references): Ditto.
1621         (cgraph_remove_unreachable_nodes): Ditto.
1622         (function_and_variable_visibility):
1623         * c-typeck.c (tagged_types_tu_compatible_p): Ditto.
1624         * gimplify.c (gimplify_addr_expr): Ditto.
1625         * except.c (sjlj_emit_function_enter): Ditto.
1626         (output_one_function_exception_table): Ditto.
1627         * coverage.c (get_gcov_type): Ditto.
1628         (htab_counts_entry_del): Ditto.
1629         (read_counts_file): Ditto.
1630         (get_coverage_counts): Ditto.
1631         (coverage_checksum_string): Ditto.
1632         (coverage_begin_output): Ditto.
1633         (coverage_end_function): Ditto.
1634         (build_fn_info_type): Ditto.
1635         (build_fn_info_value): Ditto.
1636         (build_ctr_info_value): Ditto.
1637         (build_gcov_info): Ditto.
1638         (create_coverage): Ditto.
1639         (coverage_finish): Ditto.
1640         * tree-sra.c (convert_callers): Ditto.
1641         (modify_function): Ditto.
1642         (ipa_early_sra): Ditto.
1643         * varasm.c (notice_global_symbol): Ditto.
1644         (assemble_external): Ditto.
1645         (mark_decl_referenced): Ditto.
1646         (find_decl_and_mark_needed): Ditto.
1647         (finish_aliases_1): Ditto.
1648         (assemble_alias): Ditto.
1649         * tree-ssa.c (useless_type_conversion_p): Ditto.
1650         * tree-inline.c (copy_bb): Ditto.
1651         (copy_edges_for_bb): Ditto.
1652         (initialize_cfun): Ditto.
1653         (copy_cfg_body): Ditto.
1654         (tree_inlinable_function_p): Ditto.
1655         (optimize_inline_calls): Ditto.
1656         (copy_tree_r): Ditto.
1657         * tree-profile.c (init_ic_make_global_vars): Ditto.
1658         (gimple_init_edge_profiler): Ditto.
1659         (gimple_gen_ic_profiler): Ditto.
1660         (gimple_gen_ic_func_profiler): Ditto.
1661         (tree_profiling): Ditto.
1662         * opts-global.c (lang_handle_option): Ditto.
1663         (add_input_filename): Ditto.
1664         (read_cmdline_options): Ditto.
1665         * l-ipo.c: Ditto.
1666         * libgcov.c (gcov_version): Ditto.
1667         (gcov_exit): Ditto.
1668         (__gcov_init): Ditto.
1669         (__gcov_flush): Ditto.
1670         (__gcov_merge_ior): Ditto.
1671         (__gcov_one_value_profiler_body): Ditto.
1672         (__gcov_indirect_call_profiler): Ditto.
1673         * l-ipo.h: Ditto.
1674         * tree-cfg.c: (verify_types_in_gimple_reference): Ditto.
1675         (verify_gimple_call): Ditto.
1676         (verify_gimple_assign_single): Ditto.
1677         (verify_gimple_return): Ditto.
1678         (gimple_verify_flow_info): Ditto.
1679         * passes.c: (rest_of_decl_compilation): Ditto.
1680         (init_optimization_passes): Ditto.
1681         (pass_init_dump_file): Ditto.
1682         * varpool.c (varpool_node): Ditto.
1683         (debug_varpool): Ditto.
1684         (varpool_node_for_asm): Ditto.
1685         (varpool_enqueue_needed_node): Ditto.
1686         * stmt.c (expand_asm_operands): Ditto.
1687         * gcov-dump.c (main): Ditto.
1688         (print_usage): Ditto.
1689         (print_prefix): Ditto.
1690         (dump_file): Ditto.
1691         (tag_summary): Ditto.
1693 2011-04-19  Guozhi Wei  <carrot@google.com>
1695         * config/arm/arm.c (SHORTEST_FAR_JUMP_LENGTH): New constant.
1696         (estimate_function_length): New function.
1697         (thumb_far_jump_used_p): No far jump is needed in short function.
1699 2011-04-20  Easwaran Raman  <eraman@google.com>
1701         * gcc.c (asm_options): Pass --save-temps to assembler.
1703 2011-04-19  Martin Thuresson  <martint@google.com>
1705         * libgcov.c (gcov_version): Do not access filename in struct
1706         generated from different version.
1708 2011-04-19  Xinliang David Li  <davidxl@google.com>
1710         * ipa-inline.c (cgraph_decide_recursive_inlining): Fix
1711         div by zero error with insane profile.
1713 2011-04-17  Diego Novillo  <dnovillo@google.com>
1715         Merge from google/integration rev 172609.
1717 2011-04-11  Xinliang David Li  <davidxl@google.com>
1719         * value-profile.c (check_ic_target): New function.
1720         (gimple_ic_transform): Sanity check indirect call target.
1721         * gimple-low.c (gimple_check_call_args): Interface change.
1722         (gimple_check_call_matching_types): New function.
1723         * tree-inline.c (tree_can_inline_p): Call new function.
1725 2011-04-08  Xinliang David Li  <davidxl@google.com>
1727         * ipa-cp.c (ipcp_update_profiling): Correct
1728          negative scale factor due to insane profile data.
1730 2011-04-08  Xinliang David Li  <davidxl@google.com>
1732         * final.c (dump_basic_block_info): New function.
1733         (final): Dump basic block.
1734         (final_scan_insn): Remove old dump.
1736 2011-03-29  Le-Chun Wu  <lcwu@google.com>
1738         Merge from branches/annotalysis at r171529.
1740         Port annotalysis (lock annotations and analysis) from GCC-4.4.3 to
1741         GCC-4.6 tree.
1743 2011-03-28  Martin Thuresson  <martint@google.com>
1745         * doc/invoke.texi: Document support for relative profile paths.
1746         * libgcov.c (gcov_exit): Support relative profile paths.
1748 2011-03-15  Diego Novillo  <dnovillo@google.com>
1750         Merge from google/integration rev 170988 (gcc-4_6-branch).
1752 2011-03-14  Diego Novillo  <dnovillo@google.com>
1754         Merge from google/integration rev 170957.
1756 2011-02-26  Diego Novillo  <dnovillo@google.com>
1758         Merge from google/integration rev 170499.
1760 2011-02-07  Diego Novillo  <dnovillo@google.com>
1762         Merge from google/integration.
1764 2011-02-04  Diego Novillo  <dnovillo@google.com>
1766         Merge from google/integration.
1768         * BASE-VER: Fix.
1770 Copyright (C) 2011 Free Software Foundation, Inc.
1772 Copying and distribution of this file, with or without modification,
1773 are permitted in any medium without royalty provided the copyright
1774 notice and this notice are preserved.