2012-11-05 Dehao Chen <dehao@google.com>
[official-gcc.git] / gcc-4_7 / gcc / ChangeLog.google-4_7
blob54a96e982295f14eee880f1e385e8852f94ae63b
1 2012-11-05  Dehao Chen  <dehao@google.com>
3         Backport 193169, 193137 and 193053 from trunk:
5         * tree-eh.c (do_return_redirection): Set location for jump statement.
6         (do_goto_redirection): Likewise.
7         (frob_into_branch_around): Likewise.
8         (lower_try_finally_nofallthru): Likewise.
9         (lower_try_finally_copy): Likewise.
10         (lower_try_finally_switch): Likewise.
11         * expr.c (store_expr): Use current insn location instead of expr
12         location.
13         (expand_expr_real): Likewise.
14         (expand_expr_real_1): Likewise.
15         * cfglayout.c (reemit_insn_block_notes): Do not change scope if insn
16         location is UNKNOWN_LOCATION.
18 2012-11-01   Easwaran Raman <eraman@google.com>
20         Backport 191302 and 192651 from trunk:
22         2012-09-14  Eric Botcazou  <ebotcazou@adacore.com>
23         
24                 PR rtl-optimization/44194
25                 * calls.c (expand_call): In the PARALLEL case, copy the return value
26                 into pseudos instead of spilling it onto the stack.
27                 * emit-rtl.c (adjust_address_1): Rename ADJUST into ADJUST_ADDRESS and
28                 add new ADJUST_OBJECT parameter.
29                 If ADJUST_OBJECT is set, drop the underlying object if it cannot be
30                 proved that the adjusted memory access is still within its bounds.
31                 (adjust_automodify_address_1): Adjust call to adjust_address_1.
32                 (widen_memory_access): Likewise.
33                 * expmed.c (store_bit_field_1): Call adjust_bitfield_address instead
34                 of adjust_address.  Do not drop the underlying object of a MEM.
35                 (store_fixed_bit_field): Likewise.
36                 (extract_bit_field_1): Likewise.  Fix oversight in recursion.
37                 (extract_fixed_bit_field): Likewise.
38                 * expr.h (adjust_address_1): Adjust prototype.
39                 (adjust_address): Adjust call to adjust_address_1.
40                 (adjust_address_nv): Likewise.
41                 (adjust_bitfield_address): New macro.
42                 (adjust_bitfield_address_nv): Likewise.
43                 * expr.c (expand_assignment): Handle a PARALLEL in more cases.
44                 (store_expr): Likewise.
45                 (store_field): Likewise.
46         
47                 * dse.c: Fix typos in the head comment.
48         2012-10-21  Eric Botcazou  <ebotcazou@adacore.com>
49         
50                 PR rtl-optimization/44194
51                 * calls.c (expand_call): Allow sibling calls in the PARALLEL case.
53 2012-10-25  Dehao Chen  <dehao@google.com>
55         Backport r191810 from trunk.
57         * cfglayout.c (fixup_reorder_chain): Compare locus against
58         UNKNOWN_LOCATION.
60 2012-10-20   Xinliang David Li  <davidxl@google.com>
62         * dwarf2out.c: change functdef etc to be long time.
63         * function.h: Make FUNC_LABEL_ID 64 bit if possible.
65 2012-10-19   Easwaran Raman <eraman@google.com>
67         * tree-ssa-reassoc.c (assign_uids): New function.
68         (assign_uids_in_relevant_bbs): Likewise.
69         (ensure_ops_are_available): Likewise.
70         (rewrite_expr_tree): Do not move statements beyond what is
71         necessary.Remove call to swap_ops_for_binary_stmt...
72         (reassociate_bb): ... and move it here.
74 2012-10-19   Xinliang David Li  <davidxl@google.com>
76         * dwarf2out.c (get_subprogram_die): Use FUNC_LABEL_ID instead
77         of current_function_funcdef_no to synthysize label name.
79 2012-10-19  Teresa Johnson  <tejohnson@google.com>
81         Backport r192624 from google/main.
83         2012-10-19  Teresa Johnson  <tejohnson@google.com>
85         * ree.c (add_removable_extension): Remove unnecessary
86         mode check with other extension.
87         * testsuite/gcc.c-torture/execute/20111227-2.c: New test.
88         * testsuite/gcc.c-torture/execute/20111227-3.c: Ditto.
90 2012-10-18   Easwaran Raman <eraman@google.com>
92         Backport r183817 from google/gcc-4_6 branch.
94         2012-02-01  Easwaran Raman  <eraman@google.com>
95         
96                 * expr.c (do_tablejump): Add default_probability as the
97                 sixth parameter and use it to generate REG_BR_PROB note.
98                 (try_tablejump): Add default_probability as a parameter.
99                 * cfgbuild.c (non_zero_profile_counts): New function.
100                 (compute_outgoing_frequencies): If edges have profile counts
101                 set, don't replace them with guessed values.
102                 * expr.h (try_tablejump): Add additional parameter to the
103                 declaration.
104                 * stmt.c (tree-flow.h): Include.
105                 (case_node): Add new fields count and subtree_count.
106                 (add_case_node): Pass count as a paramater and initialize
107                 count field of case_node.
108                 (case_probability): New macro.
109                 (expand_case): Propagate profile information from the tree
110                 level to RTL during switch case expansion.
111                 (balance_case_nodes): Compute subtree_count for case nodes.
112                 (emit_case_nodes): Set branch probabilities for generated
113                 branches.
115 2012-10-16   DeLesley Hutchins  <delesley@google.com>
117         common.opt:
118         Add clang thread safety warning flags as supported, but ignored.
119         (-Wthread-safety-analysis/attributes/precise)
121 2012-10-10  Dehao Chen  <dehao@google.com>
123         Backport 192285 from trunk:
125         2012-10-10  Dehao Chen  <dehao@google.com>
127         * tree-eh.c (lower_try_finally_onedest): Set correct location for
128         deallocator.
129         * gimplify.c (gimplify_expr): Set correct location for TRY stmt.
131 2012-10-10  Diego Novillo  <dnovillo@google.com>
133         Merge from gcc-4_7-branch rev 192176.
135         Rollback revisions 190375 and 190601 (TM backports).
137 2012-10-09  Harshit Chopra  <harshit@google.com>
139         Backport 192231 from google/main:
141         2012-09-28  Harshit Chopra  <harshit@google.com>
143         * gcc/config/i386/i386.c (ix86_output_function_nops_prologue_epilogue):
144         Emit relative address to function patch sections.
146 2012-10-09  Rong Xu <xur@google.com>
148         Google Ref: b/7049102.
149         * gcc.dg/tree-ssa/vrp1.c: New testcase.
151 2012-10-09  Rong Xu <xur@google.com>
153         Google Ref: b/7049102.
154         Backport r190291 from trunk.
156         2012-08-10  Richard Guenther  <rguenther@suse.de>
158                 PR tree-optimization/54109
159                 * tree-ssa-forwprop.c
160                 (forward_propagate_addr_into_variable_array_index): Remove.
161                 (forward_propagate_addr_expr_1): Adjust.
163                 * gcc.dg/torture/pr54109.c: New testcase.
164                 * gcc.dg/tree-ssa/forwprop-1.c: Adjust.
165                 * gcc.dg/tree-ssa/forwprop-2.c: Likewise.
167 2012-10-08  Dehao Chen  <dehao@google.com>
169         Backport 191931, 192049, 192120, 192165 from trunk.
171         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Use
172         LOCATION_LOCUS to compare with UNKNOWN_LOCATION.
173         (slpeel_tree_peel_loop_to_edge): Likewise.
174         * tree-vectorizer.c (vectorize_loops): Likewise.
175         * tree-cfg.c (move_block_to_fn): Update lexical block for phi_args.
176         * tree-ssa-live.c (clear_unused_block_pointer_1): Look at
177         DECL_DEBUG_EXPR again.
178         * gimple-low.c (lower_stmt): Set the block for call args.
180 2012-10-08  Dehao Chen  <dehao@google.com>
182         Backport 192215 from trunk:
184         2012-10-08  Dehao Chen  <dehao@google.com>
186         * predict.c (predict_extra_loop_exits): Use
187         predict_paths_leading_to_edge to replace predict_edge_def.
189 2012-10-01  Teresa Johnson  <tejohnson@google.com>
191         Backport 191932 from google/main:
193         Add a new dump flag that dumps PMU profile information using the -pmu
194         dump option.
196         2012-10-01  Teresa Johnson  <tejohnson@google.com>
197                     Chris Manghane  <cmang@google.com>
199         * doc/invoke.texi: Update -fpmu-profile-use option.
200         * tree-dump.c: Add new dump flag.
201         * tree-pretty-print.c (dump_load_latency_details): New function.
202         (dump_pmu): Ditto.
203         (dump_generic_node): Add support for new dump flag.
204         * tree-pretty-print.h (dump_pmu): Declare.
205         * tree-pass.h (enum tree_dump_index): Add new dump flag.
206         * gcov.c (process_pmu_profile): Fix string table count assert.
207         * opts.c (OPT_fpmu_profile_use_): Add support for -fpmu-profile-use.
208         * gimple-pretty-print.c (dump_gimple_phi): Add support for new dump
209         flag.
210         (dump_gimple_stmt): Ditto.
211         * coverage.c (struct pmu_entry): New structure.
212         (struct gcov_pmu_summary): Ditto.
213         (htab_pmu_entry_hash): New function.
214         (htab_pmu_entry_eq): Ditto.
215         (htab_pmu_entry_del): Ditto.
216         (read_pmu_file): Ditto.
217         (get_pmu_hash_entry): Ditto.
218         (process_pmu_data): Ditto.
219         (get_coverage_pmu_latency): Ditto.
220         (get_coverage_pmu_branch_mispredict): Ditto.
221         (pmu_data_present): Ditto.
222         (coverage_init): Add pmu file read support.
223         * coverage.h (get_coverage_pmu_latency): Declare.
224         (get_coverage_pmu_branch_mispredict): Ditto.
225         * common.opt: Update -fpmu-profile-use option.
227 2012-09-28  Rong Xu  <xur@google.com>
229         Google Ref: b/7005205
230         * gcc/coverage.c (coverage_checksum_string): strip out LIPO 
231         specific string. 
232         (crc32_string_1): New function.
233         * gcc/cp/decl2.c (start_static_storage_duration_function):
234         generate LIPO specific string.
236 2012-09-27  Dehao Chen  <dehao@google.com>
238         Backport from trunk r191494, r191510, r191614, r191669, r191680,
239         r191706, r191747, r191759, r191779 and r191810:
241         * toplev.c (toplev_main): Finalize block_locations.
242         * tree.c (tree_set_block): New.
243         (tree_block): Change to use LOCATION_BLOCK.
244         (build1_stat): Remove block.
245         * tree.h (TREE_SET_BLOCK): New.
246         (tree_set_block): New.
247         (tree_block): Change to return tree.
248         (TREE_BLOCK): Likewise.
249         (tree_exp): Remove block.
250         (DECL_IS_BUILTIN): Compare LOCATION_LOCUS.
251         (EXPR_HAS_LOCATION): Likewise.
252         (inlined_function_outer_scope_p): Likewise.
253         (OMP_CLAUSE_HAS_LOCATION): Likewise.
254         * cfglayout.c (reemit_insn_block_notes): Change to use LOCATION_BLOCK.
255         (fixup_reorder_chain): Likewise.
256         (insn_discriminator): Likewise.
257         (insn_locators_alloc): Remove.
258         (insn_locators_finalize): Remove.
259         (insn_locators_free): Remove.
260         (set_curr_insn_source_location): Remove.
261         (get_curr_insn_source_location): Remove.
262         (set_curr_insn_block): Remove.
263         (get_curr_insn_block): Remove.
264         (locator_scope): Remove.
265         (insn_scope): Change to use new location.
266         (locator_location): Remove.
267         (insn_line): Change to use new location.
268         (locator_file): Remove.
269         (insn_file): Change to use new location.
270         (locator_eq): Remove.
271         (insn_locations_init): New.
272         (insn_locations_finalize): New.
273         (set_curr_insn_location): New.
274         (curr_insn_location): New.
275         * final.c (final_start_function): Likewise.
276         * input.c (expand_location): Likewise.
277         (location_with_discriminator): Likewise.
278         (has_discriminator): Likewise.
279         (map_discriminator_location): Likewise.
280         (get_discriminator_from_locus): Likewise.
281         * input.h (LOCATION_LOCUS): New.
282         (LOCATION_BLOCK): New.
283         * fold-const.c (expr_location_or): Change to use new location.
284         * reorg.c (emit_delay_sequence): Likewise.
285         (dbr_schedule): Likewise.
286         * modulo-sched.c (loop_single_full_bb_p): Likewise.
287         (dump_insn_location): Likewise.
288         (loop_canon_p): Likewise.
289         (sms_schedule): Likewise.
290         * lto-streamer-out.c (lto_output_location_bitpack): Likewise.
291         * lto-cgraph.c (output_node_opt_summary): Likewise.
292         * jump.c (rtx_renumbered_equal_p): Likewise.
293         * ifcvt.c (noce_try_move): Likewise.
294         (noce_try_store_flag): Likewise.
295         (noce_try_store_flag_constants): Likewise.
296         (noce_try_addcc): Likewise.
297         (noce_try_store_flag_mask): Likewise.
298         (noce_try_cmove): Likewise.
299         (noce_try_cmove_arith): Likewise.
300         (noce_try_minmax): Likewise.
301         (noce_try_abs): Likewise.
302         (noce_try_sign_mask): Likewise.
303         (noce_try_bitop): Likewise.
304         (noce_process_if_block): Likewise.
305         (cond_move_process_if_block): Likewise.
306         (find_cond_trap): Likewise.
307         * ipa-prop.c (ipa_set_jf_constant): Likewise.
308         (ipa_write_jump_function): Likewise.
309         * dwarf2out.c (add_src_coords_attributes): Likewise.
310         * expr.c (expand_expr_real): Likewise.
311         * tree-parloops.c (create_loop_fn): Likewise.
312         * recog.c (peep2_attempt): Likewise.
313         * function.c (free_after_compilation): Likewise.
314         (expand_function_end): Likewise.
315         (maybe_copy_prologue_epilogue_insn): Likewise.
316         (set_insn_locations): Likewise.
317         (thread_prologue_and_epilogue_insns): Likewise.
318         * print-rtl.c (print_rtx): Likewise.
319         * profile.c (branch_prob): Likewise.
320         * trans-mem.c (ipa_tm_scan_irr_block): Likewise.
321         * gimplify.c (gimplify_call_expr): Likewise.
322         * except.c (duplicate_eh_regions_1): Likewise.
323         * emit-rtl.c (try_split): Likewise.
324         (make_insn_raw): Likewise.
325         (make_debug_insn_raw): Likewise.
326         (make_jump_insn_raw): Likewise.
327         (make_call_insn_raw): Likewise.
328         (emit_pattern_after_setloc): Likewise.
329         (emit_pattern_after): Likewise.
330         (emit_insn_after_setloc): Likewise.
331         (emit_insn_after): Likewise.
332         (emit_jump_insn_after_setloc): Likewise.
333         (emit_jump_insn_after): Likewise.
334         (emit_call_insn_after_setloc): Likewise.
335         (emit_call_insn_after): Likewise.
336         (emit_debug_insn_after_setloc): Likewise.
337         (emit_debug_insn_after): Likewise.
338         (emit_pattern_before_setloc): Likewise.
339         (emit_pattern_before): Likewise.
340         (emit_insn_before_setloc): Likewise.
341         (emit_insn_before): Likewise.
342         (emit_jump_insn_before_setloc): Likewise.
343         (emit_jump_insn_before): Likewise.
344         (emit_call_insn_before_setloc): Likewise.
345         (emit_call_insn_before): Likewise.
346         (emit_debug_insn_before_setloc): Likewise.
347         (emit_debug_insn_before): Likewise.
348         (emit_copy_of_insn_after): Likewise.
349         * cfgexpand.c (gimple_assign_rhs_to_tree): Change to use new location.
350         (expand_gimple_cond): Likewise.
351         (expand_call_stmt): Likewise.
352         (expand_gimple_stmt_1): Likewise.
353         (expand_gimple_basic_block): Likewise.
354         (construct_exit_block): Likewise.
355         (gimple_expand_cfg): Likewise.
356         * cfgcleanup.c (try_forward_edges): Likewise.
357         * tree-ssa-live.c (remove_unused_scope_block_p): Likewise.
358         (dump_scope_block): Likewise.
359         (mark_all_vars_used): Likewise.
360         (remove_unused_locals): Likewise.
361         (clear_unused_block_pointer): New.
362         (clear_unused_block_pointer_1): New.
363         * rtl.c (rtx_equal_p_cb): Likewise.
364         (rtx_equal_p): Likewise.
365         * rtl.h (XUINT): New.
366         (INSN_LOCATOR): Remove.
367         (CURR_INSN_LOCATION): Remove.
368         (INSN_LOCATION): New.
369         (INSN_HAS_LOCATION): New.
370         * tree-inline.c (remap_gimple_op_r): Change to use new location.
371         (copy_tree_body_r): Likewise.
372         (copy_phis_for_bb): Likewise.
373         (expand_call_inline): Likewise.
374         * tree-streamer-in.c (lto_input_ts_exp_tree_pointers): Likewise.
375         * tree-streamer-out.c (write_ts_decl_minimal_tree_pointers): Likewise.
376         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
377         * combine.c (try_combine): Likewise.
378         * tree-outof-ssa.c (set_location_for_edge): Likewise.
379         (insert_partition_copy_on_edge): Likewise.
380         (insert_value_copy_on_edge): Likewise.
381         (insert_rtx_to_part_on_edge): Likewise.
382         (insert_part_to_rtx_on_edge): Likewise.
383         * basic-block.h (edge_def): Remove field.
384         * gimple.h (gimple_statement_base): Remove field.
385         (gimple_bb): Change to use new location.
386         (gimple_block): Likewise.
387         (gimple_set_block): Likewise.
388         (gimple_set_location): Likewise.
389         (gimple_has_location): Likewise.
390         * tree-cfg.c (make_cond_expr_edges): Likewise.
391         (make_goto_expr_edges): Likewise.
392         (gimple_can_merge_blocks_p): Likewise.
393         (assign_discriminator): Likewise.
394         (move_stmt_op): Likewise.
395         (move_block_to_fn): Likewise.
396         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise.
397         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
398         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
399         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
400         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
401         (gen_block_redirect): Likewise.
402         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
403         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
404         (rs6000_final_prescan_insn): Likewise.
405         * config/score/score.c (score_output_mi_thunk): Likewise.
406         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
407         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
408         (mips16_gp_pseudo_reg): Likewise.
409         * config/s390/s390.c (s390_chunkify_start): Likewise.
410         * config/spu/spu.c (emit_nop_for_insn): Likewise.
411         (pad_bb): Likewise.
412         (spu_emit_branch_hint): Likewise.
413         (insert_hbrp_for_ilb_runout): Likewise.
414         * config/mep/mep.c (mep_make_bundle): Likewise.
415         (mep_bundle_insns): Likewise.
416         * config/c6x/c6x.c (gen_one_bundle): Likewise.
417         * config/picochip/picochip.c (picochip_reorg): Likewise.
418         * config/arm/arm.c (require_pic_register): Likewise.
419         * config/bfin/bfin.c (gen_one_bundle): Likewise.
420         * cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
421         (cfg_layout_merge_blocks): Likewise.
422         * stmt.c (emit_case_nodes): Likewise.
423         * tree-eh.c (lower_try_finally_dup_block): Likewise.
424         (honor_protect_cleanup_actions): Likewise.
426 2012-09-24  Xinliang David Li  <davidxl@google.com>
428         * varasm.c (finish_alias_1):  Fix mis-fired error
429         for extern alias (same-body) in LIPO mode.
431 2012-09-24  Xinliang David Li  <davidxl@google.com>
433         * df-problems.c (df_check_ud_du_memory_usage): New function.
434         * ree.c (rest_of_handle_ree): Suppress ree if it requires
435          too much memory.
436         * dce.c (rest_of_handle_ud_dce): Ditto.
438 2012-09-24  Rong Xu  <xur@google.com>
440         Google Ref: b/7210837 and b/7210303. 
441         * coverage.c (force_matching_cg_opts): add new entries.
443 2012-09-24  Rong Xu  <xur@google.com>
445         Google ref b/7078882.
446         * l-ipo.c (cgraph_is_aux_decl_external): output comdat
447         virtual functions when they are auxiliary modules; otherwise
448         we may get undefined symbol in linking.
450 2012-09-14  Dehao Chen  <dehao@google.com>
452         Backport r191338 from trunk.
454         2012-09-14  Dehao Chen  <dehao@google.com>
456         * tree-eh.c (goto_queue_node): New field.
457         (record_in_goto_queue): New parameter.
458         (record_in_goto_queue_label): New parameter.
459         (lower_try_finally_dup_block): New parameter.
460         (maybe_record_in_goto_queue): Update source location.
461         (lower_try_finally_copy): Likewise.
462         (honor_protect_cleanup_actions): Likewise.
463         * gimplify.c (gimplify_expr): Reset the location to unknown.
465 2012-09-14  Teresa Johnson  <tejohnson@google.com>
467         Backport from trunk r190952 and r191238:
469         * gcov-io.c (gcov_write_summary): Write out non-zero histogram
470         entries to function summary along with an occupancy bit vector.
471         (gcov_read_summary): Read in the histogram entries.
472         (gcov_histo_index): New function.
473         (gcov_histogram_merge): Ditto.
474         * gcov-io.h (gcov_type_unsigned): New type.
475         (struct gcov_bucket_type): Ditto.
476         (struct gcov_ctr_summary): Include histogram.
477         (GCOV_TAG_SUMMARY_LENGTH): Update to include histogram entries.
478         (GCOV_HISTOGRAM_SIZE): New macro.
479         (GCOV_HISTOGRAM_BITVECTOR_SIZE): Ditto.
480         (gcov_gcda_file_size): New parameter.
481         * profile.c (NUM_GCOV_WORKING_SETS): Ditto.
482         (gcov_working_sets): New global variable.
483         (compute_working_sets): New function.
484         (find_working_set): Ditto.
485         (get_exec_counts): Invoke compute_working_sets.
486         * loop-unroll.c (code_size_limit_factor): Call new function
487         find_working_set to obtain working set information.
488         * coverage.c (read_counts_file): Merge histograms, and
489         fix bug with accessing summary info for non-summable counters.
490         * basic-block.h (gcov_type_unsigned): New type.
491         (struct gcov_working_set_info): Ditto.
492         (find_working_set): Declare.
493         * gcov-dump.c (tag_summary): Dump out histogram.
494         * configure.ac (HOST_HAS_F_SETLKW): Set based on compile
495         test using F_SETLKW with fcntl.
496         * configure, gcc/config.in: Regenerate.
498 2012-09-13  Xinliang David Li  <davidxl@google.com>
500         * cgraphunit.c (cgraph_add_output_node): Check for
501         duplicates of compiler generated functions.
503 2012-09-12   Cary Coutant  <ccoutant@google.com>
505         * gcc.c (replace_extension_spec_func): Restrict search for
506         extension to last component of path.
508 2012-09-10  Sterling Augustine  <saugustine@google.com>
510         * dwarf2out.c (output_pubname): Correct conditional.
512 2012-09-10  Teresa Johnson  <tejohnson@google.com>
514         * loop-unroll.c (code_size_limit_factor): Guard against divide
515         by zero exception.
517 2012-09-05  Cary Coutant  <ccoutant@gmail.com>
519         Backport trunk patch to fix a problem where type signature does
520         not include the type's context.
522         2012-07-19  Jason Merrill  <jason@redhat.com>
524             PR debug/53235
525             * dwarf2out.c (get_die_parent): New.
526             (generate_type_signature): Use it.
528 2012-08-31   Cary Coutant  <ccoutant@google.com>
530         * dwarf2out.c (clone_tree_partial): Restore.
531         (copy_decls_walk): Call clone_tree_partial to copy children
532         of non-declaration DIEs.
534 2012-08-29  Chris Manghane  <cmang@google.com>
536         Backport r190762 from google/main.
538         2012-08-28  Chris Manghane  <cmang@google.com>
540         * gcc/gcov.c
541         (release_structures): Removed filename field from PMU structures.
542         (filter_pmu_data_lines): Added PMU string table support.
543         (process_pmu_profile): Ditto.
544         * gcc/gcov-io.c
545         (gcov_read_pmu_load_latency_info): Replaced filename field with filetag.
546         (gcov_read_pmu_branch_mispredict_info): Ditto.
547         (gcov_read_pmu_string_table_entry): New Function.
548         (print_load_latency_line): Replaced filename field with filetag.
549         (print_branch_mispredict_line): Ditto.
550         (print_string_table_entry): New function.
551         * gcc/gcov-io.h
552         (GCOV_TAG_PMU_LOAD_LATENCY_LENGTH): Replaced filename field with filetag
553         (GCOV_TAG_PMU_BRANCH_MISPREDICT_LENGTH): Ditto.
554         (GCOV_TAG_PMU_STRING_TABLE_ENTRY): Added new tag.
555         (GCOV_TAG_PMU_STRING_TABLE_ENTRY_LENGTH): Ditto.
556         (gcov_pmu_load_latency_info): Replaced filename field with filetag.
557         (gcov_pmu_branch_mispredict_info): Ditto.
558         (gcov_pmu_string_table_entry): New struct.
559         (gcov_pmu_string_table): New struct.
560         (gcov_write_ll_line): Moved pmu writing utilities to global header.
561         (gcov_write_branch_mispredict_line): Ditto.
562         (gcov_write_string_table_entry): Ditto.
563         (gcov_write_tool_header): Ditto.
564         * gcc/gcov-dump.c
565         (tag_pmu_load_latency_info): Removed PMU filename field.
566         (tag_pmu_branch_mispredict_info): Ditto.
567         (tag_pmu_string_table_entry): New function.
569 2012-08-29   Cary Coutant  <ccoutant@google.com>
571         * dwarf2out.c (clone_tree_partial): Remove.
572         (copy_decls_walk): Don't copy children of a declaration
573         into a type unit.
575 2012-08-23  Teresa Johnson  <tejohnson@google.com>
577         * config/i386/i386.md (anddi_1): Add new r,qm,Lh pattern
578         first to catch an and with 0xff that would be turned into
579         an andw on machines with length-changing prefix stalls,
580         and instead convert it into a zero-extending move.
581         (andsi_1, andhi_1): Ditto.
582         * config/i386/constraints.md (La): Rename from "L".
583         (Lh): New constraint to match possible LCP stalling ands.
584         * config/i386/i386.c (ix86_binary_operator_ok): Update
585         for rename of "L" constraint.
587 2012-08-23  Teresa Johnson  <tejohnson@google.com>
589         * Revert r189866
591 2012-08-23   Xinliang David Li  <davidxl@google.com>
593         *coverage.c (check_cg_opts): New function.
594         (has_incompatible_cg_opts): Ditto.
595         (incompatible_cl_args): Handle incompatible cg
596         options more generally, and added -fsized-delete.
598 2012-08-23  Sriraman Tallam  <tmsriram@google.com>
600         Backport r186789,r186795,r186855,r187365,r188417
602         r186789:
603         2012-04-24  Sriraman Tallam  <tmsriram@google.com>
605                 * config/i386/i386.c (build_processor_model_struct): New function.
606                 (make_var_decl): New function.
607                 (fold_builtin_cpu): New function.
608                 (ix86_fold_builtin): New function.
609                 (make_cpu_type_builtin): New function.
610                 (ix86_init_platform_type_builtins): New function.
611                 (ix86_expand_builtin): Expand new builtins by folding them.
612                 (ix86_init_builtins): Make new builtins to detect CPU type.
613                 (TARGET_FOLD_BUILTIN): New macro.
614                 (IX86_BUILTIN_CPU_INIT): New enum value.
615                 (IX86_BUILTIN_CPU_IS): New enum value.
616                 (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
617                 * config/i386/i386-builtin-types.def: New function type.
618                 * testsuite/gcc.target/builtin_target.c: New testcase.
619                 * doc/extend.texi: Document builtins.
621         r186795:
622         No changes.
624         r186855:
625         2012-04-25  Sriraman Tallam  <tmsriram@google.com>
627                 * doc/extend.texi: Document avx2 support.
628                 * config/i386/i386.c (fold_builtin_cpu): Add avx2.
629                 * testsuite/gcc.target/i386/builtin_target.c: Check avx2.
631         r187365:
632         2012-05-10  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
634                 * doc/extend.texi (X86 Built-in Functions, __builtin_cpu_init):
635                 Document requirement to call in constructors.
637                 * config/i386/i386.c: Update comments for i386-cpuinfo.c name
638                 change.
640         r188417:
641         2012-06-11  Sriraman Tallam  <tmsriram@google.com>
643                 * testsuite/gcc.target/i386/builtin_target.c (vendor_signatures): New enum.
644                 (check_intel_cpu_model): New function.
645                 (check_amd_cpu_model): New function.
646                 (check_features): New function.
647                 (__get_cpuid_output): New function.
648                 (check_detailed): New function.
649                 (fn1): Rename to quick_check.
650                 (main): Update to call quick_check and call check_detailed.
652 2012-08-22   Cary Coutant  <ccoutant@google.com>
654         * dwarf2out.c (should_move_die_to_comdat): A type definition
655         can contain a subprogram definition, but don't move it to a
656         comdat unit.
658 2012-08-20   Cary Coutant  <ccoutant@google.com>
660         * dwarf2out.c (remove_loc_list_addr_table_entries): Change
661         parameter; update all calls.
662         (output_pubname): Don't assert on unknown TAGs.
663         (resolve_addr): Call remove_loc_list_addr_table_entries for all
664         location expressions.
666 2012-08-20  Sterling Augustine  <saugustine@google.com>
668         * dwarf2out.c (DEBUG_PUBNAMES_SECTION, DEBUG_PUBTYPES_SECTION): Adjust
669         macros.
670         (is_java, include_pubname_in_output): New functions.
671         (size_of_pubnames): Call include_pubname_in_output.  New variable
672         space_for_flags.
673         (output_pubnames): Refactor, moving most of the logic to...
674         (output_pubname): ... here.  New function.
675         (dwarf2out_finish): Move output pubtable logic to...
676         (output_pubtables): ... here.  New function.
677         * common.opt (ggnu-pubnames):  New option.
678         (gpubnames, gno-pubnames): Adjust.
679         * doc/invoke.texi: Document -ggnu-pubnames.
681 2012-08-17   Cary Coutant  <ccoutant@google.com>
683         * dwarf2out.c (is_class_die): Remove function.
684         (add_pubname): Call class_scope_p instead.
686 2012-08-17   Xinliang David Li  <davidxl@google.com>
688         cgraphunit.c (is_backend_entered_p): New function.
690 2012-08-14  Han Shen  <shenhan@google.com>
691         Backport from mainline.
693         2012-05-01  Richard Earnshaw  <rearnsha@arm.com>
695             * arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_DEFAULT): Avoid ifdef
696             comparing enumeration values.  Update comments.
698         2012-04-26  Michael Hope  <michael.hope@linaro.org>
699                     Richard Earnshaw  <rearnsha@arm.com>
701             * config/arm/linux-eabi.h (GLIBC_DYNAMIC_LINKER_SOFT_FLOAT): Define.
702             (GLIBC_DYNAMIC_LINKER_HARD_FLOAT): Define.
703             (GLIBC_DYNAMIC_LINKER_DEFAULT): Define.
704             (GLIBC_DYNAMIC_LINKER): Redefine to use the hard float path.
706 2012-08-13  Xinliang David Li  <davidxl@google.com>
708         Google ref/6911651
709         * tree-ssa.c (warn_uninitialized_vars): Guard
710         possibly uninitialized warning under
711         -Wmaybe-uninitialized
713 2012-08-09   Cary Coutant  <ccoutant@google.com>
715         * tree-diagnostic.c (maybe_unwind_expanded_macro_loc): Check for
716         discriminator.
717         * diagnostic.c (diagnostic_report_current_module): Likewise.
719 2012-08-09   Cary Coutant  <ccoutant@google.com>
721     Backport of pending upstream patch.
723         * dwarf2out.c (clone_as_declaration): Copy DW_AT_abstract_origin
724         attribute.
725         (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
726         from original DIE.
727         (clone_tree_hash): Rename to ...
728         (clone_tree_partial): ... this; change callers.  Copy
729         DW_TAG_subprogram DIEs as declarations.
731 2012-08-07  Cary Coutant  <ccoutant@google.com>
733     Backport r190190 from trunk.
735         * cgraphunit.c (assemble_thunk): Add source line info.
736         * final.c (final): Check for non-null cfg pointer.
738 2012-08-01  Dehao Chen  <dehao@google.com>
740         Backport r190015 from trunk:
742         2012-07-31  Dehao Chen  <dehao@google.com>
743         * predict.c (tree_estimate_probability_driver): Normalize the
744         loop when initializing the loop optimizer.
746 2012-07-26   Cary Coutant  <ccoutant@google.com>
748         * dwarf2out.c (dwo_id_placeholder): Delete.
749         (output_skeleton_debug_sections): Don't write dwo_id here.
750         (dwarf2out_finish): Compute dwo_id and write it to both comp units.
752 2012-07-25  Cary Coutant  <ccoutant@google.com>
754     Backport pending upstream patch to output DW_AT_high_pc as a constant
755     instead of a relocated address.  This significantly reduces the number
756     of entries used in the .debug_addr table with -gfission.
758     2012-04-27  Mark Wielaard  <mjw@redhat.com>
760         * dwarf2out.h (enum dw_val_class): Add dw_val_class_high_pc.
761         * dwarf2out.c (dw_val_equal_p): Handle dw_val_class_high_pc.
762         (add_AT_low_high_pc): New function.
763         (AT_lbl): Handle dw_val_class_high_pc.
764         (print_die): Likewise.
765         (attr_checksum): Likewise.
766         (attr_checksum_ordered): Likewise.
767         (same_dw_val_p): Likewise.
768         (size_of_die): Likewise.
769         (value_format): Likewise.
770         (output_die): Likewise.
771         (gen_subprogram_die): Use add_AT_low_high_pc.
772         (add_high_low_attributes): Likewise.
773         (dwarf2out_finish): Likewise.
775 2012-07-25  Teresa Johnson  <tejohnson@google.com>
777         Backport the following patches from trunk to ensure that
778         "andw $0xff, $reg" is always converted to a zero extend
779         to avoid LCP stalls on core2/corei7 (b/6615073):
780         r184891, r186839, r186979, r186993, r188630, r188634, r188648
782         r184891:
783         2012-03-04  Uros Bizjak  <ubizjak@gmail.com>
784         * config/i386/constraints.md (Ya): New internal constraint.
785         * config/i386/i386.md (zero_extendsidi2): Remove expansion.
786         (*zero_extendsidi2_rex64): Add x,x alternative.
787         (*zero_extendsidi2): Ditto.  Add o,0 alternative.
788         Remove flags reg clobber.  Adjust corresponding splits.
789         (zero_extend<mode>si2): Macroize expander from zero_extendhisi2 and
790         zero_extendqisi2 expanders using SWI12 mode iterator.
791         (zero_extend<mode>si2_and): Macroize insn from
792         zero_extendhisi2_and and zero_extendqisi2_and.  Merge corresponding
793         splitters.
794         (*zero_extend<mode>si2):  Macroize insn from
795         *zero_extendhisi2_movzbl and *zero_extendqisi2_movzbl.
796         (*zero_extend*2_movzbl_and): Remove insn patterns.
797         (zero_extendqihi2_and): Merge corresponding splitter.
798         (*zero_extendqihi2): Rename from *zero_extendqihi2_movzbl.
799         (*zero_extend*2_movzbl_and): Remove insn patterns.
800         (*anddi_1): Split TYPE_IMOVX instructions.
801         (*andsi_1): Use Ya for alternative 2.  Split TYPE_IMOVX instructions.
802         (*andhi_1): Ditto.
803         (and->zext splitter): Add splitter pattern.
804         (zero extend with andsi3 splitter): Adjust zero_extend pattern.
806         r186839:
807         2012-04-25  Jakub Jelinek  <jakub@redhat.com>
808         PR target/53110
809         * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
810         instead expand it as zero extension.
812         r186979:
813         2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
814         * config/i386/i386.md (and<mode>3): Expand masking operations with
815         0xff, 0xffff or 0xffffffff immediates to corresponding zero_extend RTX.
816         (and splitter): Split to DImode zero_extend RTX for DImode operand[0].
818         r186993:
819         2012-04-30  Uros Bizjak  <ubizjak@gmail.com>
820         * config/i386/i386.md (and<mode>3): Change runtime operand mode checks
821         to compile-time "mode == <MODE>mode" checks.
822         (and splitter): Ditto.
824         r188630:
825         2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
826         * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
827         (*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.
829         r188634:
830         2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
831         Fix my previous commit to:
832         * config/i386/i386.md (*zero_extendsidi2): Remove x,x alternative.
833         (*zero_extendsidi2_rex64): Ditto.  Remove isa attribute.
835         r188648:
836         2012-06-14  Uros Bizjak  <ubizjak@gmail.com>
837        (*zero_extendsidi2_rex64): Remove isa attribute.
839 2012-07-25  Cary Coutant  <ccoutant@google.com>
841         * common.opt (-gfission): Alias for -gsplit-dwarf.
842         (-gno-fission): Alias for -gno-split-dwarf.
844 2012-07-25   Diego Novillo  <dnovillo@google.com>
846         Merge from gcc-4_7-branch rev 189718.
848 2012-07-24  Cary Coutant  <ccoutant@google.com>
850     Backport pending Fission patch at http://codereview.appspot.com/6305113.
851     
852     2012-07-18  Sterling Augustine <saugustine@google.com>
853                 Cary Coutant <ccoutant@google.com>
854     
855         * common.opt (gno-split-dwarf, gsplit-dwarf): New switches.
856         * doc/invoke.texi (Debugging Options): Document them.
857         * opts.c (finish_options): Make gsplit-dwarf imply -gpubnames.
858         * dwarf2out.h (dw_val_struct): New field val_index.
859         * dwarf2out.c (debug_skeleton_info_section,
860         debug_skeleton_abbrev_section, debug_addr_section,
861         debug_skeleton_line_section, debug_str_offsets_section): New sections.
862         (indirect_string_node): Add index field.
863         (dw_loc_list_node): Add begin_index field.
864         (dw_addr_op, new_addr_loc_descr, AT_index, set_AT_index,
865         add_addr_table_entry, remove_addr_table_entry, output_range_list_offset,
866         output_loc_list_offset, output_attr_index_or_value,
867         remove_loc_list_addr_table_entries, output_die_abbrevs,
868         add_top_level_skeleton_die_attrs, get_skeleton_type_unit,
869         output_skeleton_debug_sections, output_index_strings,
870         output_addr_table, index_location_lists): New functions.
871         (DEBUG_DWO_INFO_SECTION, DEBUG_DWO_ABBREV_SECTION, DEBUG_ADDR_SECTION,
872         DEBUG_NORM_MACINFO_SECTION, DEBUG_DWO_MACINFO_SECTION,
873         DEBUG_DWO_LINE_SECTION, DEBUG_DWO_LOC_SECTION,
874         DEBUG_NORM_STR_OFFSETS_SECTION, DEBUG_DWO_STR_SECTION,
875         DEBUG_MACRO_SECTION_FLAGS, DEBUG_SKELETON_LINE_SECTION_LABEL,
876         DEBUG_SKELETON_INFO_SECTION_LABEL, DEBUG_SKELETON_ABBREV_SECTION_LABEL,
877         DEBUG_ADDR_SECTIN_LABEL, SKELETON_COMP_DIE_ABBREV,
878         SKELETON_TYPE_DIE_ABBREV): New defines.
879         (DEBUG_MACINFO_SECTION, DEBUG_MACRO_SECTION, DEBUG_STR_SECTION
880         DEBUG_STR_SECTION_FLAGS): Adjust definitions.
881         (TEXT_SECTION_LABEL, COLD_TEXT_SECTION_LABEL, DEBUG_INFO_SECTION_LABEL,
882         DEBUG_ABBREV_SECTION_LABEL, DEBUG_LOC_SECTION_LABEL,
883         DEBUG_RANGES_SECTION_LABEL, DEBUG_MACINFO_SECTION_LABEL,
884         DEBUG_MACRO_SECTION_LABEL): Adjust indentation.
885         (debug_skeleton_info_section_label, debug_skeleton_abbrev_section_label,
886         debug_addr_section_label, debug_skeleton_line_section_label,
887         dw_id_placeholder): New global variables.
888         (add_AT_lbl_id): Add force_direct parameter.  Adjust calls throughout
889         file.  Handle dwarf_split_debug_info.
890         (add_AT_addr). Likewise.  Initialize val_index_field.
891         (add_AT_range_list): Add force parameter.  Adjust calls throughout file.
892         Initialize val_index field.
893         (add_ranges_by_labels): Add and handle force_direct parameter.  Adjust
894         calls throughout file.
895         (size_of_die): New variable form.  Handle dwarf_split_debug_info and
896         call AT_index.
897         (value_format): Use AT_class instead of calling val_class directly.
898         Handle DW_FORM_addr and dw_val_class_lbl_id appropriately for
899         dwarf_split_debug_info and AT_index.
900         (output_abbrev_section): Move most code to new function
901         output_die_abbrevs.
902         (output_loc_list): Handle dwarf_split_debug_info by using
903         DW_LLE_start_length_entry and DW_LLE_end_of_list_entry.
904         (output_die): Call output_attr_index_or_value, output_range_list_offset,
905         Fix format string.  Check val_str->form directly to avoid side effect.
906         (add_pubtype): Fix indention.
907         (output_comdat_type_unit): Handle dwarf_split_debug_info.
908         (output_pubnames): Likewise.
909         (output_aranges): Likewise.
910         (output_mac_info): Likewise.
911         (output_line_info): New parameter prologue_only.  Adjust calls
912         throughout file.
913         (mem_loc_descriptor): Call new_addr_loc_descr.
914         (loc_descriptor): Likewise.
915         (add_const_value_attribute): Likewise.
916         (loc_list_from_tree): Replace first_op and second_op with tls_op.
917         Update associated logic.  Call new_addr_loc_descr.
918         (dwarf2out_init): Handle dwarf_split_debug_info.  Initialize
919         debug_skeleton_info_section, debug_skeleton_abbrev_section,
920         debug_addr_section, debug_skeleton_line_section,
921         debug_str_offsets_section, debug_skeleton_info_section_label,
922         debug_skeleton_abbrev_section_label, debug_addr_section_label and
923         debug_skeleton_line_section_label.  Use DEBUG_MACRO_SECTION_FLAGS.
924         (new_loc_descr, build_cfa_loc, add_AT_flag, add_AT_int, add_AT_unsigned,
925         add_AT_double, add_AT_vec, add_AT_data8, add_AT_string, add_AT_die_ref,
926         add_AT_fde_ref, add_AT_loc, add_AT_loc_list, add_AT_file,
927         add_AT_vms_delta, add_AT_lineptr, add_AT_macptr, add_AT_offset):
928         Initialize val_index field.
929         (size_of_loc_descr, output_loc_operands, output_loc_operands_raw,
930         resolve_addr_in_expression, hash_loc_operands): Handle
931         DW_OP_GNU_addr_index and DW_OP_GNU_const_index.
932         (compare_loc_operands):  Likewise.  Adjust assertion.
933         (AT_string_form): Handle dwarf_split_debug_info.
934         (resolve_addr): New local variable l.  Check val_index.  Call
935         remove_addr_table_entry and remove_loc_list_addr_table_entries.
936         (dwarf2out_finish): Handle dwarf_split_debug_info.  New variable
937         main_comp_unit_die.  Call index_location_lists, add_AT_data8,
938         add_AT_lineptr, output_skeleton_debug_sections, output_addr_table.  Move
939         call to ASM_GENERATE_INTERNAL_LABEL to dwarf2out_init.  Call
940         ASM_OUTPUT_LABEL for debug_skeleton_line_section_label and
941         debug_addr_section_label.  Adjust comment.
942         * gcc.c (replace_extension_spec_func):  New function.
943         (ASM_FINAL_SPEC): Adjust.  Fix related comments.
944         (check_live_switch): Likewise.
945     
946 2012-07-24  Xinliang David Li  <davidxl@google.com>
948         * diagnostic.c (diagnostic_initialize): Initialize
949         new field.
950         (diagnostic_report_diagnostic): Honor -Wforce-warnings.
951         * diagnostic.h: New field.
952         * opts.c (common_handle_option): Handle new option.
953         * coverage.c (get_da_file_name): Handle new option.
954         * common.opt: New options.
956 2012-07-24  Cary Coutant  <ccoutant@google.com>
957     
958     Backport Fission patches from trunk at r188195, r188857, r189084,
959     r189094, and r189392.
960     
961     2012-06-29   Cary Coutant  <ccoutant@google.com>
962     
963         * dwarf2out.c (add_pubname_string): Don't check for want_pubnames.
964         (gen_subprogram_die): Don't add pubname if want_pubnames is false.
965         (gen_variable_die): Likewise.
966         (gen_namespace_die): Likewise.
967     
968     2012-06-29  Sterling Augustine  <saugustine@google.com>
969     
970         * dwarf2out.c (add_pubname): Add comment.
971         (add_pubtype): Fix indentation.
972         (gen_enumeration_type_die): Likewise.
973     
974     2012-06-21   Sterling Augustine  <saugustine@google.com>
975                  Cary Coutant  <ccoutant@google.com>
976     
977         * dwarf2out.c (is_cu_die, is_namespace_die, is_class_die,
978         add_AT_pubnames, add_enumerator_pubname, want_pubnames): New functions.
979         (comdat_type_struct): New field 'skeleton_die'.
980         (breakout_comdat_types): Update it.
981         (add_pubname): Rework logic.  Call is_class_die, is_cu_die and
982         is_namespace_die.  Fix minor style violation.  Call want_pubnames.
983         (add_pubname_string): Call want_pubnames.
984         (add_pubtype): Rework logic for calculating type name.  Call
985         is_namespace_die.  Call want_pubnames.
986         (output_pubnames): Move conditional logic deciding when to produce the
987         section from dwarf2out_finish.  Use new skeleton_die field.
988         (base_type_die): Call add_pubtype.
989         (gen_enumeration_type_die): Unconditionally call add_pubtype.
990         (gen_subprogram_die): Adjust calls to add_pubname.
991         (gen_namespace_die): Call add_pubname_string.
992         (dwarf2out_finish): Call add_AT_pubnames; Move logic on when to
993         produce pubnames and pubtypes sections to output_pubnames.
994         * common.opt: New option '-gpubnames'.
995         * doc/invoke.texi: Document it.
996     
997 2012-07-19  Easwaran Raman  <eraman@google.com>
999         * params.def (HOT_BB_COUNT_FRACTION): Set default to 60000.
1001 2012-07-19  Rong Xu  <xur@google.com>
1003         Backport r189691 from google_main.
1004         * gcc/gcov-io.h (GCOV_TAG_MODULE_INFO): tag needs to be
1005          an odd number in each active level.
1007 2012-07-10  Xinliang David Li  <davidxl@google.com>
1009         Backport r189413 from trunk
1010         * doc/invoke.texi: New option documented.
1011         * flag-types.h: New enum type.
1012         * gimplify.c (gimplify_bind_expr): Control
1013         clobber generation with new option.
1014         (gimplify_target_expr): Ditto.
1015         common.opt: New option.
1017 2012-07-10  Xinliang David Li  <davidxl@google.com>
1019         * Revert r189107
1021 2012-07-01  Xinliang David Li  <davidxl@google.com>
1023         * common.opt: -ftemp-reuse-stack option.
1024         * gimplify.c (gimplify_target_expr): Check new flag.
1026 2012-06-29  Xinliang David Li  <davidxl@google.com>
1028         * coverage.c (coverage_init): Initialize dyn-ipa
1029         paramater decls.
1030         * tree-profile.c (init_comdat_decl): New function.
1031         (tree_init_dyn_ipa_paramters): Ditto.
1033 2012-06-27  Dehao Chen  <dehao@google.com>
1035         Backport from trunk r188981.
1036         * tree-inline.c: (expand_call_inline): Ensure that lexical block's
1037         source location is consistant with the call stmt.
1039 2012-06-21   Diego Novillo  <dnovillo@google.com>
1041         Merge from trunk rev 188808.
1043 2012-06-15   Cary Coutant  <ccoutant@google.com>
1045     Revert Fission patches r182490, r182891, r183042, and r183320.
1046     This will clear the way to backport the final patches from trunk.
1048     r182490:
1050         2011-12-19  Sterling Augustine <saugustine@google.com>
1052             * dwarf2out.c (DEBUG_PUBNAMES_SECTION_LABEL,
1053             DEBUG_PUBTYPES_SECTION_LABEL): Define.
1054             (debug_pubnames_section_label, debug_pubtypes_section_label):
1055             Declare.
1056             (is_namespace_die, is_class_die): New functions.
1057             (add_enumerator_pubname): New function.
1058             (add_pubname): Call is_namespace_die, is_cu_die, and is_class_die in
1059             conditional.
1060             (add_pubtype): Call is_namespace_die. Rework name calculation.  Call
1061             type_tag, lang_hooks.dwarf_name and add_enumerator_pubname.
1062             (output_pubnames): Output debug_pubnames_section_label or
1063             debug_pubtypes_section_label.
1064             (base_type_die): Call add_pubtype.
1065             (gen_namespace_die): Call add_pubname_string and lang_hooks.dwarf_name.
1066             (dwarf2_out_init): Generate debug_pubnames_section_label and
1067             debug_pubtypes_section_label.
1068             (pubtypes_section_empty): New function.
1069             (dwarf2_out_finish): Call add_AT_lineptr if pubnames or pubtypes is
1070             non-empty.  When dealing with pubnames, change assertion to conditional.
1071             Call pubtypes_section_empty.  Likewise when dealing with pubtypes.
1072             Move code checking for empty section to...
1073             (pubtypes_section_empty): Here.
1074             * target.def: Switch boolean to enable pubnames and pubtypes.
1076     r182891:
1078         2012-01-04   Sterling Augustine  <saugustine@google.com>
1080             * dwarf2out.c (add_pubname): Move conditional clause from outer to
1081             inner if-statement.
1082             (dwarf2out_finish): Fix conditions to output DW_AT_GNU_pubnames and
1083             DW_AT_GNU_pubtypes.  Move decision to output pubnames and pubtypes from
1084             here...
1085             (output_pubnames): ...to here.
1086             (pubtypes_section_empty): Delete unused function.
1088     r183042:
1090         2012-01-09   Sterling Augustine  <saugustine@google.com>
1092             * dwarf2out.c (output_pubnames): Add check for info_section_emitted.
1094     r183320:
1096         2012-01-19   Sterling Augustine  <saugustine@google.com>
1098             * dwarf2out.c (break_out_comdat_types): Add DW_AT_GNU_pubnames and
1099             DW_AT_GNU_pubtypes attributes.
1101 2012-06-15   Easwaran Raman  <eraman@google.com>
1102   Cherrypick r188675 from trunk.
1103         2012-06-15  Easwaran Raman  <eraman@google.com>
1104                 * passes.c (init_optimization_passes): Remove pass_call_cdce
1105                 from its current position and insert after pass_dce.
1107 2012-06-09   Xinliang Davidl Li  <davidxl@google.com>
1109         l-ipo.c (pop_module_scope): Stop timer after
1110         pending decl handling.
1112 2012-06-09   Xinliang Davidl Li  <davidxl@google.com>
1114         c-family/c-opts.c (lipo_max_mem_reached):  Scale up
1115         memory allocated to acount for optimizer uses.
1116         params.def: tune up max lipo mem parameter to 2.8G.
1118 2012-06-07   Easwaran Raman  <eraman@google.com>
1119   Backport r179412 from google/gcc-4_6 branch.
1120         2011-09-30  Easwaran Raman  <eraman@google.com>
1122                 * tree-profile.c (gcov_sample_counter_decl): Add GTY marker.
1123                 (gcov_sampling_rate_decl): Likewise.
1124                 (add_sampling_to_edge_counters): Do not free
1125                 instrumentation_to_be_sampled.
1126                 (cleanup_instrumentation_sampling): New function.
1127                 (tree_profiling): Call cleanup_instrumentation_sampling at the end.
1129 2012-06-07  Teresa Johnson  <tejohnson@google.com>
1131         Backport from google/main r188308.
1132         2012-06-07  Teresa Johnson  <tejohnson@google.com>
1134         * doc/invoke.texi: Rename -fripa-peel-size-limit
1135         and -fripa-unroll-size-limit to -fpeel-codesize-limit and
1136         -funroll-codesize-limit, respectively. Remove
1137         codesize-hotness-threshold param and add unrollpeel-hotness-threshold
1138         param.
1139         * gcov-io.c (gcov_write_summary): Write new summary info.
1140         (gcov_read_summary): Read new summary info.
1141         * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Update for new summary info.
1142         (struct gcov_ctr_summary): Add new summary info: num_hot_counters.
1143         * loop-unroll.c (limit_code_size): Renamed to
1144         code_size_limit_factor.
1145         (code_size_limit_factor): Renamed from limit_code size. Update to
1146         use new summary info and refine for very hot loops.
1147         (decide_unrolling_and_peeling): Remove call to limit_code_size.
1148         (decide_unroll_runtime_iterations): Call code_size_limit_factor
1149         to control the unroll factor.
1150         (decide_peel_simple, decide_unroll_stupid): Ditto.
1151         * coverage.c (read_counts_file): Propagate new summary info.
1152         * common.opt: Rename -fripa-peel-size-limit
1153         and -fripa-unroll-size-limit to -fpeel-codesize-limit and
1154         -funroll-codesize-limit, respectively.
1155         * tree-optimize.c (cgraph_codesize_estimate): Remove.
1156         (compute_codesize_estimate): Remove.
1157         (execute_cleanup_cfg_post_optimizing): Remove call to
1158         compute_codesize_estimate.
1159         * params.def (PARAM_UNROLLPEEL_CODESIZE_THRESHOLD): Remove.
1160         (PARAM_UNROLLPEEL_HOTNESS_THRESHOLD): Add.
1161         * gcov-dump.c (tag_summary): Dump new summary info.
1163 2012-06-07  Dehao Chen  <dehao@google.com>
1165         * gcc/cgraph.c (cgraph_node): Add attribute to function decl.
1166         * gcc/opts-global.c (add_attribute_pattern): New function.
1167         (pattern_match_function_attributes): New function.
1168         (handle_common_deferred_options): Handle new options.
1169         * gcc/opts.c (common_handle_option): Handle new options.
1170         * gcc/opts.h (handle_common_deferred_options): New function.
1171         * gcc/common.opt (ffunction_attribute_list): New option.
1173 2012-06-06   Diego Novillo  <dnovillo@google.com>
1175   Cherry pick rev 188207.
1177       2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
1178       
1179             PR c++/53524
1180             * doc/invoke.texi (Wenum-compare): Update documentation.
1181       
1182       /cp
1183       2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
1184       
1185             PR c++/53524
1186             * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
1187             to control enumeral mismatch in conditional expression too.
1188       
1189       /testsuite
1190       2012-06-04  Paolo Carlini  <paolo.carlini@oracle.com>
1191       
1192             PR c++/53524
1193             * g++.dg/warn/Wenum-compare-no-2: New.
1195 2012-06-06   Xinliang David Li  <davidxl@google.com>
1197         coverage.c (coverage_finish): Do not remove gcda file with
1198         -frandom-seed option -- this recovers the compiler behavior
1199         before gcc4_7.
1202 2012-06-05   Diego Novillo  <dnovillo@google.com>
1204         Merge from gcc-4_7-branch rev 188095 (minus rev 187877).
1206 2012-06-02  Xinliang David Li  <davidxl@google.com>
1208         l-ipo.c (promote_static_var_func): Promoted static variables from
1209         primary modules should be marked as externally visible and being
1210         prevailing def to avoid being localized again later.
1213 2012-06-02   Easwaran Raman  <eraman@google.com>
1215         * gcc/ipa-inline.c (want_early_inline_function_p): Boost early
1216         inlining of comdats. Allow more tuning by using params.
1217         * gcc/params.def (PARAM_EARLY_INLINING_INSNS_NON_LEAF): New param.
1218         (PARAM_EARLY_INLINING_INSNS_ANY): Likewise.
1219         (PARAM_EARLY_INLINING_INSNS_COMDAT): Likewise.
1221 2012-05-30  Dehao Chen  <dehao@google.com>
1223         * predict.c (predict_extra_loop_exit): New function to predict for
1224         extra loop exits resulted from short-circuit conditions.
1226 2012-05-24   Rong Xu  <xur@google.com>
1228         * l-ipo.c (create_unique_name): Make temp names demanglable.
1230 2012-05-21   Easwaran Raman  <eraman@google.com>
1232         * gcc/basic-block.h (maybe_hot_count_p): New declaration.
1233         * gcc/cgraph.c (dump_cgraph_node): Dump max_bb_count.
1234         (cgraph_clone_node): Update max_bb_count.
1235         * gcc/cgraph.h (cgraph_node): Add new field max_bb_count.
1236         * gcc/cgraphbuild.c (rebuild_cgraph_edges): Compute max_bb_count.
1237         * gcc/cgraphunit.c (cgraph_copy_node_for_versioning): Copy max_bb_count.
1238         * gcc/ipa-inline-transform.c (inline_call): Update max_bb_count of
1239         the function to which this callsite is eventually inlined to.
1240         * gcc/ipa-inline.c (edge_hot_enough_p): New function.
1241         (want_inline_small_function_p): Call edge_hot_enough_p instead
1242         of cgraph_maybe_hot_edge_p.
1243         * gcc/params.def (PARAM_INLINE_FUNCTION_OVERHEAD_SIZE): New param.
1244         * gcc/predict.c (maybe_hot_count_p): Make it non static.
1245         * gcc/testsuite/gcc.dg/tree-prof/inliner-1.c: Add option
1246         --param inline-hot-caller=0.
1247         * gcc/testsuite/gcc.dg/tree-prof/lipo/inliner-1_0.c: Likewise.
1249 2012-05-18   Teresa Johnson  <tejohnson@google.com>
1251         Backport from google/main r187660:
1252         2012-05-18   Teresa Johnson  <tejohnson@google.com>
1254         * doc/invoke.texi: Update the documentation with new params.
1255         * loop-unroll.c (loop_has_FP_comp): Remove function.
1256         (max_unroll_with_branches): New function.
1257         (decide_unroll_constant_iterations, decide_unroll_runtime_iterations):
1258         Add heuristic to avoid increasing branch mispredicts when unrolling.
1259         (limit_code_size, decide_peel_simple, decide_unroll_stupid): Retrieve
1260         number of branches from niter_desc instead of via function that walks
1261         loop.
1262         * loop-iv.c (get_simple_loop_desc): Invoke new analyze_loop_insns
1263         function, and add guards to enable this function to work for the
1264         outermost loop.
1265         * cfgloop.c (insn_has_fp_set, analyze_loop_insns): New functions.
1266         (num_loop_branches): Remove.
1267         * cfgloop.h (struct niter_desc): Added new fields to cache additional
1268         loop analysis information.
1269         (num_loop_branches): Remove.
1270         (analyze_loop_insns): Declare.
1271         * params.def (PARAM_MIN_ITER_UNROLL_WITH_BRANCHES): New param.
1272         (PARAM_UNROLL_OUTER_LOOP_BRANCH_BUDGET): Ditto.
1274 2012-05-16  Sriraman Tallam  <tmsriram@google.com>
1276         Port from google/gcc-4_6 
1277         r177289, r177308, r179104, r179289, r179303, r179404, r182447
1278         
1279         * doc/invoke.texi: Document -freorder-functions=*
1280         * cgraphbuild.c (remove_cgraph_callee_edges): Preserve
1281         callgraph till pass_final.
1282         * configure: Regenerate.
1283         * final.c (dump_cgraph_profiles): New function.
1284         (rest_of_handle_final): Call dumping of cgraph profiles in
1285         .gnu.text.callgraph sections.
1286         * gcc.c (LINK_COMMAND_SPEC): Process -freorder-functions=
1287         (set_func_reorder_linker_plugin_spec): New function.
1288         (main): Call function reorder plugin.
1289         * testsuite/lib/target-supports-dg.exp
1290         (dg-require-section-exclude): New proc.
1291         (dg-require-linker-function-reordering-plugin): New proc.
1292         * testsuite/lib/target-supports.exp
1293         (check_section_exclude_available): New proc.
1294         (check_linker_function_reordering_plugin_supported): New proc.
1295         * testsuite/g++.dg/tree-prof/callgraph-profiles.C: New test.
1296         * config.in: undef FRPLUGINSONAME
1297         * opts.c
1298         * configure.ac (FRPLUGINSONAME): Define 
1299         * common.opt (fcallgraph-profiles-sections): Remove.
1300         (freorder-functions=): New option.
1301         * tree-optimize.c (gate_all_optimizations): Mark last cleanup of
1302         callgraph.
1303         * config.host: Set function reordering plugin.
1304         * params.def (PARAM_NOTE_CGRAPH_SECTION_EDGE_THRESHOLD): Remove.
1305         (PARAM_GNU_CGRAPH_SECTION_EDGE_THRESHOLD): Add.
1307 2012-05-16  Xinliang David Li  <davidxl@google.com>
1309         * tree-profile.c (add_sampling_wrapper): Call
1310         add_referenced_var for sampling related variables.
1311         (gimple_init_instrumentation_sampling): Do not
1312         call varpool_finalize for external decls.
1314 2012-05-16  Xinliang David Li  <davidxl@google.com>
1316         * cgraph.c (cgraph_set_call_stmt): Resolve target
1317         to the real target in LIPO mode.
1318         (cgraph_create_virtual_clone): Ditto.
1320 2012-05-16  Xinliang David Li  <davidxl@google.com>
1322         * c-family/c-opts.c (is_parsing_done_p): New function.
1323         * cp/semantics.c (cp_clear_constexpr_hashtable): Ditto.
1324         * cp/decl2.c (cp_clear_defered_fns): Clear constexpr hash.
1325         * cp/mangle.c (mangle_decl): Save decl for binding clearing.
1326         * cp/cp-tree.h: New prototype declaration.
1327         * l-ipo.c: New prototype declaration.
1330 2012-05-15   Teresa Johnson  <tejohnson@google.com>
1332         Backport from google/main r187536:
1333         2012-05-15   Teresa Johnson  <tejohnson@google.com>
1335         * doc/invoke.texi (profile-generate-sampling-period): Rename
1336         from profile-generate-sampling-rate.
1337         * tree-profile.c (gcov_sampling_period_decl): Rename from
1338         gcov_sampling_rate_decl.
1339         (gcov_has_sampling_decl): New variable.
1340         (insert_if_then, add_sampling_wrapper): Rename variables from "*rate*"
1341         to "*period*".
1342         (gimple_init_instrumentation_sampling): Ditto, and add handling
1343         for gcov_has_sampling_decl.
1344         * params.def (profile-generate-sampling-period): Rename
1345         from profile-generate-sampling-rate.
1347 2012-05-15   Diego Novillo  <dnovillo@google.com>
1349         Merge from gcc-4_7-branch rev 187362.
1351 2012-05-14  Xinliang David Li  <davidxl@google.com>
1353         * cgraphbuild.c (record_reference_to_real_target_from_alias):
1354         New function.
1355         (mark_address): Record reference to the resolved target node
1356         in LIPO mode. Also record reference to alias's real target.
1357         (rebuild_cgraph_edges): As above.
1358         * cgraph.c (cgraph_clone_edge): Create cgraph edge for
1359         indirect call inlining edge properly.
1360         * l-ipo.c (cgraph_lipo_get_resolved_node_1): Do not force
1361         creating cgraph node.
1362         (fixup_reference_list): New function.
1363         (varpool_do_link): Fix up initializer's references to functions
1364         after linking.
1366 2012-05-09  Teresa Johnson  <tejohnson@google.com>
1368         Backport from trunk r187297:
1369         2012-05-08   Teresa Johnson  <tejohnson@google.com>
1371         * gcov-io.h (__gcov_reset, __gcov_dump): Declare.
1372         * doc/gcov.texi: Add note on using __gcov_reset and __gcov_dump.
1374 2012-05-08  Xinliang David Li  <davidxl@google.com>
1376         Fix issue 6457844
1378         * ipa-inline-transform.c (inline_call): When
1379         fixing up cgraph edge callees which are aliases,
1380         find the real resolved alias target in LIPO mode.
1381         * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee):
1382         Remove unnecssary check in LIPO mode.
1383         * ipa-inline.c (inline_small_functions): Compute
1384         max_count properly by considering indirect edges.
1388 2012-05-08  Xinliang David Li  <davidxl@google.com>
1390         Fix issue 6461583
1392         * profile.c (instrument_values): Skip static ctor/dtors
1393         for ic counter allocation to match instrumentation.
1394         * tree-profile.c (gimple_gen_ic_profiler): Remove
1395         unnecessary guard in FDO mode.
1397 2012-05-03  Dehao Chen  <dehao@google.com>
1399         Backport r185949 from google-main.
1401         2012-03-29  Dehao Chen  <dehao@google.com>
1403                 * predict.c (predict_iv_comparison): Add the comparison of
1404                 induction variable against its initial value.
1406 2012-05-01   Rong Xu  <xur@google.com>
1408         Backport r187028 from google-main.
1410         2012-05-01   Rong Xu  <xur@google.com>
1412                 * gcc/cp/rtti.c (get_tinfo_decl): generate tinfo for aux 
1413                 modules in LIPO.
1415 2012-04-25   Diego Novillo  <dnovillo@google.com>
1417         Add better commit message for recent merge.
1419 2012-04-25   Diego Novillo  <dnovillo@google.com>
1421         Merge from gcc-4_7-branch rev 186721.
1423 2012-04-20  Xinliang David Li  <davidxl@google.com>
1425         Backport r186622 from trunk
1426         * tree-ssa-copy.c (propagate_tree_value_into_stmt): Use
1427         update_call_from_tree when propagating into a call.
1430         * varasm.c (alias_target_node_exist_p): New function.
1431         (finish_alias_1): Use the new function in LIPO mode.
1433 2012-04-12  Xinliang David Li  <davidxl@google.com>
1435         * cgraphbuild.c (rebuild_cgraph_edges): Add ipa reference from
1436         an alias node to its body node (post LIPO linking one) to avoid
1437         the body being eliminated.
1438         * varasm.c (finish_aliases_1): Do not emit error for an alias
1439         which is artificial in LIPO mode -- it exists but can not be
1440         found.
1442 2012-04-11  Teresa Johnson  <tejohnson@google.com>
1444         Revert r182254 since it is subsumed by r186332.
1446 2012-04-11   Teresa Johnson  <tejohnson@google.com>
1448         Backport r186176 from trunk.
1450         2012-04-05  Teresa Johnson  <tejohnson@google.com>
1451                     H.J. Lu  <hongjiu.lu@intel.com>
1453         * config/i386/i386.h (ix86_tune_indices): Add
1454         X86_TUNE_LCP_STALL.
1455         * config/i386/i386.md (move immediate to memory peephole2):
1456         Add cases for HImode move when LCP stall avoidance is needed.
1457         * config/i386/i386.c (initial_ix86_tune_features): Initialize
1458         X86_TUNE_LCP_STALL entry.
1460 2012-04-10  Xinliang David Li  <davidxl@google.com>
1462         * mversn-dispatch.c (builtin_dispatch_ipa_clone): returns
1463         TODO flags when there are changes.
1464         (do_convert_builtin_dispatch): Ditto.
1466 2012-04-09  Xinliang David Li  <davidxl@google.com>
1468         Fix b/6300341: LIPO profile-gen ICEs 
1470         * coverage.c (converage_dc_end_function): Properly initialize
1471         the fn_decl and ctr_data field of the coverage_data.
1473 2012-03-07  Sriraman Tallam  <tmsriram@google.com>
1475         Backport from google/main rev 185083
1477                 * config/i386/i386.c (build_struct_with_one_bit_fields): New function.
1478                 (make_var_decl): New function.
1479                 (get_field_from_struct): New function.
1480                 (fold_builtin_target): New function.
1481                 (ix86_fold_builtin): New function.
1482                 (ix86_expand_builtin): Expand new builtins by folding them.
1483                 (make_platform_builtin): New functions.
1484                 (ix86_init_platform_type_builtins): Make the new builtins.
1485                 (ix86_init_builtins): Make new builtins to detect CPU type.
1486                 (TARGET_FOLD_BUILTIN): New macro.
1487                 (IX86_BUILTIN_CPU_SUPPORTS_CMOV): New enum value.
1488                 (IX86_BUILTIN_CPU_SUPPORTS_MMX): New enum value.
1489                 (IX86_BUILTIN_CPU_SUPPORTS_POPCOUNT): New enum value.
1490                 (IX86_BUILTIN_CPU_SUPPORTS_SSE): New enum value.
1491                 (IX86_BUILTIN_CPU_SUPPORTS_SSE2): New enum value.
1492                 (IX86_BUILTIN_CPU_SUPPORTS_SSE3): New enum value.
1493                 (IX86_BUILTIN_CPU_SUPPORTS_SSSE3): New enum value.
1494                 (IX86_BUILTIN_CPU_SUPPORTS_SSE4_1): New enum value.
1495                 (IX86_BUILTIN_CPU_SUPPORTS_SSE4_2): New enum value.
1496                 (IX86_BUILTIN_CPU_INIT): New enum value.
1497                 (IX86_BUILTIN_CPU_IS_AMD): New enum value.
1498                 (IX86_BUILTIN_CPU_IS_INTEL): New enum value.
1499                 (IX86_BUILTIN_CPU_IS_INTEL_ATOM): New enum value.
1500                 (IX86_BUILTIN_CPU_IS_INTEL_CORE2): New enum value.
1501                 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_NEHALEM): New enum value.
1502                 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_WESTMERE): New enum value.
1503                 (IX86_BUILTIN_CPU_IS_INTEL_COREI7_SANDYBRIDGE): New enum value.
1504                 (IX86_BUILTIN_CPU_IS_AMDFAM10_BARCELONA): New enum value.
1505                 (IX86_BUILTIN_CPU_IS_AMDFAM10_SHANGHAI): New enum value.
1506                 (IX86_BUILTIN_CPU_IS_AMDFAM10_ISTANBUL): New enum value.
1507                 (IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER1): New enum value.
1508                 (IX86_BUILTIN_CPU_IS_AMDFAM15H_BDVER2): New enum value.
1509                 * config/i386/i386-builtin-types.def: New function type.
1510                 * testsuite/gcc.target/builtin_target.c: New testcase.
1512 2012-03-07  Diego Novillo  <dnovillo@google.com>
1514         Merge from google/main rev 184996.
1516 2012-02-26  Ollie Wild  <aaw@google.com>
1518         * BASE-VER: Change to 4.7.x-google.
1520 2012-02-23   Diego Novillo  <dnovillo@google.com>
1522         * BASE-VER: Change to 4.7.0-google.
1523         * DEV-PHASE: Change to prerelease.