1. 19 Nov, 2013 40 commits
    • Eliminate ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR macros · fefa31b5
      gcc/
      
      	* basic-block.h (ENTRY_BLOCK_PTR_FOR_FUNCTION): Rename macro to...
      	(EXIT_BLOCK_PTR_FOR_FUNCTION): ...this.
      	(ENTRY_BLOCK_PTR_FOR_FN): Renamed macro to...
      	(EXIT_BLOCK_PTR_FOR_FN): ...this.
      	(ENTRY_BLOCK_PTR): Eliminate macro as work towards making uses of
      	cfun be explicit.
      	(EXIT_BLOCK_PTR): Likewise.
      	(FOR_ALL_BB): Rework for now to eliminate use of "ENTRY_BLOCK_PTR".
      	(FOR_ALL_BB_FN): Update for renaming of
      	"ENTRY_BLOCK_PTR_FOR_FUNCTION" to "ENTRY_BLOCK_PTR_FOR_FN".
      
      	* cfg.c (init_flow): Likewise.
      	(check_bb_profile): Likewise.
      	* cfganal.c (pre_and_rev_post_order_compute_fn): Likewise.
      	* cfgcleanup.c (walk_to_nondebug_insn): Likewise.
      	* cfghooks.c (account_profile_record): Likewise.
      	* cfgloop.c (init_loops_structure): Likewise.
      	* cgraphbuild.c (record_eh_tables): Likewise.
      	(compute_call_stmt_bb_frequency): Likewise.
      	* ipa-inline-analysis.c (compute_bb_predicates): Likewise.
      	* lto-streamer-in.c (input_cfg): Likewise.
      	* predict.c (maybe_hot_frequency_p): Likewise.
      	* tree-cfg.c (init_empty_tree_cfg_for_function): Likewise.
      	* tree-inline.c (initialize_cfun): Likewise.
      	(copy_cfg_body): Likewise.
      	(copy_body): Likewise.
      	(tree_function_versioning): Likewise.
      
      	* bb-reorder.c (add_labels_and_missing_jumps): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(duplicate_computed_gotos): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_rarely_executed_basic_blocks_and_crossing_edges): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(connect_traces): Likewise.
      	(rest_of_handle_reorder_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_to_key): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_crossing_conditional_branches): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(find_traces_1_round): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(fix_up_fall_thru_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_traces): Remove usage of ENTRY_BLOCK_PTR macro.
      	(fix_up_crossing_landing_pad): Remove usage of EXIT_BLOCK_PTR macro.
      	(rotate_loop): Likewise.
      	* bt-load.c (migrate_btr_def): Remove usage of ENTRY_BLOCK_PTR macro.
      	* cfg.c (clear_aux_for_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(alloc_aux_for_edges): Likewise.
      	(clear_bb_flags): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cached_make_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compact_blocks): Likewise.
      	(clear_edges): Likewise.
      	* cfganal.c (single_pred_before_succ_order): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(bitmap_union_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_union_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(bitmap_intersection_of_succs): Remove usage of EXIT_BLOCK_PTR macro.
      	(bitmap_intersection_of_preds): Remove usage of ENTRY_BLOCK_PTR macro.
      	(inverted_post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_dominance_frontiers_1): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(post_order_compute): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(connect_infinite_loops_to_exit): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(remove_fake_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_noreturn_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_fake_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_edge_list): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_edge_list): Likewise.
      	(create_edge_list): Likewise.
      	(find_unreachable_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_dfs_back_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* cfgbuild.c (find_bb_boundaries): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_many_sub_basic_blocks): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgcleanup.c (delete_unreachable_blocks): Likewise.
      	(try_optimize_cfg): Likewise.
      	(try_head_merge_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_crossjump_to_edge): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_crossjump_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(merge_blocks_move): Remove usage of ENTRY_BLOCK_PTR macro.
      	(outgoing_edges_match): Remove usage of EXIT_BLOCK_PTR macro.
      	(try_forward_edges): Likewise.
      	(try_simplify_condjump): Likewise.
      	* cfgexpand.c (gimple_expand_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(construct_exit_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(construct_init_block): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(expand_gimple_basic_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(expand_gimple_tailcall): Likewise.
      	* cfghooks.c (can_duplicate_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(tidy_fallthru_edges): Likewise.
      	(verify_flow_info): Likewise.
      	* cfgloop.c (flow_bb_inside_loop_p): Likewise.
      	(num_loop_branches): Remove usage of EXIT_BLOCK_PTR macro.
      	(disambiguate_multiple_latches): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(get_loop_exit_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(bb_loop_header_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(get_loop_body_in_bfs_order): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_loop_body_in_dom_order): Likewise.
      	(get_loop_body): Likewise.
      	* cfgloopanal.c (mark_irreducible_loops): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* cfgloopmanip.c (create_preheader): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(remove_path): Remove usage of EXIT_BLOCK_PTR macro.
      	(fix_bb_placement): Likewise.
      	* cfgrtl.c (rtl_block_empty_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(rtl_can_remove_branch_p): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_split_edge): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_layout_can_merge_blocks_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(cfg_layout_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(fixup_fallthru_exit_predecessor): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(fixup_reorder_chain): Likewise.
      	(relink_block_chain): Likewise.
      	(cfg_layout_delete_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_verify_bb_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(cfg_layout_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(force_one_exit_fallthru): Likewise.
      	(rtl_verify_fallthru): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(rtl_verify_edges): Likewise.
      	(commit_edge_insertions): Likewise.
      	(commit_one_edge_insertion): Likewise.
      	(rtl_split_edge): Likewise.
      	(force_nonfallthru_and_redirect): Likewise.
      	(outof_cfg_layout_mode): Remove usage of EXIT_BLOCK_PTR macro.
      	(skip_insns_after_block): Likewise.
      	(fixup_partition_crossing): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(purge_dead_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(rtl_can_merge_blocks): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(contains_no_active_insn_p): Likewise.
      	(emit_insn_at_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(entry_of_function): Likewise.
      	(last_bb_in_partition): Remove usage of EXIT_BLOCK_PTR macro.
      	(fixup_new_cold_bb): Likewise.
      	(patch_jump_insn): Likewise.
      	(try_redirect_by_replacing_jump): Likewise.
      	(block_label): Likewise.
      	(could_fall_through): Likewise.
      	(can_fallthru): Likewise.
      	* cgraphbuild.c (cgraph_rebuild_references): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(rebuild_cgraph_edges): Likewise.
      	* cgraphunit.c (init_lowered_empty_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(expand_thunk): Remove usage of EXIT_BLOCK_PTR macro.
      	* combine.c (get_last_value): Remove usage of ENTRY_BLOCK_PTR macro.
      	(distribute_links): Remove usage of EXIT_BLOCK_PTR macro.
      	(get_last_value_validate): Remove usage of ENTRY_BLOCK_PTR macro.
      	(try_combine): Remove usage of EXIT_BLOCK_PTR macro.
      	(reg_num_sign_bit_copies_for_combine): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(reg_nonzero_bits_for_combine): Likewise.
      	(set_nonzero_bits_and_sign_copies): Likewise.
      	(combine_instructions): Likewise.
      	* cprop.c (one_cprop_pass): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(bypass_conditional_jumps): Likewise.
      	(bypass_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_implicit_sets): Likewise.
      	(cprop_jump): Likewise.
      	* cse.c (cse_cc_succs): Likewise.
      	(cse_find_path): Likewise.
      	* df-problems.c (df_lr_confluence_0): Likewise.
      	* df-scan.c (df_entry_block_defs_collect): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(df_exit_block_uses_collect): Remove usage of EXIT_BLOCK_PTR macro.
      	* dominance.c (iterate_fix_dominators): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(calc_idoms): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(determine_dominators_for_sons): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(prune_bbs_to_update_dominators): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(calc_dfs_tree_nonrec): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* domwalk.c (cmp_bb_postorder): Likewise.
      	* dse.c (dse_step1): Remove usage of EXIT_BLOCK_PTR macro.
      	* except.c (finish_eh_generation): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(sjlj_emit_function_enter): Likewise.
      	* final.c (compute_alignments): Likewise.
      	* function.c (thread_prologue_and_epilogue_insns): Remove uses of
      	macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(reposition_prologue_and_epilogue_notes): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(convert_jumps_to_returns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(regno_clobbered_at_setjmp): Remove usage of ENTRY_BLOCK_PTR macro.
      	(next_block_for_reg): Remove usage of EXIT_BLOCK_PTR macro.
      	* gcse.c (hoist_code): Remove usage of ENTRY_BLOCK_PTR macro.
      	(update_bb_reg_pressure): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_code_hoist_vbeinout): Likewise.
      	(should_hoist_expr_to_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(pre_expr_reaches_here_p_work): Likewise.
      	* gimple-iterator.c (gsi_commit_edge_inserts): Likewise.
      	(gimple_find_edge_insert_loc): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* gimple-ssa-strength-reduction.c (slsr_process_phi): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graph.c (draw_cfg_nodes_for_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* graphite-clast-to-gimple.c (translate_clast_user): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* graphite-scop-detection.c (build_scops): Likewise.
      	(create_sese_edges): Remove usage of EXIT_BLOCK_PTR macro.
      	(scopdet_basic_block_info): Remove usage of ENTRY_BLOCK_PTR macro.
      	* haifa-sched.c (restore_bb_notes): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(unlink_bb_notes): Likewise.
      	(create_check_block_twin): Likewise.
      	(init_before_recovery): Likewise.
      	(sched_extend_bb): Likewise.
      	(priority): Likewise.
      	* hw-doloop.c (reorder_loops): Likewise.
      	(discover_loop): Likewise.
      	* ifcvt.c (dead_or_predicable): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_if_case_1): Remove usage of EXIT_BLOCK_PTR macro.
      	(block_has_only_trap): Likewise.
      	(cond_exec_find_if_block): Likewise.
      	(merge_if_block): Likewise.
      	* ipa-inline-analysis.c (param_change_prob): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(record_modified): Likewise.
      	* ipa-pure-const.c (execute_warn_function_noreturn): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	(local_pure_const): Likewise.
      	* ipa-split.c (split_function): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(find_split_points): Likewise.
      	(consider_split): Likewise.
      	(find_return_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(verify_non_ssa_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira-build.c (ira_loop_tree_body_rev_postorder): Likewise.
      	* ira-color.c (print_loop_title): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* ira-emit.c (entered_from_non_parent_p): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(ira_emit): Remove usage of EXIT_BLOCK_PTR macro.
      	* ira-int.h (ira_assert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* ira.c (split_live_ranges_for_shrink_wrap): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lcm.c (compute_rev_insert_delete): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(compute_nearerout): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_farthest): Likewise.
      	(compute_available): Likewise.
      	(compute_insert_delete): Remove usage of EXIT_BLOCK_PTR macro.
      	(compute_laterin): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compute_earliest): Likewise.
      	(compute_antinout_edge): Likewise.
      	* loop-iv.c (simplify_using_initial_values): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* loop-unswitch.c (unswitch_loop): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-assigns.c (find_hard_regno_for): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lra-constraints.c (lra_inheritance): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lra-lives.c (lra_create_live_ranges): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* lra.c (has_nonexceptional_receiver): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	* lto-streamer-in.c (input_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* lto-streamer-out.c (output_cfg): Likewise.
      	* mcf.c (adjust_cfg_counts): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(create_fixup_graph): Remove usage of ENTRY_BLOCK_PTR macro.
      	* mode-switching.c (optimize_mode_switching): Likewise.
      	(create_pre_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* modulo-sched.c (rest_of_handle_sms): Likewise.
      	(canon_loop): Likewise.
      	* omp-low.c (build_omp_regions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* postreload-gcse.c (eliminate_partially_redundant_loads): Remove uses
      	of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* predict.c (rebuild_frequencies): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_freq): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_bb_frequencies): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_estimate_probability_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(expensive_function_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(tree_bb_level_predictions): Remove usage of EXIT_BLOCK_PTR macro.
      	(counts_to_freqs): Remove usage of ENTRY_BLOCK_PTR macro.
      	(apply_return_prediction): Remove usage of EXIT_BLOCK_PTR macro.
      	(estimate_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gimple_predict_edge): Likewise.
      	(probably_never_executed): Likewise.
      	* profile.c (find_spanning_tree): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(branch_prob): Likewise.
      	(compute_branch_probabilities): Likewise.
      	(compute_frequency_overlap): Remove usage of ENTRY_BLOCK_PTR macro.
      	(is_inconsistent): Remove usage of EXIT_BLOCK_PTR macro.
      	(read_profile_edge_counts): Remove usage of ENTRY_BLOCK_PTR macro.
      	(set_bb_counts): Likewise.
      	(correct_negative_edge_counts): Likewise.
      	(get_exec_counts): Likewise.
      	(instrument_values): Likewise.
      	(instrument_edges): Likewise.
      	* reg-stack.c (convert_regs): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(compensate_edges): Remove usage of ENTRY_BLOCK_PTR macro.
      	(convert_regs_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	(convert_regs_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(reg_to_stack): Likewise.
      	* regs.h (REG_N_SETS): Likewise.
      	* reload.c (find_dummy_reload): Likewise.
      	(combine_reloads): Likewise.
      	(push_reload): Likewise.
      	* reload1.c (has_nonexceptional_receiver): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* resource.c (mark_target_live_regs): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(find_basic_block): Likewise.
      	* sched-ebb.c (ebb_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(schedule_ebbs): Likewise.
      	* sched-int.h (sel_sched_p): Likewise.
      	* sched-rgn.c (compute_dom_prob_ps): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(rgn_add_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(haifa_find_rgns): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(propagate_deps): Remove usage of EXIT_BLOCK_PTR macro.
      	(extend_rgns): Likewise.
      	(find_single_block_region): Likewise.
      	* sel-sched-ir.c (sel_remove_loop_preheader): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(setup_nop_and_exit_insns): Remove usage of EXIT_BLOCK_PTR macro.
      	(sel_create_recovery_block): Likewise.
      	(bb_ends_ebb_p): Likewise.
      	(sel_bb_end): Likewise.
      	(sel_bb_head): Likewise.
      	(free_lv_sets): Likewise.
      	(init_lv_sets): Likewise.
      	(tidy_control_flow): Likewise.
      	(maybe_tidy_empty_bb): Likewise.
      	* sel-sched-ir.h (_succ_iter_cond): Likewise.
      	(_succ_iter_start): Likewise.
      	(sel_bb_empty_or_nop_p): Likewise.
      	(get_loop_exit_edges_unique_dests): Likewise.
      	(inner_loop_header_p): Likewise.
      	* sel-sched.c (create_block_for_bookkeeping): Likewise.
      	(find_block_for_bookkeeping): Likewise.
      	* store-motion.c (remove_reachable_equiv_notes): Likewise.
      	(insert_store): Likewise.
      	* trans-mem.c (ipa_tm_transform_clone): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tm_memopt_compute_available): Remove usage of EXIT_BLOCK_PTR macro.
      	(ipa_tm_scan_irr_function): Remove usage of ENTRY_BLOCK_PTR macro.
      	(gate_tm_init): Likewise.
      	(tm_region_init): Likewise.
      	* tree-cfg.c (execute_fixup_cfg): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(execute_warn_function_return): Remove usage of EXIT_BLOCK_PTR macro.
      	(split_critical_edges): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(print_loops): Remove usage of ENTRY_BLOCK_PTR macro.
      	(move_sese_region_to_fn): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(gimple_redirect_edge_and_branch): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(gimple_verify_flow_info): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(remove_edge_and_dominated_blocks): Remove usage of EXIT_BLOCK_PTR
      	macro.
      	(make_edges): Remove uses of macros: ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(gimple_flow_call_edges_add): Remove usage of EXIT_BLOCK_PTR macro.
      	(make_blocks): Remove usage of ENTRY_BLOCK_PTR macro.
      	(build_gimple_cfg): Likewise.
      	(gimple_duplicate_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(gimple_can_merge_blocks_p): Likewise.
      	* tree-cfgcleanup.c (tree_forwarder_block_p): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-complex.c (update_parameter_components): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-if-conv.c (get_loop_body_in_if_conv_order): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-inline.c (tree_function_versioning): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(delete_unreachable_blocks_update_callgraph): Likewise.
      	(initialize_cfun): Likewise.
      	(copy_cfg_body): Remove usage of ENTRY_BLOCK_PTR macro.
      	(copy_edges_for_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(remap_ssa_name): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-into-ssa.c (update_ssa): Likewise.
      	(maybe_register_def): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert_updated_phi_nodes_for): Remove usage of ENTRY_BLOCK_PTR macro.
      	(rewrite_into_ssa): Likewise.
      	(rewrite_debug_stmt_uses): Likewise.
      	* tree-outof-ssa.c (expand_phi_nodes): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-scalar-evolution.h (block_before_loop): Likewise.
      	* tree-sra.c (sra_ipa_reset_debug_stmts): Likewise.
      	(dump_dereferences_table): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(analyze_caller_dereference_legality): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(propagate_dereference_distances): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(initialize_parameter_reductions): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* tree-ssa-ccp.c (gsi_prev_dom_bb_nondebug): Likewise.
      	(optimize_stack_restore): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
      	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(remove_dead_stmt): Remove usage of EXIT_BLOCK_PTR macro.
      	(propagate_necessity): Remove usage of ENTRY_BLOCK_PTR macro.
      	(mark_control_dependent_edges_necessary): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	* tree-ssa-dom.c (eliminate_degenerate_phis): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(tree_ssa_dominator_optimize): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-live.c (verify_live_on_entry): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(calculate_live_on_exit): Likewise.
      	(set_var_live_on_entry): Remove usage of ENTRY_BLOCK_PTR macro.
      	(loe_visit_block): Likewise.
      	* tree-ssa-live.h (live_on_exit): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(live_on_entry): Likewise.
      	* tree-ssa-loop-ivopts.c (find_interesting_uses): Remove usage of
      	EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-manip.c (compute_live_loop_exits): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Likewise.
      	(bound_difference): Likewise.
      	* tree-ssa-loop-prefetch.c (may_use_storent_in_loop_p): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Remove usage
      	of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-math-opts.c (register_division_in): Likewise.
      	* tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
      	* tree-ssa-pre.c (compute_avail): Likewise.
      	(compute_antic): Remove usage of EXIT_BLOCK_PTR macro.
      	(insert): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-propagate.c (ssa_prop_init): Likewise.
      	(simulate_block): Remove usage of EXIT_BLOCK_PTR macro.
      	(cfg_blocks_add): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	(add_control_edge): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-reassoc.c (do_reassoc): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(build_and_add_sum): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	(execute_sink_code): Remove usage of EXIT_BLOCK_PTR macro.
      	* tree-ssa-uninit.c (find_dom): Remove usage of ENTRY_BLOCK_PTR macro.
      	(compute_control_dep_chain): Remove usage of EXIT_BLOCK_PTR macro.
      	(find_pdom): Likewise.
      	(warn_uninitialized_vars): Remove usage of ENTRY_BLOCK_PTR macro.
      	* tree-stdarg.c (reachable_at_most_once): Likewise.
      	* tree-tailcall.c (tree_optimize_tail_calls_1): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(eliminate_tail_call): Likewise.
      	* tsan.c (instrument_func_entry): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	(instrument_func_exit): Remove usage of EXIT_BLOCK_PTR macro.
      	* var-tracking.c (vt_initialize): Remove uses of macros:
      	ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR.
      	(vt_add_function_parameter): Remove usage of ENTRY_BLOCK_PTR macro.
      	(vt_find_locations): Remove usage of EXIT_BLOCK_PTR macro.
      	(vt_stack_adjustments): Remove uses of macros: ENTRY_BLOCK_PTR,
      	EXIT_BLOCK_PTR.
      	* varasm.c (assemble_start_function): Remove usage of ENTRY_BLOCK_PTR
      	macro.
      	* config/bfin/bfin.c (hwloop_optimize): Likewise.
      	* config/nds32/nds32.c (nds32_fp_as_gp_check_available): Remove usage
      	of EXIT_BLOCK_PTR macro.
      	* config/arm/arm.c (require_pic_register): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	(arm_r3_live_at_start_p): Likewise.
      	(any_sibcall_could_use_r3): Remove usage of EXIT_BLOCK_PTR macro.
      	* config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise.
      	* config/frv/frv.c (frv_optimize_membar_global): Likewise.
      	* config/alpha/alpha.c (alpha_gp_save_rtx): Remove usage of
      	ENTRY_BLOCK_PTR macro.
      	* config/i386/i386.c (ix86_count_insn): Likewise.
      	(ix86_seh_fixup_eh_fallthru): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_pad_short_function): Likewise.
      	(ix86_compute_frame_layout): Remove usage of ENTRY_BLOCK_PTR macro.
      	(ix86_pad_returns): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_eax_live_at_start_p): Remove usage of ENTRY_BLOCK_PTR macro.
      	(add_condition_to_bb): Remove usage of EXIT_BLOCK_PTR macro.
      	(ix86_expand_epilogue): Likewise.
      	* config/ia64/ia64.c (ia64_asm_unwind_emit): Likewise.
      	(ia64_expand_prologue): Likewise.
      
      From-SVN: r205055
      David Malcolm committed
    • invoke.texi (mfix-rm7000, [...]): Document. · faaa3afb
      2013-11-19  Catherine Moore  <clm@codesourcery.com>
      
      	* doc/invoke.texi (mfix-rm7000, mno-fix-rm7000): Document.
      	* config/mips/mips.opt (mfix-rm7000): New option.
      	* config/mips/mips.h (ASM_SPEC): Handle mfix-rm7000.
      	* config/mips/mips.c (mips_reorg_process_insns): Disable
      	noreorder for TARGET_FIX_RM7000.
      
      From-SVN: r205054
      Catherine Moore committed
    • sh-c.c: Fix typo in include of file attribs.h. · b327149a
      	* config/sh/sh-c.c: Fix typo in include of file attribs.h.
      
      From-SVN: r205052
      Oleg Endo committed
    • arm.c (arm_new_rtx_costs): Handle narrow mode add-shifts properly. · 9e451125
      
      	* config/arm/arm.c (arm_new_rtx_costs):
      	Handle narrow mode add-shifts properly.
      	* config/arm/arm-common.c (arm_rtx_shift_left_p): Remove static.
      	* config/arm/arm-common-protos.h (arm_rtx_shift_left_p):
      	Declare extern.
      
      From-SVN: r205051
      Kyrylo Tkachov committed
    • [ARM] Add missing type attribute to zero_extend on arm · 5393d83e
      gcc/
      	* config/arm/arm.md (zero_extend<mode>di2): Add type attribute.
      
      From-SVN: r205050
      James Greenhalgh committed
    • ppc64-abi-2.c (MAKE_SLOT): New macro to construct parameter slot value in endian-independent way. · ec7ef533
      	* gcc.target/powerpc/ppc64-abi-2.c (MAKE_SLOT): New macro to
      	construct parameter slot value in endian-independent way.
      	(fcevv, fciievv, fcvevv): Use it.
      
      From-SVN: r205047
      Ulrich Weigand committed
    • vector.md ("mov<mode>"): Do not call rs6000_emit_le_vsx_move to move into or out of GPRs. · 2d04cc30
      	* config/rs6000/vector.md ("mov<mode>"): Do not call
      	rs6000_emit_le_vsx_move to move into or out of GPRs.
      	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_move): Assert
      	source and destination are not GPR hard regs.
      
      From-SVN: r205045
      Ulrich Weigand committed
    • Eliminate n_edges macro · dc936fb2
      	* basic-block.h (n_edges_for_function): Rename macro to...
      	(n_edges_for_fn): ...this.
      	(n_edges): Eliminate macro as work towards making uses of
      	cfun be explicit.
      
      	* cfg.c (init_flow): Update for renaming of "n_edges_for_function"
      	to "n_edges_for_fn".
      
      	* cfg.c (unchecked_make_edge): Remove usage of n_edges macro.
      	(clear_edges): Likewise.
      	(free_edge): Likewise.
      	* cfghooks.c (dump_flow_info): Likewise.
      	* cprop.c (is_too_expensive): Likewise.
      	* df-core.c (df_worklist_dataflow_doublequeue): Likewise.
      	* gcse.c (is_too_expensive): Likewise.
      	(prune_insertions_deletions): Likewise.
      	* mcf.c (create_fixup_graph): Likewise.
      	* sched-rgn.c (haifa_find_rgns): Likewise.
      	* tree-cfg.c (gimple_dump_cfg): Likewise.
      	* var-tracking.c (variable_tracking_main_1): Likewise.
      
      From-SVN: r205044
      David Malcolm committed
    • [AArch64] Fix whitespace around PROFILE_HOOK. · 3294102b
      From-SVN: r205041
      Marcus Shawcroft committed
    • varasm.c (align_variable): Give error instead of warning for unsupported alignment. · cb1ac93c
      	* varasm.c (align_variable): Give error instead of warning for
      	unsupported alignment.
      	(assemble_noswitch_variable): Likewise.
      
      From-SVN: r205040
      Joseph Myers committed
    • Revert accidental checkin. · bc36cb9b
      From-SVN: r205039
      Jan Hubicka committed
    • c-opts.c: Include plugin.h. · b826515a
      [gcc/c-family]
      2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
      
              * c-opts.c: Include plugin.h.
              (cb_file_change): Invoke plugin event PLUGIN_INCLUDE_FILE.
      
      [gcc/]
      2013-11-19  Basile Starynkevitch  <basile@starynkevitch.net>
      
              * plugin.def (PLUGIN_INCLUDE_FILE): New event, invoked in 
              cb_file_change.
      
      From-SVN: r205038
      Basile Starynkevitch committed
    • * ipa/devirt9.C: Fix previous change. · 8f1d1317
      From-SVN: r205037
      Jan Hubicka committed
    • loop-doloop.c (doloop_optimize_loops): Remove unused loop iterator argument from FOR_EACH_LOOP. · fdbbed34
      	* loop-doloop.c (doloop_optimize_loops): Remove unused
      	loop iterator argument from FOR_EACH_LOOP.
      
      From-SVN: r205036
      Peter Bergner committed
    • [AArch64] Fix 20101011-1.c · 13cbdaec
      2013-11-19  Cesar Philippidis  <cesar@codesourcery.com>
      
      	* gcc.c-torture/execute/20101011-1.c (__aarch64__):
      	Remove defined(__linux__).
      
      From-SVN: r205035
      Cesar Philippidis committed
    • Convert gimple types from a union to C++ inheritance · daa6e488
      Patch partially autogenerated by refactor_gimple.py from
      https://github.com/davidmalcolm/gcc-refactoring-scripts
      revision 05fc808c61bd8ddd2372f29b79ceb2491360d298
      
      	* Makefile.in (GIMPLE_H): Add dep on is-a.h.
      	* coretypes.h (union gimple_statement_d): Remove declaration.
      	(gimple): Convert from being a "union gimple_statement_d *"
      	to a "struct gimple_statement_base *".
      	(const_gimple): Likewise (with "const").
      	* ggc.h (ggc_alloc_cleared_gimple_statement_d_stat): Replace
      	with...
      	(ggc_alloc_cleared_gimple_statement_stat): ...this.
      	* gimple-pretty-print.c (debug): Change parameter from a
      	"gimple_statement_d &" to a "gimple_statement_base &".
      	(debug): Change parameter from a "gimple_statement_d *" to
      	a "gimple_statement_base *".
      	* gimple-pretty-print.h (debug): Update declarations as above.
      	* gimple.c (gimple_alloc_stat): Update for renaming of
      	ggc_alloc_cleared_gimple_statement_d_stat to
      	ggc_alloc_cleared_gimple_statement_stat.
      	* gimple.h: Include "is-a.h" for use by is_a_helper
      	specializations in followup autogenerated patch.
      	(struct gimple statement_base): Make this type usable as a base
      	class by adding "desc", "tag" and "variable_size" to GTY, thus
      	using opting-in to gengtype's support for simple inheritance.
      	(gimple_statement_with_ops_base): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field.  Note
      	that this type is abstract, with no GSS_ value, and thus no GTY
      	tag value.
      	(gimple_statement_with_ops): Convert to a subclass of
      	gimple_statement_with_ops_base, dropping initial "opbase" field.
      	Add tag value to GTY marking.  Update marking of op field to
      	reflect how num_ops field is accessed via inheritance.
      	(gimple_statement_with_memory_ops_base): Convert to a subclass of
      	gimple_statement_with_ops_base, dropping initial "opbase" field.
      	Add tag value to GTY marking.
      	(gimple_statement_with_memory_ops): Convert to a subclass of
      	public gimple_statement_with_memory_ops_base, dropping initial
      	"membase" field.  Add tag value to GTY marking.  Update marking
      	of op field to reflect how num_ops field is accessed via
      	inheritance.
      	(gimple_statement_call): Analogous changes that also update the
      	marking of the "u" union.
      	(gimple_statement_omp): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_bind): Likewise.
      	(gimple_statement_catch): Likewise.
      	(gimple_statement_eh_filter): Likewise.
      	(gimple_statement_eh_else): Likewise.
      	(gimple_statement_eh_mnt): Likewise.
      	(gimple_statement_phi): Likewise.
      	(gimple_statement_eh_ctrl): Likewise.
      	(gimple_statement_try): Likewise.
      	(gimple_statement_wce): Likewise.
      	(gimple_statement_asm): Convert to a subclass of
      	gimple_statement_with_memory_ops_base, dropping initial
      	"membase" field, adding tag value to GTY marking, and updating
      	marking of op field.
      	(gimple_statement_omp_critical): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding tag
      	value to GTY marking.
      	(gimple_statement_omp_for): Likewise.
      	(gimple_statement_omp_parallel): Likewise.
      	(gimple_statement_omp_task): Convert to a subclass of
      	gimple_statement_omp_parallel, dropping initial "par" field,
      	adding tag value to GTY marking.
      	(gimple_statement_omp_sections): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_continue): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_single): Convert to a subclass of
      	gimple_statement_omp, dropping initial "omp" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_atomic_load): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_omp_atomic_store): Convert to a subclass of
      	gimple_statement_base, dropping initial "gsbase" field, adding
      	tag value to GTY marking.
      	(gimple_statement_transaction): Convert to a subclass of
      	gimple_statement_with_memory_ops_base, dropping initial "gsbase"
      	field, adding tag value to GTY marking.
      	(union gimple_statement_d): Remove.
      	* system.h (CONST_CAST_GIMPLE): Update to use
      	"struct gimple_statement_base *" rather than
      	"union gimple_statement_d *".
      	* tree-ssa-ccp.c (gimple_htab): Convert underlying type from
      	gimple_statement_d to gimple_statement_base.
      
      	* gimple.h (gimple_use_ops): Port from union to usage of
      	dyn_cast.
      	(gimple_set_use_ops): Port from union to usage of as_a.
      	(gimple_set_vuse): Likewise.
      	(gimple_set_vdef): Likewise.
      	(gimple_call_internal_fn): Port from union to a static_cast,
      	given that the type has already been asserted.
      	(gimple_omp_body_ptr): Port from unchecked union usage to
      	a static_cast.
      	(gimple_omp_set_body): Likewise.
      
      	* gimple-iterator.c (update_bb_for_stmts): Update for conversion of
      	gimple types to a true class hierarchy.
      	(update_call_edge_frequencies): Likewise.
      	(gsi_insert_seq_nodes_before): Likewise.
      	(gsi_insert_seq_nodes_after): Likewise.
      	(gsi_split_seq_after): Likewise.
      	(gsi_set_stmt): Likewise.
      	(gsi_split_seq_before): Likewise.
      	(gsi_remove): Likewise.
      	* gimple-iterator.h (gsi_one_before_end_p): Likewise.
      	(gsi_next): Likewise.
      	(gsi_prev): Likewise.
      	* gimple-pretty-print.c (dump_gimple_debug): Likewise.
      	* gimple-ssa.h (gimple_vuse_op): Likewise.
      	(gimple_vdef_op): Likewise.
      	* gimple-streamer-in.c (input_gimple_stmt): Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimple.c (gimple_set_code): Likewise.
      	(gimple_alloc_stat): Likewise.
      	(gimple_set_subcode): Likewise.
      	(gimple_build_call_internal_1): Likewise.
      	(gimple_check_failed): Likewise.
      	(gimple_call_flags): Likewise.
      	(gimple_set_bb): Likewise.
      	* gimple.h (is_a_helper <gimple_statement_asm> (gimple)): New.
      	(is_a_helper <gimple_statement_bind> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_call> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_catch> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_ctrl> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_else> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_filter> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_eh_mnt> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_atomic_load> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_atomic_store> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_continue> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_critical> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_for> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_parallel> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_sections> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_single> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_omp_task> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_phi> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_transaction> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_try> (gimple)): Likewise.
      	(is_a_helper <gimple_statement_wce> (gimple)): Likewise.
      	(is_a_helper <const gimple_statement_asm> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_bind> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_call> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_catch> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_eh_ctrl> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_eh_filter> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_atomic_load> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_atomic_store>
      	(const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_omp_continue> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_critical> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_for> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_parallel> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_sections> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_single> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_omp_task> (const_gimple)):
      	Likewise.
      	(is_a_helper <const gimple_statement_phi> (const_gimple)): Likewise.
      	(is_a_helper <const gimple_statement_transaction> (const_gimple)):
      	Likewise.
      	(gimple_seq_last): Update for conversion of gimple types to a true
      	class hierarchy.
      	(gimple_seq_set_last): Likewise.
      	(gimple_code): Likewise.
      	(gimple_bb): Likewise.
      	(gimple_block): Likewise.
      	(gimple_set_block): Likewise.
      	(gimple_location): Likewise.
      	(gimple_location_ptr): Likewise.
      	(gimple_set_location): Likewise.
      	(gimple_no_warning_p): Likewise.
      	(gimple_set_no_warning): Likewise.
      	(gimple_set_visited): Likewise.
      	(gimple_visited_p): Likewise.
      	(gimple_set_plf): Likewise.
      	(gimple_plf): Likewise.
      	(gimple_set_uid): Likewise.
      	(gimple_uid): Likewise.
      	(gimple_init_singleton): Likewise.
      	(gimple_modified_p): Likewise.
      	(gimple_set_modified): Likewise.
      	(gimple_expr_code): Likewise.
      	(gimple_has_volatile_ops): Likewise.
      	(gimple_set_has_volatile_ops): Likewise.
      	(gimple_omp_subcode): Likewise.
      	(gimple_omp_set_subcode): Likewise.
      	(gimple_omp_return_set_nowait): Likewise.
      	(gimple_omp_section_set_last): Likewise.
      	(gimple_omp_parallel_set_combined_p): Likewise.
      	(gimple_omp_atomic_set_need_value): Likewise.
      	(gimple_omp_atomic_set_seq_cst): Likewise.
      	(gimple_num_ops): Likewise.
      	(gimple_set_num_ops): Likewise.
      	(gimple_assign_nontemporal_move_p): Likewise.
      	(gimple_assign_set_nontemporal_move): Likewise.
      	(gimple_assign_rhs_code): Likewise.
      	(gimple_assign_set_rhs_code): Likewise.
      	(gimple_call_internal_p): Likewise.
      	(gimple_call_with_bounds_p): Likewise.
      	(gimple_call_set_with_bounds): Likewise.
      	(gimple_call_set_tail): Likewise.
      	(gimple_call_tail_p): Likewise.
      	(gimple_call_set_return_slot_opt): Likewise.
      	(gimple_call_return_slot_opt_p): Likewise.
      	(gimple_call_set_from_thunk): Likewise.
      	(gimple_call_from_thunk_p): Likewise.
      	(gimple_call_set_va_arg_pack): Likewise.
      	(gimple_call_va_arg_pack_p): Likewise.
      	(gimple_call_set_nothrow): Likewise.
      	(gimple_call_set_alloca_for_var): Likewise.
      	(gimple_call_alloca_for_var_p): Likewise.
      	(gimple_call_copy_flags): Likewise.
      	(gimple_cond_code): Likewise.
      	(gimple_cond_set_code): Likewise.
      	(gimple_cond_make_false): Likewise.
      	(gimple_cond_make_true): Likewise.
      	(gimple_asm_volatile_p): Likewise.
      	(gimple_asm_set_volatile): Likewise.
      	(gimple_asm_set_input): Likewise.
      	(gimple_asm_input_p): Likewise.
      	(gimple_try_kind): Likewise.
      	(gimple_try_set_kind): Likewise.
      	(gimple_try_catch_is_cleanup): Likewise.
      	(gimple_try_set_catch_is_cleanup): Likewise.
      	(gimple_wce_cleanup_eh_only): Likewise.
      	(gimple_wce_set_cleanup_eh_only): Likewise.
      	(gimple_debug_bind_p): Likewise.
      	(gimple_debug_source_bind_p): Likewise.
      	(gimple_omp_for_set_kind): Likewise.
      	(gimple_omp_for_set_combined_p): Likewise.
      	(gimple_omp_for_set_combined_into_p): Likewise.
      	(gimple_omp_target_set_kind): Likewise.
      	(gimple_transaction_subcode): Likewise.
      	(gimple_transaction_set_subcode): Likewise.
      	(gimple_predict_predictor): Likewise.
      	(gimple_predict_set_predictor): Likewise.
      	(gimple_predict_outcome): Likewise.
      	(gimple_predict_set_outcome): Likewise.
      	(gimple_transaction_set_label): Likewise.
      	(gimple_transaction_set_body): Likewise.
      	(gimple_transaction_label_ptr): Likewise.
      	(gimple_transaction_label): Likewise.
      	(gimple_transaction_body_ptr): Likewise.
      	(gimple_omp_continue_set_control_use): Likewise.
      	(gimple_omp_continue_control_use_ptr): Likewise.
      	(gimple_omp_continue_control_use): Likewise.
      	(gimple_omp_continue_set_control_def): Likewise.
      	(gimple_omp_continue_control_def_ptr): Likewise.
      	(gimple_omp_continue_control_def): Likewise.
      	(gimple_omp_atomic_load_rhs_ptr): Likewise.
      	(gimple_omp_atomic_load_rhs): Likewise.
      	(gimple_omp_atomic_load_set_rhs): Likewise.
      	(gimple_omp_atomic_load_lhs_ptr): Likewise.
      	(gimple_omp_atomic_load_lhs): Likewise.
      	(gimple_omp_atomic_load_set_lhs): Likewise.
      	(gimple_omp_atomic_store_val_ptr): Likewise.
      	(gimple_omp_atomic_store_val): Likewise.
      	(gimple_omp_atomic_store_set_val): Likewise.
      	(gimple_omp_for_cond): Likewise.
      	(gimple_omp_for_set_cond): Likewise.
      	(gimple_omp_sections_set_control): Likewise.
      	(gimple_omp_sections_control_ptr): Likewise.
      	(gimple_omp_sections_control): Likewise.
      	(gimple_omp_sections_set_clauses): Likewise.
      	(gimple_omp_sections_clauses_ptr): Likewise.
      	(gimple_omp_sections_clauses): Likewise.
      	(gimple_omp_teams_set_clauses): Likewise.
      	(gimple_omp_teams_clauses_ptr): Likewise.
      	(gimple_omp_teams_clauses): Likewise.
      	(gimple_omp_target_set_data_arg): Likewise.
      	(gimple_omp_target_data_arg_ptr): Likewise.
      	(gimple_omp_target_data_arg): Likewise.
      	(gimple_omp_target_set_child_fn): Likewise.
      	(gimple_omp_target_child_fn_ptr): Likewise.
      	(gimple_omp_target_child_fn): Likewise.
      	(gimple_omp_target_set_clauses): Likewise.
      	(gimple_omp_target_clauses_ptr): Likewise.
      	(gimple_omp_target_clauses): Likewise.
      	(gimple_omp_single_set_clauses): Likewise.
      	(gimple_omp_single_clauses_ptr): Likewise.
      	(gimple_omp_single_clauses): Likewise.
      	(gimple_omp_task_set_arg_align): Likewise.
      	(gimple_omp_task_arg_align_ptr): Likewise.
      	(gimple_omp_task_arg_align): Likewise.
      	(gimple_omp_task_set_arg_size): Likewise.
      	(gimple_omp_task_arg_size_ptr): Likewise.
      	(gimple_omp_task_arg_size): Likewise.
      	(gimple_omp_task_set_copy_fn): Likewise.
      	(gimple_omp_task_copy_fn_ptr): Likewise.
      	(gimple_omp_task_copy_fn): Likewise.
      	(gimple_omp_task_set_data_arg): Likewise.
      	(gimple_omp_task_data_arg_ptr): Likewise.
      	(gimple_omp_task_data_arg): Likewise.
      	(gimple_omp_task_set_child_fn): Likewise.
      	(gimple_omp_task_child_fn_ptr): Likewise.
      	(gimple_omp_task_child_fn): Likewise.
      	(gimple_omp_task_set_clauses): Likewise.
      	(gimple_omp_task_clauses_ptr): Likewise.
      	(gimple_omp_task_clauses): Likewise.
      	(gimple_omp_parallel_set_data_arg): Likewise.
      	(gimple_omp_parallel_data_arg_ptr): Likewise.
      	(gimple_omp_parallel_data_arg): Likewise.
      	(gimple_omp_parallel_set_child_fn): Likewise.
      	(gimple_omp_parallel_child_fn_ptr): Likewise.
      	(gimple_omp_parallel_child_fn): Likewise.
      	(gimple_omp_parallel_set_clauses): Likewise.
      	(gimple_omp_parallel_clauses_ptr): Likewise.
      	(gimple_omp_parallel_clauses): Likewise.
      	(gimple_omp_for_set_pre_body): Likewise.
      	(gimple_omp_for_pre_body_ptr): Likewise.
      	(gimple_omp_for_set_incr): Likewise.
      	(gimple_omp_for_incr_ptr): Likewise.
      	(gimple_omp_for_incr): Likewise.
      	(gimple_omp_for_set_final): Likewise.
      	(gimple_omp_for_final_ptr): Likewise.
      	(gimple_omp_for_final): Likewise.
      	(gimple_omp_for_set_initial): Likewise.
      	(gimple_omp_for_initial_ptr): Likewise.
      	(gimple_omp_for_initial): Likewise.
      	(gimple_omp_for_set_index): Likewise.
      	(gimple_omp_for_index_ptr): Likewise.
      	(gimple_omp_for_index): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      	(gimple_omp_for_clauses_ptr): Likewise.
      	(gimple_omp_for_clauses): Likewise.
      	(gimple_omp_critical_set_name): Likewise.
      	(gimple_omp_critical_name_ptr): Likewise.
      	(gimple_omp_critical_name): Likewise.
      	(gimple_eh_dispatch_set_region): Likewise.
      	(gimple_eh_dispatch_region): Likewise.
      	(gimple_resx_set_region): Likewise.
      	(gimple_resx_region): Likewise.
      	(gimple_phi_set_arg): Likewise.
      	(gimple_phi_arg): Likewise.
      	(gimple_phi_set_result): Likewise.
      	(gimple_phi_result_ptr): Likewise.
      	(gimple_phi_result): Likewise.
      	(gimple_phi_num_args): Likewise.
      	(gimple_phi_capacity): Likewise.
      	(gimple_wce_set_cleanup): Likewise.
      	(gimple_wce_cleanup_ptr): Likewise.
      	(gimple_try_set_cleanup): Likewise.
      	(gimple_try_set_eval): Likewise.
      	(gimple_try_cleanup_ptr): Likewise.
      	(gimple_try_eval_ptr): Likewise.
      	(gimple_eh_else_set_e_body): Likewise.
      	(gimple_eh_else_set_n_body): Likewise.
      	(gimple_eh_else_e_body_ptr): Likewise.
      	(gimple_eh_else_n_body_ptr): Likewise.
      	(gimple_eh_must_not_throw_set_fndecl): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Likewise.
      	(gimple_eh_filter_set_failure): Likewise.
      	(gimple_eh_filter_set_types): Likewise.
      	(gimple_eh_filter_failure_ptr): Likewise.
      	(gimple_eh_filter_types_ptr): Likewise.
      	(gimple_eh_filter_types): Likewise.
      	(gimple_catch_set_handler): Likewise.
      	(gimple_catch_set_types): Likewise.
      	(gimple_catch_handler_ptr): Likewise.
      	(gimple_catch_types_ptr): Likewise.
      	(gimple_catch_types): Likewise.
      	(gimple_asm_string): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_set_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_nlabels): Likewise.
      	(gimple_asm_nclobbers): Likewise.
      	(gimple_asm_noutputs): Likewise.
      	(gimple_asm_ninputs): Likewise.
      	(gimple_bind_set_block): Likewise.
      	(gimple_bind_block): Likewise.
      	(gimple_bind_add_seq): Likewise.
      	(gimple_bind_add_stmt): Likewise.
      	(gimple_bind_set_body): Likewise.
      	(gimple_bind_body_ptr): Likewise.
      	(gimple_bind_append_vars): Likewise.
      	(gimple_bind_set_vars): Likewise.
      	(gimple_bind_vars): Likewise.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_call_use_set): Likewise.
      	(gimple_call_set_internal_fn): Likewise.
      	(gimple_call_set_fntype): Likewise.
      	(gimple_call_fntype): Likewise.
      	(gimple_omp_return_lhs_ptr): Likewise.
      	(gimple_omp_return_lhs): Likewise.
      	(gimple_omp_return_set_lhs): Likewise.
      	(gimple_omp_taskreg_set_data_arg): Likewise.
      	(gimple_omp_taskreg_data_arg_ptr): Likewise.
      	(gimple_omp_taskreg_data_arg): Likewise.
      	(gimple_omp_taskreg_set_child_fn): Likewise.
      	(gimple_omp_taskreg_child_fn_ptr): Likewise.
      	(gimple_omp_taskreg_child_fn): Likewise.
      	(gimple_omp_taskreg_set_clauses): Likewise.
      	(gimple_omp_taskreg_clauses_ptr): Likewise.
      	(gimple_omp_taskreg_clauses): Likewise.
      	(gimple_vuse): Likewise.
      	(gimple_vdef): Likewise.
      	(gimple_vuse_ptr): Likewise.
      	(gimple_vdef_ptr): Likewise.
      	* tree-inline.c (copy_debug_stmt): Likewise.
      	* tree-phinodes.c (make_phi_node): Likewise.
      
      	* gimple.h (is_a_helper <const gimple_statement_with_ops>::test): New.
      	(is_a_helper <gimple_statement_with_ops>::test): New.
      	(is_a_helper <const gimple_statement_with_memory_ops>::test): New.
      	(is_a_helper <gimple_statement_with_memory_ops>::test): New.
      
      	* gimple-streamer-in.c (input_gimple_stmt): Port from union
      	access to use of as_a.
      	* gimple.c (gimple_build_asm_1): Likewise.
      	(gimple_build_try): Likewise.  Also, return a specific subclass
      	rather than just gimple.
      	(gimple_build_resx): Port from union access to use of as_a.
      	(gimple_build_eh_dispatch): Likewise.
      	(gimple_build_omp_for): Likewise.  Also, convert allocation of iter
      	now that gengtype no longer provides a typed allocator function.
      	(gimple_copy): Likewise.
      	* gimple.h (gimple_build_try): Return a specific subclass rather
      	than just gimple.
      	* gimplify.c (gimplify_cleanup_point_expr): Replace union access
      	with subclass access by making use of new return type of
      	gimple_build_try.
      	* tree-phinodes.c: (allocate_phi_node): Return a
      	"gimple_statement_phi *" rather than just a gimple.
      	(resize_phi_node): Likewise.
      	(make_phi_node): Replace union access with subclass access by
      	making use of new return type of allocate_phi_node.
      	(reserve_phi_args_for_new_edge): Replace union access with as_a.
      	(remove_phi_arg_num): Accept a "gimple_statement_phi *" rather
      	than just a gimple.
      	(remove_phi_args): Update for change to remove_phi_arg_num.
      
      	* gdbhooks.py (GimplePrinter.to_string): Update lookup of
      	code field to reflect inheritance, rather than embedding of
      	the base gimple type.
      
      From-SVN: r205034
      David Malcolm committed
    • string_view (_S_max_size): Remove. · 660dca79
      2013-11-19  Paolo Carlini  <paolo.carlini@oracle.com>
      
      	* include/experimental/string_view (_S_max_size): Remove.
      	(basic_string_view<>::max_size): Adjust.
      	* testsuite/experimental/string_view/capacity/1.cc: Clean-up.
      	* testsuite/experimental/string_view/inserters/pod/10081-out.cc:
      	Likewise.
      
      From-SVN: r205033
      Paolo Carlini committed
    • cfgloop.h (struct loop_iterator): C++-ify, add constructor and destructor and… · f0bd40b1
      cfgloop.h (struct loop_iterator): C++-ify, add constructor and destructor and make fel_next a member function.
      
      2013-11-19  Richard Biener  <rguenther@suse.de>
      
      	* cfgloop.h (struct loop_iterator): C++-ify, add constructor
      	and destructor and make fel_next a member function.
      	(fel_next): Transform into ...
      	(loop_iterator::next): ... this.
      	(fel_init): Transform into ...
      	(loop_iterator::loop_iterator): ... this.
      	(loop_iterator::~loop_iterator): New.
      	(FOR_EACH_LOOP): Remove loop-iterator argument.
      	(FOR_EACH_LOOP_BREAK): Remove no longer necessary macro.
      	* cfgloop.c, cfgloopmanip.c, config/mn10300/mn10300.c,
      	graphite-clast-to-gimple.c, graphite-scop-detection.c,
      	graphite-sese-to-poly.c, ipa-inline-analysis.c, ipa-pure-const.c,
      	loop-init.c, loop-invariant.c, loop-unroll.c, loop-unswitch.c,
      	modulo-sched.c, predict.c, sel-sched-ir.c, tree-cfg.c, tree-data-ref.c,
      	tree-if-conv.c, tree-loop-distribution.c, tree-parloops.c,
      	tree-predcom.c, tree-scalar-evolution.c, tree-ssa-dce.c,
      	tree-ssa-loop-ch.c, tree-ssa-loop-im.c, tree-ssa-loop-ivcanon.c,
      	tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-loop-niter.c,
      	tree-ssa-loop-prefetch.c, tree-ssa-loop-unswitch.c,
      	tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vrp.c: Adjust
      	uses of FOR_EACH_LOOP and remove loop_iterator variables.  Replace
      	FOR_EACH_LOOP_BREAK with break.
      
      From-SVN: r205032
      Richard Biener committed
    • runtime: Update for change to libbacktrace library. · 92495ff6
      From-SVN: r205031
      Ian Lance Taylor committed
    • re PR tree-optimization/59164 (ice: tree check: expected tree that contains… · 47c32082
      re PR tree-optimization/59164 (ice: tree check: expected tree that contains ‘decl minimal’ structure, have ‘integer_cst’ in get_var_info, at tree-into-ssa.c:380)
      
      2013-11-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/59164
      	* tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer):
      	Uncomment assert.
      	* tree-vect-loop.c (vect_analyze_loop_operations): Adjust
      	check whether we can create an epilogue loop to reflect the
      	cases where we create one.
      
      	* gcc.dg/torture/pr59164.c: New testcase.
      
      From-SVN: r205030
      Richard Biener committed
    • backtrace.h (backtrace_syminfo_callback): Add symsize argument. · 1f96a712
      	* backtrace.h (backtrace_syminfo_callback): Add symsize argument.
      	* elf.c (elf_syminfo): Pass 0 or sym->size to the callback as
      	last argument.
      	* btest.c (struct symdata): Add size field.
      	(callback_three): Add symsize argument.  Copy it to the data->size
      	field.
      	(f23): Set symdata.size to 0.
      	(test5): Likewise.  If sizeof (int) > 1, lookup address of
      	((uintptr_t) &global) + 1.  Verify symdata.val and symdata.size
      	values.
      
      From-SVN: r205028
      Jakub Jelinek committed
    • graphite-sese-to-poly.c: Include expr.h. · e4effef7
      	* graphite-sese-to-poly.c: Include expr.h.
      
      From-SVN: r205027
      Andrew MacLeod committed
    • re PR middle-end/58956 (wrong code at -O1 and above (affecting gcc 4.6 to trunk)) · 7d07de0b
      2013-11-19  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/58956
      	* tree-ssa-ter.c (find_replaceable_in_bb): Avoid forwarding
      	loads into stmts that may clobber it.
      
      	* gcc.dg/torture/pr58956.c: New testcase.
      
      From-SVN: r205026
      Richard Biener committed
    • Small cleanups in cgraph. · b4d05578
      	* cgraphunit.c (symtab_terminator): New variable.
      	(queued_nodes): Renamed from first.  Use symtab_terminator as
      	initializer.
      	(analyze_functions): Adjust accordingly.
      	(cgraph_process_new_functions): Return void.
      	* cgraph.h (cgraph_process_new_functions): Adjust declaration.
      
      From-SVN: r205024
      Bernd Schmidt committed
    • Factor unrelated declarations out of tree.h. · d8a2d370
      This patch applies the rule that functions defined in FOO.c must be
      declared in FOO.h. One of the worst offenders in the code base is
      tree.h, unsurprisingly.
      
      The patch creates several new headers: attribs.h calls.h fold-const.h
      gcc-symtab.h print-rtl.h print-tree.h stmt.h stor-layout.h stringpool.h
      tree-nested.h tree-object-size.h varasm.h.
      
      Functions in each corresponding .c file got moved to those headers and
      others that already existed. I wanted to make this patch as mechanical
      as possible, so I made no attempt to fix problems like having
      build_addr defined in tree-inline.c. I left that for later.
      
      There were some declarations that I could not move out of tree.h
      because of header poisoning or the use of target macros. We forbid the
      inclusion of things like expr.h from FE files. While that's a
      reasonable idea, the FE file *still* manage to at expr.c functionality
      because the declarations they want to use were defined in tree.h.
      
      The affected files are builtins.h, emit-rtl.h and expr.h.
      
      If that functionality is allowed to be accessed from the FEs,
      then I will later move those functions out of expr.c into tree.c.
      I have moved these declarations to the bottom of tree.h so they
      are easy to identify later.
      
      There is a namespace collision with libcpp. The file gcc/symtab.c
      cannot use gcc/symtab.h because the #include command picks up
      libcpp/include/symtab.h first. So I named this file gcc-symtab.h
      for now.
      
      Finally, I added a new header to PLUGIN_HEADERS to account for the
      tree.h refactoring. I did not add all headers factored out of tree.h
      because it is unclear (and impossible to tell) what plugins need.
      This adds the one header used by the plugins in the testsuite.
      
      This will be changing quite dramatically as we progress with the header
      refactoring.
      
      This patch should offer some minimal incremental build advantages
      by reducing the size of tree.h. Changes that would otherwise
      affected tree.h, will now go to other headers which are less
      frequently included.
      
      	* tree.h: Include fold-const.h.
      	(aggregate_value_p): Moved to function.h.
      	(alloca_call_p): Moved to calls.h.
      	(allocate_struct_function): Moved to function.h.
      	(apply_tm_attr): Moved to attribs.h.
      	(array_at_struct_end_p): Moved to expr.h.
      	(array_ref_element_size): Moved to tree-dfa.h.
      	(array_ref_low_bound): Moved to tree-dfa.h.
      	(array_ref_up_bound): Moved to tree.h.
      	(assemble_alias): Moved to cgraph.h.
      	(bit_from_pos): Moved to stor-layout.h.
      	(build_addr): Moved to tree-nested.h.
      	(build_duplicate_type): Moved to tree-inline.h.
      	(build_fold_addr_expr): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type): Moved to fold-const.h.
      	(build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
      	(build_fold_indirect_ref): Moved to fold-const.h.
      	(build_fold_indirect_ref_loc): Moved to fold-const.h.
      	(build_personality_function): Moved to tree.h.
      	(build_range_check): Moved to fold-const.h.
      	(build_simple_mem_ref): Moved to fold-const.h.
      	(build_simple_mem_ref_loc): Moved to fold-const.h.
      	(build_tm_abort_call): Moved to trans-mem.h.
      	(byte_from_pos): Moved to stor-layout.h.
      	(call_expr_flags): Moved to calls.h.
      	(can_move_by_pieces): Moved to expr.h.
      	(categorize_ctor_elements): Moved to expr.h.
      	(change_decl_assembler_name): Moved to gcc-symtab.h.
      	(combine_comparisons): Moved to fold-const.h.
      	(complete_ctor_at_level_p): Moved to tree.h.
      	(component_ref_field_offset): Moved to tree-dfa.h.
      	(compute_builtin_object_size): Moved to tree-object-size.h.
      	(compute_record_mode): Moved to stor-layout.h.
      	(constant_boolean_node): Moved to fold-const.h.
      	(constructor_static_from_elts_p): Moved to varasm.h.
      	(cxx11_attribute_p): Moved to attribs.h.
      	(debug_body): Moved to print-tree.h.
      	(debug_find_tree): Moved to tree-inline.h.
      	(debug_fold_checksum): Moved to fold-const.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_head): Moved to print-tree.h.
      	(debug_raw): Moved to print-tree.h.
      	(debug_tree): Moved to print-tree.h.
      	(debug_vec_tree): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(debug_verbose): Moved to print-tree.h.
      	(decl_attributes): Moved to attribs.h.
      	(decl_binds_to_current_def_p): Moved to varasm.h.
      	(decl_default_tls_model): Moved to varasm.h.
      	(decl_replaceable_p): Moved to varasm.h.
      	(div_if_zero_remainder): Moved to fold-const.h.
      	(double_int mem_ref_offset): Moved to fold-const.h.
      	(dump_addr): Moved to print-tree.h.
      	(element_precision): Moved to machmode.h.
      	(expand_dummy_function_end): Moved to function.h.
      	(expand_function_end): Moved to function.h.
      	(expand_function_start): Moved to function.h.
      	(expand_label): Moved to stmt.h.
      	(expr_first): Moved to tree-iterator.h.
      	(expr_last): Moved to tree-iterator.h.
      	(finalize_size_functions): Moved to stor-layout.h.
      	(finish_builtin_struct): Moved to stor-layout.h.
      	(finish_record_layout): Moved to stor-layout.h.
      	(fixup_signed_type): Moved to stor-layout.h.
      	(fixup_unsigned_type): Moved to stor-layout.h.
      	(flags_from_decl_or_type): Moved to calls.h.
      	(fold): Moved to fold-const.h.
      	(fold_abs_const): Moved to fold-const.h.
      	(fold_binary): Moved to fold-const.h.
      	(fold_binary_loc): Moved to fold-const.h.
      	(fold_binary_to_constant): Moved to fold-const.h.
      	(fold_build1): Moved to fold-const.h.
      	(fold_build1_initializer_loc): Moved to fold-const.h.
      	(fold_build1_loc): Moved to fold-const.h.
      	(fold_build1_stat_loc): Moved to fold-const.h.
      	(fold_build2): Moved to fold-const.h.
      	(fold_build2_initializer_loc): Moved to fold-const.h.
      	(fold_build2_loc): Moved to fold-const.h.
      	(fold_build2_stat_loc): Moved to fold-const.h.
      	(fold_build3): Moved to fold-const.h.
      	(fold_build3_loc): Moved to fold-const.h.
      	(fold_build3_stat_loc): Moved to fold-const.h.
      	(fold_build_call_array): Moved to fold-const.h.
      	(fold_build_call_array_initializer): Moved to fold-const.h.
      	(fold_build_call_array_initializer_loc): Moved to fold-const.h.
      	(fold_build_call_array_loc): Moved to fold-const.h.
      	(fold_build_cleanup_point_expr): Moved to fold-const.h.
      	(fold_convert): Moved to fold-const.h.
      	(fold_convert_loc): Moved to fold-const.h.
      	(fold_convertible_p): Moved to fold-const.h.
      	(fold_defer_overflow_warnings): Moved to fold-const.h.
      	(fold_deferring_overflow_warnings_p): Moved to fold-const.h.
      	(fold_fma): Moved to fold-const.h.
      	(fold_ignored_result): Moved to fold-const.h.
      	(fold_indirect_ref): Moved to fold-const.h.
      	(fold_indirect_ref_1): Moved to fold-const.h.
      	(fold_indirect_ref_loc): Moved to fold-const.h.
      	(fold_read_from_constant_string): Moved to fold-const.h.
      	(fold_real_zero_addition_p): Moved to fold-const.h.
      	(fold_single_bit_test): Moved to fold-const.h.
      	(fold_strip_sign_ops): Moved to fold-const.h.
      	(fold_ternary): Moved to fold-const.h.
      	(fold_ternary_loc): Moved to fold-const.h.
      	(fold_unary): Moved to tree-data-ref.h.
      	(fold_unary_ignore_overflow): Moved to fold-const.h.
      	(fold_unary_ignore_overflow_loc): Moved to fold-const.h.
      	(fold_unary_loc): Moved to fold-const.h.
      	(fold_unary_to_constant): Moved to fold-const.h.
      	(fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
      	(fold_undefer_overflow_warnings): Moved to fold-const.h.
      	(folding_initializer): Moved to fold-const.h.
      	(free_temp_slots): Moved to function.h.
      	(generate_setjmp_warnings): Moved to function.h.
      	(get_attribute_name): Moved to attribs.h.
      	(get_identifier): Moved to stringpool.h.
      	(get_identifier_with_length): Moved to stringpool.h.
      	(get_inner_reference): Moved to tree.h.
      	(gimple_alloca_call_p): Moved to calls.h.
      	(gimplify_parameters): Moved to function.h.
      	(highest_pow2_factor): Moved to expr.h.
      	(indent_to): Moved to print-tree.h.
      	(init_attributes): Moved to attribs.h.
      	(init_dummy_function_start): Moved to function.h.
      	(init_function_start): Moved to function.h.
      	(init_inline_once): Moved to tree-inline.h.
      	(init_object_sizes): Moved to tree-object-size.h.
      	(init_temp_slots): Moved to function.h.
      	(init_tree_optimization_optabs): Moved to optabs.h.
      	(initialize_sizetypes): Moved to stor-layout.h.
      	(initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
      	(initializer_constant_valid_p): Moved to varasm.h.
      	(int_const_binop): Moved to fold-const.h.
      	(internal_reference_types): Moved to stor-layout.h.
      	(invert_tree_comparison): Moved to fold-const.h.
      	(invert_truthvalue): Moved to fold-const.h.
      	(invert_truthvalue_loc): Moved to fold-const.h.
      	(is_tm_ending_fndecl): Moved to trans-mem.h.
      	(is_tm_may_cancel_outer): Moved to trans-mem.h.
      	(is_tm_pure): Moved to trans-mem.h.
      	(is_tm_safe): Moved to trans-mem.h.
      	(layout_decl): Moved to stor-layout.h.
      	(layout_type): Moved to stor-layout.h.
      	(lookup_attribute_spec): Moved to attribs.h.
      	(make_accum_type): Moved to stor-layout.h.
      	(make_decl_one_only): Moved to varasm.h.
      	(make_decl_rtl): Moved to tree.h.
      	(make_decl_rtl_for_debug): Moved to varasm.h.
      	(make_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_signed_fract_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
      	(make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
      	(make_range): Moved to fold-const.h.
      	(make_range_step): Moved to fold-const.h.
      	(make_sat_signed_accum_type): Moved to stor-layout.h.
      	(make_sat_signed_fract_type): Moved to stor-layout.h.
      	(make_sat_unsigned_accum_type): Moved to stor-layout.h.
      	(make_sat_unsigned_fract_type): Moved to stor-layout.h.
      	(make_signed_accum_type): Moved to stor-layout.h.
      	(make_signed_fract_type): Moved to stor-layout.h.
      	(make_signed_type): Moved to stor-layout.h.
      	(make_unsigned_accum_type): Moved to stor-layout.h.
      	(make_unsigned_fract_type): Moved to stor-layout.h.
      	(make_unsigned_type): Moved to stor-layout.h.
      	(mark_decl_referenced): Moved to varasm.h.
      	(mark_referenced): Moved to varasm.h.
      	(may_negate_without_overflow_p): Moved to fold-const.h.
      	(maybe_get_identifier): Moved to stringpool.h.
      	(merge_ranges): Moved to fold-const.h.
      	(merge_weak): Moved to varasm.h.
      	(mode_for_size_tree): Moved to stor-layout.h.
      	(multiple_of_p): Moved to fold-const.h.
      	(must_pass_in_stack_var_size): Moved to calls.h.
      	(must_pass_in_stack_var_size_or_pad): Moved to calls.h.
      	(native_encode_expr): Moved to fold-const.h.
      	(native_interpret_expr): Moved to fold-const.h.
      	(non_lvalue): Moved to fold-const.h.
      	(non_lvalue_loc): Moved to fold-const.h.
      	(normalize_offset): Moved to stor-layout.h.
      	(normalize_rli): Moved to stor-layout.h.
      	(notice_global_symbol): Moved to varasm.h.
      	(omit_one_operand): Moved to fold-const.h.
      	(omit_one_operand_loc): Moved to fold-const.h.
      	(omit_two_operands): Moved to fold-const.h.
      	(omit_two_operands_loc): Moved to fold-const.h.
      	(operand_equal_p): Moved to tree-data-ref.h.
      	(parse_input_constraint): Moved to stmt.h.
      	(parse_output_constraint): Moved to stmt.h.
      	(place_field): Moved to stor-layout.h.
      	(pop_function_context): Moved to function.h.
      	(pop_temp_slots): Moved to function.h.
      	(pos_from_bit): Moved to stor-layout.h.
      	(preserve_temp_slots): Moved to function.h.
      	(print_node): Moved to print-tree.h.
      	(print_node_brief): Moved to print-tree.h.
      	(print_rtl): Moved to rtl.h.
      	(process_pending_assemble_externals): Moved to varasm.h.
      	(ptr_difference_const): Moved to fold-const.h.
      	(push_function_context): Moved to function.h.
      	(push_struct_function): Moved to function.h.
      	(push_temp_slots): Moved to function.h.
      	(record_tm_replacement): Moved to trans-mem.h.
      	(relayout_decl): Moved to stor-layout.h.
      	(resolve_asm_operand_names): Moved to stmt.h.
      	(resolve_unique_section): Moved to varasm.h.
      	(rli_size_so_far): Moved to stor-layout.h.
      	(rli_size_unit_so_far): Moved to stor-layout.h.
      	(round_down): Moved to fold-const.h.
      	(round_down_loc): Moved to fold-const.h.
      	(round_up): Moved to fold-const.h.
      	(round_up_loc): Moved to fold-const.h.
      	(set_decl_incoming_rtl): Moved to emit-rtl.h.
      	(set_decl_rtl): Moved to tree.h.
      	(set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
      	(set_user_assembler_name): Moved to varasm.h.
      	(setjmp_call_p): Moved to calls.h.
      	(size_binop): Moved to fold-const.h.
      	(size_binop_loc): Moved to fold-const.h.
      	(size_diffop): Moved to fold-const.h.
      	(size_diffop_loc): Moved to fold-const.h.
      	(size_int_kind): Moved to fold-const.h.
      	(stack_protect_epilogue): Moved to function.h.
      	(start_record_layout): Moved to stor-layout.h.
      	(supports_one_only): Moved to varasm.h.
      	(swap_tree_comparison): Moved to fold-const.h.
      	(tm_malloc_replacement): Moved to trans-mem.h.
      	(tree build_fold_addr_expr_loc): Moved to fold-const.h.
      	(tree build_invariant_address): Moved to fold-const.h.
      	(tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_binary_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_call_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_p): Moved to fold-const.h.
      	(tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_output_constant_def): Moved to varasm.h.
      	(tree_overlaps_hard_reg_set): Moved to stmt.h.
      	(tree_single_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_single_nonzero_warnv_p): Moved to fold-const.h.
      	(tree_swap_operands_p): Moved to fold-const.h.
      	(tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
      	(tree_unary_nonzero_warnv_p): Moved to fold-const.h.
      	(update_alignment_for_field): Moved to stor-layout.h.
      	(use_register_for_decl): Moved to function.h.
      	(variable_size): Moved to rtl.h.
      	(vector_type_mode): Moved to stor-layout.h.
      	* cgraph.h: Corresponding changes.
      	* emit-rtl.h: Corresponding changes.
      	* expr.h: Corresponding changes.
      	* function.h: Corresponding changes.
      	* optabs.h: Corresponding changes.
      	* trans-mem.h: Corresponding changes.
      	Protect against multiple inclusion.
      	* tree-inline.h: Corresponding changes.
      	* tree-iterator.h: Corresponding changes.
      	* tree-dfa.h: Include expr.h.
      	* tree-ssanames.h: Include stringpool.h.
      	* attribs.h: New file.
      	* calls.h: New file.
      	* fold-const.h: New file.
      	* gcc-symtab.h: New file.
      	* print-rtl.h: New file.
      	* print-tree.h: New file.
      	* stmt.h: New file.
      	* stor-layout.h: New file.
      	* strinpool.h: New file.
      	* tree-nested.h: New file
      	* tree-object-size.h: New file.
      	* varasm.h: New file.
      	* Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
      
      	* alias.c: Include varasm.h.
      	Include expr.h.
      	* asan.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* attribs.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* builtins.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	Include tree-object-size.h.
      	* calls.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include attribs.h.
      	* cfgexpand.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	* cgraph.c: Include varasm.h.
      	Include calls.h.
      	Include print-tree.h.
      	* cgraphclones.c: Include stringpool.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* cgraphunit.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* cilk-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	* combine.c: Include stor-layout.h.
      	* config/aarch64/aarch64-builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/aarch64/aarch64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/alpha/alpha.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/arc/arc.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/arm/arm.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/avr/avr-c.c: Include stor-layout.h.
      	* config/avr/avr-log.c: Include print-tree.h.
      	* config/avr/avr.c: Include print-tree.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/bfin/bfin.c: Include varasm.h.
      	Include calls.h.
      	* config/c6x/c6x.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/cr16/cr16.c: Include stor-layout.h.
      	Include calls.h.
      	* config/cris/cris.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stmt.h.
      	* config/darwin.c: Include stringpool.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/epiphany/epiphany.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/fr30/fr30.c: Include stor-layout.h.
      	Include varasm.h.
      	* config/frv/frv.c: Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* config/h8300/h8300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	* config/i386/i386.c: Include stringpool.h.
      	Include attribs.h.
      	Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/i386/winnt-cxx.c: Include stringpool.h.
      	Include attribs.h.
      	* config/i386/winnt.c: Include stringpool.h.
      	Include varasm.h.
      	* config/ia64/ia64-c.c: Include stringpool.h.
      	* config/ia64/ia64.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/iq2000/iq2000.c: Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/lm32/lm32.c: Include calls.h.
      	* config/m32c/m32c.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/m32r/m32r.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/m68k/m68k.c: Include calls.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* config/mcore/mcore.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	Include calls.h.
      	* config/mep/mep.c: Include varasm.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	* config/microblaze/microblaze.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mips/mips.c: Include varasm.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mmix/mmix.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/mn10300/mn10300.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/moxie/moxie.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/msp430/msp430.c: Include stor-layout.h.
      	Include calls.h.
      	* config/nds32/nds32.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pa/pa.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/pdp11/pdp11.c: Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/picochip/picochip.c: Include calls.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* config/rl78/rl78.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/rs6000/rs6000-c.c: Include stor-layout.h.
      	Include stringpool.h.
      	* config/rs6000/rs6000.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include print-tree.h.
      	Include varasm.h.
      	* config/rx/rx.c: Include varasm.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* config/s390/s390.c: Include print-tree.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/score/score.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	* config/sh/sh-c.c: Include stringpool.h.
      	Include attribs.h.h.
      	* config/sh/sh.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/sol2-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/sol2-cxx.c: Include stringpool.h.
      	* config/sol2.c: Include stringpool.h.
      	Include varasm.h.
      	* config/sparc/sparc.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/spu/spu-c.c: Include stringpool.h.
      	* config/spu/spu.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* config/stormy16/stormy16.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilegx/tilegx.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/tilepro/tilepro.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/v850/v850-c.c: Include stringpool.h.
      	Include attribs.h.
      	* config/v850/v850.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include calls.h.
      	* config/vax/vax.c: Include calls.h.
      	Include varasm.h.
      	* config/vms/vms.c: Include stringpool.h.
      	* config/vxworks.c: Include stringpool.h.
      	* config/xtensa/xtensa.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include varasm.h.
      	* convert.c: Include stor-layout.h.
      	* coverage.c: Include stringpool.h.
      	Include stor-layout.h.
      	* dbxout.c: Include varasm.h.
      	Include stor-layout.h.
      	* dojump.c: Include stor-layout.h.
      	* dse.c: Include stor-layout.h.
      	* dwarf2asm.c: Include stringpool.h.
      	Include varasm.h.
      	* dwarf2cfi.c: Include stor-layout.h.
      	* dwarf2out.c: Include rtl.h.
      	Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	Move inclusion of rtl.h earlier in the file.
      	* emit-rtl.c: Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* explow.c: Include stor-layout.h.
      	* expmed.c: Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	Include varasm.h.
      	* final.c: Include varasm.h.
      	* fold-const.c: Include stor-layout.h.
      	Include calls.h.
      	Include tree-iterator.h.
      	* function.c: Include stor-layout.h.
      	Include varasm.h.
      	Include stringpool.h.
      	* genattrtab.c (write_header): Emit includes for varasm.h,
      	stor-layout.h and calls.h.
      	* genautomata.c (main): Likewise.
      	* genemit.c: Likewise.
      	* genopinit.c: Likewise.
      	* genoutput.c (output_prologue): Likewise.
      	* genpeep.c: Likewise.
      	* genpreds.c (write_insn_preds_c): Likewise.
      	* gengtype.c (open_base_files): Add stringpool.h.
      	* gimple-expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* gimple-fold.c: Include stringpool.h.
      	Include expr.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimple-low.c: Include tree-nested.h.
      	Include calls.h.
      	* gimple-pretty-print.c: Include stringpool.h.
      	* gimple-ssa-strength-reduction.c: Include stor-layout.h.
      	Include expr.h.
      	* gimple-walk.c: Include stmt.h.
      	* gimple.c: Include calls.h.
      	Include stmt.h.
      	Include stor-layout.h.
      	* gimplify.c: Include stringpool.h.
      	Include calls.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stmt.h.
      	Include print-tree.h.
      	Include expr.h.
      	* gimplify-me.c: Include stmt.h
      	Include stor-layout.h
      	* internal-fn.c: Include stor-layout.h.
      	* ipa-devirt.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-inline-analysis.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include print-tree.h.
      	* ipa-inline.c: Include trans-mem.h.
      	Include calls.h.
      	* ipa-prop.c: Include expr.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* ipa-pure-const.c: Include print-tree.h.
      	Include calls.h.
      	* ipa-reference.c: Include calls.h.
      	* ipa-split.c: Include stringpool.h.
      	Include expr.h.
      	Include calls.h.
      	* ipa.c: Include calls.h.
      	Include stringpool.h.
      	* langhooks.c: Include stringpool.h.
      	Include attribs.h.
      	* lto-cgraph.c: Include stringpool.h.
      	* lto-streamer-in.c: Include stringpool.h.
      	* lto-streamer-out.c: Include stor-layout.h.
      	Include stringpool.h.
      	* omp-low.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include expr.h.
      	* optabs.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* passes.c: Include varasm.h.
      	* predict.c: Include calls.h.
      	* print-rtl.c: Include print-tree.h.
      	* print-tree.c: Include varasm.h.
      	Include print-rtl.h.
      	Include stor-layout.h.
      	* realmpfr.c: Include stor-layout.h.
      	* reg-stack.c: Include varasm.h.
      	* sdbout.c: Include varasm.h.
      	Include stor-layout.h.
      	* simplify-rtx.c: Include varasm.h.
      	* stmt.c: Include varasm.h.
      	Include stor-layout.h.
      	* stor-layout.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	Include print-tree.h.
      	* symtab.c: Include rtl.h.
      	Include print-tree.h.
      	Include varasm.h.
      	Include function.h.
      	Include emit-rtl.h.
      	* targhooks.c: Include stor-layout.h.
      	Include varasm.h.
      	* toplev.c: Include varasm.h.
      	Include tree-inline.h.
      	* trans-mem.c: Include calls.h.
      	Include function.h.
      	Include rtl.h.
      	Include emit-rtl.h.
      	* tree-affine.c: Include expr.h.
      	* tree-browser.c: Include print-tree.h.
      	* tree-call-cdce.c: Include stor-layout.h.
      	* tree-cfg.c: Include trans-mem.h.
      	Include stor-layout.h.
      	Include print-tree.h.
      	* tree-complex.c: Include stor-layout.h.
      	* tree-data-ref.c: Include expr.h.
      	* tree-dfa.c: Include stor-layout.h.
      	* tree-eh.c: Include expr.h.
      	Include calls.h.
      	* tree-emutls.c: Include stor-layout.h.
      	Include varasm.h.
      	* tree-if-conv.c: Include stor-layout.h.
      	* tree-inline.c: Include stor-layout.h.
      	Include calls.h.
      	* tree-loop-distribution.c: Include stor-layout.h.
      	* tree-nested.c: Include stringpool.h.
      	Include stor-layout.h.
      	* tree-object-size.c: Include tree-object-size.h.
      	* tree-outof-ssa.c: Include stor-layout.h.
      	* tree-parloops.c: Include stor-layout.h.
      	Include tree-nested.h.
      	* tree-pretty-print.c: Include stor-layout.h.
      	Include expr.h.
      	* tree-profile.c: Include varasm.h.
      	Include tree-nested.h.
      	* tree-scalar-evolution.c: Include expr.h.
      	* tree-sra.c: Include stor-layout.h.
      	* tree-ssa-address.c: Include stor-layout.h.
      	* tree-ssa-ccp.c: Include stor-layout.h.
      	* tree-ssa-dce.c: Include calls.h.
      	* tree-ssa-dom.c: Include stor-layout.h.
      	* tree-ssa-forwprop.c: Include stor-layout.h.
      	* tree-ssa-ifcombine.c: Include stor-layout.h.
      	* tree-ssa-loop-ivopts.c: Include stor-layout.h.
      	* tree-ssa-loop-niter.c: Include calls.h.
      	Include expr.h.
      	* tree-ssa-loop-prefetch.c: Include stor-layout.h.
      	* tree-ssa-math-opts.c: Include stor-layout.h.
      	* tree-ssa-operands.c: Include stmt.h.
      	Include print-tree.h.
      	* tree-ssa-phiopt.c: Include stor-layout.h.
      	* tree-ssa-reassoc.c: Include stor-layout.h.
      	* tree-ssa-sccvn.c: Include stor-layout.h.
      	* tree-ssa-sink.c: Include stor-layout.h.
      	* tree-ssa-strlen.c: Include stor-layout.h.
      	* tree-ssa-structalias.c: Include stor-layout.h.
      	Include stmt.h.
      	* tree-ssa-tail-merge.c: Include stor-layout.h.
      	Include trans-mem.h.
      	* tree-ssa-uncprop.c: Include stor-layout.h.
      	* tree-ssa.c: Include stor-layout.h.
      	* tree-ssanames.c: Include stor-layout.h.
      	* tree-streamer-in.c: Include stringpool.h.
      	* tree-streamer-out.c: Include stor-layout.h.
      	* tree-switch-conversion.c: Include varasm.h.
      	Include stor-layout.h.
      	* tree-tailcall.c: Include stor-layout.h.
      	* tree-vect-data-refs.c: Include stor-layout.h.
      	* tree-vect-generic.c: Include stor-layout.h.
      	* tree-vect-loop.c: Include stor-layout.h.
      	* tree-vect-patterns.c: Include stor-layout.h.
      	* tree-vect-slp.c: Include stor-layout.h.
      	* tree-vect-stmts.c: Include stor-layout.h.
      	* tree-vectorizer.c: Include stor-layout.h.
      	* tree-vrp.c: Include stor-layout.h.
      	Include calls.h.
      	* tree.c: Include stor-layout.h.
      	Include calls.h.
      	Include attribs.h.
      	Include varasm.h.
      	* tsan.c: Include expr.h.
      	* ubsan.c: Include stor-layout.h.
      	Include stringpool.h.
      	* value-prof.c: Include tree-nested.h.
      	Include calls.h.
      	* var-tracking.c: Include varasm.h.
      	Include stor-layout.h.
      	* varasm.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include gcc-symtab.h.
      	Include varasm.h.
      	* varpool.c: Include varasm.h.
      	* vmsdbgout.c: Include varasm.h.
      	* xcoffout.c: Include varasm.h.
      
      ada/ChangeLog
      
      	* gcc-interface/decl.c: Include stringpool.h
      	Include stor-layout.h
      	* gcc-interface/misc.c: Include stor-layout.h
      	Include print-tree.h
      	* gcc-interface/trans.c: Include stringpool.h
      	Include stor-layout.h
      	Include stmt.h
      	Include varasm.h
      	* gcc-interface/utils.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      	* gcc-interface/utils2.c: Include stringpool.h
      	Include stor-layout.h
      	Include attribs.h
      	Include varasm.h
      
      c-family/ChangeLog
      
      	* c-common.c: Include fold-const.h.
      	Include stor-layout.h.
      	Include calls.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-cppbuiltin.c: Include stor-layout.h.
      	Include stringpool.h.
      	* c-format.c: Include stringpool.h.
      	* c-lex.c: Include stringpool.h.
      	Include stor-layout.h.
      	* c-pragma.c: Include stringpool.h.
      	Include attribs.h.
      	Include varasm.h.
      	Include gcc-symtab.h.
      	* c-pretty-print.c: Include stor-layout.h.
      	Include attribs.h.
      	* cilk.c: Include stringpool.h.
      	Include calls.h.
      
      c/ChangeLog
      
      	* c-decl.c: Include print-tree.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stringpool.h.
      	* c-lang.c: Include fold-const.h.
      	* c-parser.c: Include stringpool.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include trans-mem.h.
      	* c-typeck.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include varasm.h.
      	Include stmt.h.
      
      cp/ChangeLog
      
      	* call.c: Include stor-layout.h.
      	Include trans-mem.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* cp-gimplify.c: Include stor-layout.h.
      	* cvt.c: Include stor-layout.h.
      	* decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include calls.h.
      	* decl2.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	Include calls.h.
      	* error.c: Include stringpool.h.
      	* except.c: Include stringpool.h.
      	Include trans-mem.h.
      	Include attribs.h.
      	* init.c: Include stringpool.h.
      	Include varasm.h.
      	* lambda.c: Include stringpool.h.
      	* lex.c: Include stringpool.h.
      	* mangle.c: Include stor-layout.h.
      	Include stringpool.h.
      	* method.c: Include stringpool.h.
      	Include varasm.h.
      	* name-lookup.c: Include stringpool.h.
      	Include print-tree.h.
      	Include attribs.h.
      	* optimize.c: Include stringpool.h.
      	* parser.c: Include print-tree.h.
      	Include stringpool.h.
      	Include attribs.h.
      	Include trans-mem.h.
      	* pt.c: Include stringpool.h.
      	Include varasm.h.
      	Include attribs.h.
      	Include stor-layout.h.
      	* ptree.c: Include print-tree.h.
      	* repo.c: Include stringpool.h.
      	* rtti.c: Include stringpool.h.
      	Include stor-layout.h.
      	* semantics.c: Include stmt.h.
      	Include varasm.h.
      	Include stor-layout.h.
      	Include stringpool.h.
      	* tree.c: Include stor-layout.h.
      	Include print-tree.h.
      	Include tree-iterator.h.
      	* typeck.c: Include stor-layout.h.
      	Include varasm.h.
      	* typeck2.c: Include stor-layout.h.
      	Include varasm.h.
      	* vtable-class-hierarchy.c: Include stringpool.h.
      	Include stor-layout.h.
      
      fortran/ChangeLog
      
      	* decl.c: Include stringpool.h.
      	* iresolve.c: Include stringpool.h.
      	* match.c: Include stringpool.h.
      	* module.c: Include stringpool.h.
      	* target-memory.c: Include stor-layout.h.
      	* trans-common.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* trans-const.c: Include stor-layout.h.
      	* trans-decl.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	Include attribs.h.
      	* trans-expr.c: Include stringpool.h.
      	* trans-intrinsic.c: Include stringpool.h.
      	Include tree-nested.h.
      	Include stor-layout.h.
      	* trans-io.c: Include stringpool.h.
      	Include stor-layout.h.
      	* trans-openmp.c: Include stringpool.h.
      	* trans-stmt.c: Include stringpool.h.
      	* trans-types.c: Include stor-layout.h.
      	Include stringpool.h.
      	* trans.c: Include stringpool.h.
      
      go/ChangeLog
      
      	* go-backend.c: Include stor-layout.h.
      	* go-gcc.cc: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* go-lang.c: Include stor-layout.h.
      
      java/ChangeLog
      
      	* builtins.c: Include stor-layout.h.
      	Include stringpool.h.
      	* class.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include varasm.h.
      	* constants.c: Include stringpool.h.
      	Include stor-layout.h.
      	* decl.c: Include stor-layout.h.
      	Include stringpool.h.
      	Include varasm.h.
      	* except.c: Include stringpool.h.
      	Include stor-layout.h.
      	* expr.c: Include stringpool.h.
      	Include stor-layout.h.
      	* jcf-parse.c: Include stringpool.h.
      	* mangle.c: Include stringpool.h.
      	* resource.c: Include stringpool.h.
      	Include stor-layout.h.
      	* typeck.c: Include stor-layout.h.
      	Include stringpool.h.
      	* verify-glue.c: Include stringpool.h.
      
      lto/ChangeLog
      	* lto-lang.c: Include stringpool.h.
      	Include stor-layout.h.
      	* lto-partition.c: Include gcc-symtab.h.
      	* lto.c: Include stor-layout.h.
      
      objc/ChangeLog
      	* objc-act.c: Include stringpool.h.
      	Include stor-layout.h.
      	Include attribs.h.
      	* objc-encoding.c: Include stringpool.h.
      	Include stor-layout.h.
      	* objc-gnu-runtime-abi-01.c: Include stringpool.h.
      	* objc-next-runtime-abi-01.c:
      	Include stringpool.h.
      	* objc-next-runtime-abi-02.c: Include stringpool.h.
      	* objc-runtime-shared-support.c: Include stringpool.h.
      
      testsuite/ChangeLog
      
      	* gcc.dg/plugin/selfassign.c: Include stringpool.h.
      	* gcc.dg/plugin/start_unit_plugin.c: Likewise.
      
      From-SVN: r205023
      Diego Novillo committed
    • bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Add -ldl. · b9a55b13
      config/
      	* bootstrap-ubsan.mk (POSTSTAGE1_LDFLAGS): Add -ldl.
      gcc/c-family/
      	* c-ubsan.c (ubsan_instrument_division): Adjust ubsan_create_data
      	call.
      	(ubsan_instrument_shift): Likewise.
      	(ubsan_instrument_vla): Likewise.
      gcc/
      	* opts.c (common_handle_option): Add -fsanitize=null option.
      	Turn off -fdelete-null-pointer-checks option when doing the
      	NULL pointer checking.
      	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_TYPE_MISMATCH): Add.
      	* tree-pass.h (make_pass_ubsan): Declare.
      	(make_pass_sanopt): Declare.
      	* timevar.def (TV_TREE_UBSAN): New timevar.
      	* passes.def: Add pass_sanopt and pass_ubsan.
      	* ubsan.h (ubsan_null_ckind): New enum.
      	(ubsan_mismatch_data): New struct.
      	(ubsan_expand_null_ifn): Declare.
      	(ubsan_create_data): Adjust declaration.
      	(ubsan_type_descriptor): Likewise.
      	* asan.c: Include "ubsan.h".
      	(pass_data_sanopt): New pass.
      	(execute_sanopt): New function.
      	(gate_sanopt): Likewise.
      	(make_pass_sanopt): Likewise.
      	(class pass_sanopt): New class.
      	* ubsan.c: Include tree-pass.h, gimple-ssa.h, gimple-walk.h,
      	gimple-iterator.h and cfgloop.h. 
      	(PROB_VERY_UNLIKELY): Define.
      	(tree_type_map_hash): New function.
      	(ubsan_type_descriptor): Add new parameter.
      	Improve type name generation.
      	(ubsan_create_data): Add new parameter.  Add pointer data into
      	ubsan structure.
      	(ubsan_expand_null_ifn): New function.
      	(instrument_member_call): Likewise.
      	(instrument_mem_ref): Likewise.
      	(instrument_null): Likewise.
      	(ubsan_pass): Likewise.
      	(gate_ubsan): Likewise.
      	(make_pass_ubsan): Likewise.
      	(ubsan_instrument_unreachable): Adjust ubsan_create_data call.
      	(class pass_ubsan): New class.
      	(pass_data_ubsan): New pass.
      	* flag-types.h (enum sanitize_code): Add SANITIZE_NULL.
      	* internal-fn.c (expand_UBSAN_NULL): New function.
      	* cgraphunit.c (varpool_finalize_decl): Call varpool_assemble_decl
      	even when !flag_toplevel_reorder.
      	* internal-fn.def (UBSAN_NULL): New.
      gcc/testsuite/
      	* c-c++-common/ubsan/null-1.c: New test.
      	* c-c++-common/ubsan/null-2.c: New test.
      	* c-c++-common/ubsan/null-3.c: New test.
      	* c-c++-common/ubsan/null-4.c: New test.
      	* c-c++-common/ubsan/null-5.c: New test.
      	* c-c++-common/ubsan/null-6.c: New test.
      	* c-c++-common/ubsan/null-7.c: New test.
      	* c-c++-common/ubsan/null-8.c: New test.
      	* c-c++-common/ubsan/null-9.c: New test.
      	* c-c++-common/ubsan/null-10.c: New test.
      	* c-c++-common/ubsan/null-11.c: New test.
      	* gcc.dg/ubsan/c99-shift-2.c: Adjust dg-output.
      	* c-c++-common/ubsan/shift-1.c: Likewise.
      	* c-c++-common/ubsan/div-by-zero-3.c: Likewise.
      
      From-SVN: r205021
      Marek Polacek committed
    • c11-complex-1.c: Use dg-add-options ieee. · a186c902
      	* gcc.dg/c11-complex-1.c: Use dg-add-options ieee.
      
      From-SVN: r205020
      Uros Bizjak committed
    • cgraph.c (cgraph_create_indirect_edge): Use get_polymorphic_call_info. · 68377e53
      
      	* cgraph.c (cgraph_create_indirect_edge): Use get_polymorphic_call_info.
      	* cgraph.h (cgraph_indirect_call_info): Add outer_type, maybe_in_construction
      	and maybe_derived_type.
      	* ipa-utils.h (ipa_polymorphic_call_context): New structure.
      	(ipa_dummy_polymorphic_call_context): New global var.
      	(possible_polymorphic_call_targets): Add context paramter.
      	(dump_possible_polymorphic_call_targets): Likewise; update
      	wrappers.
      	(possible_polymorphic_call_target_p): Likewise.
      	(get_polymorphic_call_info): New function.
      	* ipa-devirt.c (ipa_dummy_polymorphic_call_context): New function.
      	(add_type_duplicate): Remove forgotten debug output.
      	(method_class_type): Add sanity check.
      	(maybe_record_node): Add FINALP parameter.
      	(record_binfo): Add OUTER_TYPE and OFFSET; walk the inner
      	by info by get_binfo_at_offset.
      	(possible_polymorphic_call_targets_1): Add OUTER_TYPE/OFFSET parameters;
      	pass them to record-binfo.
      	(polymorphic_call_target_d): Add context and FINAL.
      	(polymorphic_call_target_hasher::hash): Hash context.
      	(polymorphic_call_target_hasher::equal): Compare context.
      	(free_polymorphic_call_targets_hash):
      	(get_class_context): New function.
      	(contains_type_p): New function.
      	(get_polymorphic_call_info): New function.
      	(walk_bases): New function.
      	(possible_polymorphic_call_targets): Add context parameter; honnor it.
      	(dump_possible_polymorphic_call_targets): Dump context.
      	(possible_polymorphic_call_target_p): Add context.
      	(update_type_inheritance_graph): Update comment.s
      	(ipa_set_jf_known_type): Assert that compoentn type is known.
      	(ipa_note_param_call): Do not tamper with offsets.
      	(ipa_analyze_indirect_call_uses): When offset is being changed; clear
      	outer type.
      	(update_indirect_edges_after_inlining): Likewise.
      	(ipa_write_indirect_edge_info): Stream new fields.
      	(ipa_read_indirect_edge_info): Stream in new fields.
      
      	* ipa/devirt9.C: Verify that the optimization happens already before.
      	whole-program.
      
      From-SVN: r205019
      Jan Hubicka committed
    • tree-pretty-print.c (dump_generic_node): Print class type of OBJ_TYPE_REF. · d345bb30
      
      
      	* tree-pretty-print.c (dump_generic_node): Print class type of
      	OBJ_TYPE_REF.
      
      From-SVN: r205017
      Jan Hubicka committed
    • arm.opt (-marm-pic-data-is-text-relative): New option. · 32d6e6c0
      2013-11-19  Joey Ye  <joey.ye@arm.com>
      
              * config/arm/arm.opt (-marm-pic-data-is-text-relative): New option.
              * doc/invoke.texi (-marm-pic-data-is-text-relative): Documentation
              for new option.
              * config/arm/arm.c (arm_option_override): By default disable
              -marm-pic-data-is-text-relative.
              (legitimize_pic_address): Use arm_pic_data_is_text_relative.
              (arm_assemble_integer): Likewise.
              * config/arm/arm.h (TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE): 
              New macro to initialize -marm-pic-data-is-text-relative.
      
      From-SVN: r205016
      Joey Ye committed
    • tree-ssa-loop-ivopts.c (enum ainc_type): New. · cd047059
      	* tree-ssa-loop-ivopts.c (enum ainc_type): New.
      	(address_cost_data): New field.
      	(get_address_cost): Compute auto-increment rtx cost in ainc_costs.
      	Use ainc_costs for auto-increment rtx patterns.
      	Cleanup TWS.
      
      From-SVN: r205015
      Bin Cheng committed
    • [AArch64] Remove v8type attribute. · c1dfcec7
      gcc/
      	* config/aarch64/aarch64.md: Remove v8type from all insns.
      
      From-SVN: r205014
      James Greenhalgh committed
    • re PR tree-optimization/57517 (internal compiler error: in… · 7906dbe4
      re PR tree-optimization/57517 (internal compiler error: in eliminate_temp_copies, at tree-predcom.c:1913)
      
      2013-11-19  Richard Biener  <rguenther@suse.de>
      
      	PR tree-optimization/57517
      	* tree-predcom.c (combinable_refs_p): Verify the combination
      	is always executed when the refs are.
      
      	* gfortran.fortran-torture/compile/pr57517.f90: New testcase.
      	* gcc.dg/torture/pr57517.c: Likewise.
      
      From-SVN: r205010
      Richard Biener committed
    • * atomic.c: Include sys/types.h. · 64856e1e
      From-SVN: r205008
      Jakub Jelinek committed
    • tree-ssa-threadupdate.c: Include ssa-iterators.h · b06cbaac
      	* tree-ssa-threadupdate.c: Include ssa-iterators.h
      	(copy_phi_arg_into_existing_phi): New function.
      	(any_remaining_duplicated_blocks): Likewise.
      	(ssa_fix_duplicate_block_edges): Handle multiple duplicated
      	blocks on a jump threading path.
      
      From-SVN: r205004
      Jeff Law committed
    • tree-ssa-threadupdate.c (thread_through_loop_header): Do not thread through a… · 01ccc98e
      tree-ssa-threadupdate.c (thread_through_loop_header): Do not thread through a joiner which has the latch edge.
      
      	* tree-ssa-threadupdate.c (thread_through_loop_header):  Do not
      	thread through a joiner which has the latch edge.
      
      From-SVN: r205003
      Jeff Law committed
    • reflect: Handle calls to functions that take or return empty structs · 41674b9f
      Fixes issue 6761
      
      This simple change seems to work fine, slightly to my surprise.
      
      This includes the tests I submitted to the main Go repository at
      https://codereview.appspot.com/26570046
      
      From-SVN: r205001
      Ian Lance Taylor committed