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
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>
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.
47 * dse.c: Fix typos in the head comment.
48 2012-10-21 Eric Botcazou <ebotcazou@adacore.com>
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
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>
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
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
115 2012-10-16 DeLesley Hutchins <delesley@google.com>
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
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
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.
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
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
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.
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
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
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>
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>
541 (release_structures): Removed filename field from PMU structures.
542 (filter_pmu_data_lines): Added PMU string table support.
543 (process_pmu_profile): Ditto.
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.
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.
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
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>
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
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.
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.
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
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
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
670 (is_java, include_pubname_in_output): New functions.
671 (size_of_pubnames): Call include_pubname_in_output. New variable
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>
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
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
725 (generate_skeleton_bottom_up): Remove DW_AT_object_pointer attribute
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
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
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.
803 (and->zext splitter): Add splitter pattern.
804 (zero extend with andsi3 splitter): Adjust zero_extend pattern.
807 2012-04-25 Jakub Jelinek <jakub@redhat.com>
809 * config/i386/i386.md (and<mode>3): For andq $0xffffffff, reg
810 instead expand it as zero extension.
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].
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.
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.
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.
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.
852 2012-07-18 Sterling Augustine <saugustine@google.com>
853 Cary Coutant <ccoutant@google.com>
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
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
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
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.
946 2012-07-24 Xinliang David Li <davidxl@google.com>
948 * diagnostic.c (diagnostic_initialize): Initialize
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>
958 Backport Fission patches from trunk at r188195, r188857, r189084,
959 r189094, and r189392.
961 2012-06-29 Cary Coutant <ccoutant@google.com>
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.
968 2012-06-29 Sterling Augustine <saugustine@google.com>
970 * dwarf2out.c (add_pubname): Add comment.
971 (add_pubtype): Fix indentation.
972 (gen_enumeration_type_die): Likewise.
974 2012-06-21 Sterling Augustine <saugustine@google.com>
975 Cary Coutant <ccoutant@google.com>
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.
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>
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
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.
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):
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
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.
1078 2012-01-04 Sterling Augustine <saugustine@google.com>
1080 * dwarf2out.c (add_pubname): Move conditional clause from outer to
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
1085 (output_pubnames): ...to here.
1086 (pubtypes_section_empty): Delete unused function.
1090 2012-01-09 Sterling Augustine <saugustine@google.com>
1092 * dwarf2out.c (output_pubnames): Add check for info_section_emitted.
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
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>
1180 * doc/invoke.texi (Wenum-compare): Update documentation.
1183 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
1186 * call.c (build_conditional_expr_1): Use OPT_Wenum_compare
1187 to control enumeral mismatch in conditional expression too.
1190 2012-06-04 Paolo Carlini <paolo.carlini@oracle.com>
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
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
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
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
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
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
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*"
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):
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
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>
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>
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
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
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
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.