1. 01 Jan, 2020 1 commit
  2. 07 Oct, 2019 1 commit
    • Make gsi_next_nonvirtual_phi do what one expects · 880dcdae
      gcc/
      
              * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to
              match that of other gsi_next_* functions.  Adjust the comment.
              (gsi_start_nonvirtual_phis): New function.
              * ipa-icf.c (sem_function::compare_phi_node): Update uses of
              gsi_next_nonvirtual_phi accordingly.  (No functional change.)
      
      From-SVN: r276658
      Vladislav Ivanishin committed
  3. 01 Jan, 2019 1 commit
  4. 30 Jun, 2018 1 commit
    • [11/n] PR85694: Apply pattern matching to pattern definition statements · 41949de9
      Although the first pattern match wins in the sense that no later
      function can match the *old* gimple statement, it still seems worth
      letting them match the *new* gimple statements, just like we would if
      the original IR had included that sequence from the outset.
      
      This is mostly true after the later patch for PR85694, where e.g. we
      could recognise:
      
         signed char a;
         int ap = (int) a;
         int res = ap * 3;
      
      as the pattern:
      
         short ap' = (short) a;
         short res = ap' * 3;     // S1: definition statement
         int res = (int) res;     // S2: pattern statement
      
      and then apply the mult pattern to "ap' * 3".  The patch needs to
      come first (without its own test cases) so that the main over-widening
      patch doesn't regress anything.
      
      2018-06-30  Richard Sandiford  <richard.sandiford@arm.com>
      
      gcc/
      	* gimple-iterator.c (gsi_for_stmt): Add a new overload that takes
      	the containing gimple_seq *.
      	* gimple-iterator.h (gsi_for_stmt): Declare it.
      	* tree-vect-patterns.c (vect_recog_dot_prod_pattern)
      	(vect_recog_sad_pattern, vect_recog_widen_sum_pattern)
      	(vect_recog_widen_shift_pattern, vect_recog_rotate_pattern)
      	(vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern)
      	(vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P
      	checks.
      	(vect_init_pattern_stmt, vect_set_pattern_stmt): New functions,
      	split out from...
      	(vect_mark_pattern_stmts): ...here.  Handle cases in which the
      	statement being replaced is part of an existing pattern
      	definition sequence, inserting the new pattern statements before
      	the original one.
      	(vect_pattern_recog_1): Don't return a bool.  If the statement
      	is already part of a pattern, instead apply pattern matching
      	to the pattern definition statements.  Don't clear the
      	STMT_VINFO_RELATED_STMT if is_pattern_stmt_p.
      	(vect_pattern_recog): Don't break after the first match;
      	continue processing the pattern definition statements instead.
      	Don't bail out for STMT_VINFO_IN_PATTERN_P here.
      
      From-SVN: r262275
      Richard Sandiford committed
  5. 03 Jan, 2018 1 commit
  6. 20 Dec, 2017 1 commit
    • [SFN] debug markers before labels no more · 67a8d719
      Make sure that gimple and RTL IRs don't have debug markers before
      labels.  When we build the CFG, we move labels before any markers
      appearing before them.  Then, make sure we don't mistakenly
      reintroduce them.
      
      This reverts some of the complexity that had been brought about by the
      initial SFN patches.
      
      for  gcc/ChangeLog
      
      	PR bootstrap/83396
      	* cfgexpand.c (label_rtx_for_bb): Revert SFN changes that
      	allowed debug stmts before labels.
      	(expand_gimple_basic_block): Likewise.
      	* gimple-iterator.c (gimple_find_edge_insert_loc): Likewise.
      	* gimple-iterator.h (gsi_after_labels): Likewise.
      	* tree-cfgcleanup (remove_forwarder_block): Likewise, but
      	rename reused variable, and simplify using gsi_move_before.
      	* tree-ssa-tail-merge.c (find_duplicate): Likewise.
      	* tree-cfg.c (make_edges, cleanup_dead_labels): Likewise.
      	(gimple_can_merge_blocks_p, verify_gimple_in_cfg): Likewise.
      	(gimple_verify_flow_info, gimple_block_label): Likewise.
      	(make_blocks): Move debug markers after adjacent labels.
      	* cfgrtl.c (skip_insns_after_block): Revert SFN changes that
      	allowed debug insns outside blocks.
      	* df-scan.c (df_insn_delete): Likewise.
      	* lra-constraints.c (update_ebb_live_info): Likewise.
      	* var-tracking.c (get_first_insn, vt_emit_notes): Likewise.
      	(vt_initialize, delete_vta_debug_insns): Likewise.
      	(reemit_marker_as_note): Drop BB parm.  Adjust callers.
      
      From-SVN: r255895
      Alexandre Oliva committed
  7. 12 Dec, 2017 1 commit
    • [SFN] not-quite-boilerplate changes in preparation to introduce nonbind markers · 65f4b875
      This patch adjusts numerous parts of the compiler that would
      malfunction should they find debug markers at points where they may be
      introduced.  The changes purport to allow the compiler to pass
      bootstrap-debug-lean (-fcompare-debug in stage3) at various
      optimization levels, as well as bootstrap-debug-lib (-fcompare-debug
      for target libraries), even after the compiler is changed so that
      debug markers are introduced in code streams at spots where earlier
      debug stmts, insns and notes wouldn't normally appear.
      
      This patch depends on an earlier SFN boilerplate patch, and on another
      SFN patch that introduces new RTL insn-walking functions.
      
      for  gcc/ChangeLog
      
      	* cfgcleanup.c (delete_unreachable_blocks): Use alternate
      	block removal order if MAY_HAVE_DEBUG_BIND_INSNS.
      	* cfgexpand.c (label_rtx_for_bb): Skip debug insns.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Skip debug insns.
      	(rtl_tidy_fallthru_edge): Likewise.
      	(rtl_verify_fallthru): Likewise.
      	(rtl_verify_bb_layout): Likewise.
      	(skip_insns_after_block): Likewise.
      	(duplicate_insn_chain): Use DEBUG_BIND_INSN_P.
      	* dwarf2out.c: Include print-rtl.h.
      	(dwarf2out_next_real_insn): New.
      	(dwarf2out_var_location): Call it.  Disregard begin stmt markers.
      	Dump debug binds in asm comments.
      	* gimple-iterator.c (gimple_find_edge_insert_loc): Skip debug stmts.
      	* gimple-iterator.h (gsi_start_bb_nondebug): Remove; adjust
      	callers to use gsi_start_nondebug_bb instead.
      	(gsi_after_labels): Skip gimple debug stmts.
      	(gsi_start_nondebug): New.
      	* gimple-loop-interchange.c (find_deps_in_bb_for_stmt): Adjust.
      	(proper_loop_form_for_interchange): Adjust.
      	* gimple-low.c (gimple_seq_may_fallthru): Take last nondebug stmt.
      	* gimple.h (gimple_seq_last_nondebug_stmt): New.
      	* gimplify.c (last_stmt_in_scope): Skip debug stmts.
      	(collect_fallthrough_labels): Likewise.
      	(should_warn_for_implicit_fallthrough): Likewise.
      	(warn_implicit_fallthrough_r): Likewise.
      	(expand_FALLTHROUGH_r): Likewise.
      	* graphite-isl-ast-to-gimple.c (gsi_insert_earliest): Adjust.
      	(graphite_copy_stmts_from_block): Skip nonbind markers.
      	* haifa-sched.c (sched_extend_bb): Skip debug insns.
      	* ipa-icf-gimple.c (func_checker::compare_bb): Adjust.
      	* jump.c (clean_barriers): Skip debug insns.
      	* omp-expand.c (expand_parallel_call): Skip debug insns.
      	(expand_task_call): Likewise.
      	(remove_exit_barrier): Likewise.
      	(expand_omp_taskreg): Likewise.
      	(expand_omp_for_init_counts): Likewise.
      	(expand_omp_for_generic): Likewise.
      	(expand_omp_for_static_nochunk): Likewise.
      	(expand_omp_for_static_chunk): Likewise.
      	(expand_omp_simd): Likewise.
      	(expand_omp_taskloop_for_outer): Likewise.
      	(expand_omp_taskloop_for_inner): Likewise.
      	(expand_oacc_for): Likewise.
      	(expand_omp_sections): Likewise.
      	(expand_omp_single): Likewise.
      	(expand_omp_synch): Likewise.
      	(expand_omp_atomic_load): Likewise.
      	(expand_omp_atomic_store): Likewise.
      	(expand_omp_atomic_fetch_op): Likewise.
      	(expand_omp_atomic_pipeline): Likewise.
      	(expand_omp_atomic_mutex): Likewise.
      	(expand_omp_target): Likewise.
      	(grid_expand_omp_for_loop): Likewise.
      	(grid_expand_target_grid_body): Likewise.
      	(build_omp_regions_1): Likewise.
      	* omp-low.c (check_combined_parallel): Skip debug stmts.
      	* postreload.c (fixup_debug_insns): Skip nonbind debug insns.
      	* regcprop.c (find_oldest_value_reg): Ensure REGNO is not a pseudo.
      	* sese.c (sese_trivially_empty_bb_p): Call is_gimple_debug in
      	test.
      	* tree-cfg.c (make_blobs_1): Skip debug stmts.
      	(make_edges): Likewise.
      	(cleanup_dead_labels): Likewise.
      	(gimple_can_merge_blocks_p): Likewise.
      	(stmt_starts_bb_p): Likewise.
      	(gimple_block_label): Likewise.
      	(gimple_redirect_edge_and_branch): Likewise.
      	* tree-cfgcleanup.c (remove_forwarder_block): Rearrange skipping
      	of debug stmts.
      	(execute_cleanup_cfg_post_optimizing): Dump enumerated decls with
      	TDF_SLIM.
      	* tree-pretty-print (print_declaration): Omit initializer in slim
      	dumps.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark begin stmt
      	markers.
      	(eliminate_unnecessary_stmts): Stabilize block removal order.
      	* tree-ssa-tail-merge.c (find_duplicate): Skip debug stmts.
      	* var-tracking.c (get_first_insn): New.
      	(vt_emit_notes): Call it.
      	(vt_initialize): Walk any insns before the first BB.
      	(delete_debug_insns): Likewise.
      
      From-SVN: r255566
      Alexandre Oliva committed
  8. 05 Jan, 2017 1 commit
  9. 01 Jan, 2017 1 commit
  10. 04 Jan, 2016 1 commit
  11. 20 Sep, 2015 1 commit
    • switch from gimple to gimple* · 355fe088
      This renames the gimple_statement_base struct to gimple removes the
      typedef of gimple_statement_base * to gimple, and then adjusts all of
      the places that use the type.
      
      gcc/ChangeLog:
      
      2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* coretypes.h (gimple): Change typedef to be a forward
      	declaration.
      	* gimple.h (gimple_statement_base): rename to gimple.
      	* (all functions and types using gimple): Adjust.
      	* *.[ch]: Likewise.
      
      gcc/cp/ChangeLog:
      
      2015-09-19  Trevor Saunders  <tbsaunde@tbsaunde.org>
      
      	* cp-gimplify.c (gimplify_must_not_throw_expr): Adjust.
      
      From-SVN: r227941
      Trevor Saunders committed
  12. 09 Jun, 2015 1 commit
  13. 08 Jun, 2015 1 commit
    • Fix try_transform_to_exit_first_loop_alt · 1b7f61eb
      2015-06-08  Tom de Vries  <tom@codesourcery.com>
      
      	PR tree-optimization/66442
      	* gimple-iterator.h (gimple_seq_nondebug_singleton_p): Add function.
      	* tree-parloops.c (try_transform_to_exit_first_loop_alt): Return false
      	if the loop latch is not a singleton.  Use
      	gimple_seq_nondebug_singleton_p instead of gimple_seq_singleton_p.
      
      From-SVN: r224218
      Tom de Vries committed
  14. 17 Apr, 2015 1 commit
    • Postpone expanding va_arg until pass_stdarg · f8e89441
      2015-04-17  Tom de Vries  <tom@codesourcery.com>
      	    Michael Matz  <matz@suse.de>
      
      	* gimple-iterator.c (update_modified_stmts): Remove static.
      	* gimple-iterator.h (update_modified_stmts): Declare.
      	* gimplify.c (gimplify_modify_expr): Handle IFN_VA_ARG.
      	(gimplify_va_arg_internal): New function.
      	(gimplify_va_arg_expr): Use IFN_VA_ARG.
      	* gimplify.h (gimplify_va_arg_internal): Declare.
      	* internal-fn.c (expand_VA_ARG): New unreachable function.
      	* internal-fn.def (VA_ARG): New DEF_INTERNAL_FN.
      	* tree-stdarg.c (gimple_call_ifn_va_arg_p, expand_ifn_va_arg_1)
      	(expand_ifn_va_arg): New function.
      	(pass_data_stdarg): Add PROP_gimple_lva to properties_provided field.
      	(pass_stdarg::execute): Call expand_ifn_va_arg.
      	(pass_data_lower_vaarg): New pass_data.
      	(pass_lower_vaarg): New gimple_opt_pass.
      	(pass_lower_vaarg::gate, pass_lower_vaarg::execute)
      	(make_pass_lower_vaarg): New function.
      	* cfgexpand.c (pass_data_expand): Add PROP_gimple_lva to
      	properties_required field.
      	* passes.def (all_passes): Add pass_lower_vaarg.
      	* tree-pass.h (PROP_gimple_lva): Add define.
      	(make_pass_lower_vaarg): Declare.
      
      	* gcc.dg/tree-ssa/stdarg-2.c: Change f15 scan-tree-dump for target
      	x86_64-*-*.
      
      Co-Authored-By: Michael Matz <matz@suse.de>
      
      From-SVN: r222173
      Tom de Vries committed
  15. 27 Mar, 2015 1 commit
  16. 05 Jan, 2015 1 commit
  17. 10 Dec, 2014 1 commit
  18. 19 Nov, 2014 1 commit
    • Merger of git branch "gimple-classes-v2-option-3" · 538dd0b7
      gcc/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      
      	* ChangeLog.gimple-classes: New.
      
      	* coretypes.h (struct gcond): Add forward decl.
      	(struct gdebug): Likewise.
      	(struct ggoto): Likewise.
      	(struct glabel): Likewise.
      	(struct gswitch): Likewise.
      	(struct gassign): Likewise.
      	(struct gasm): Likewise.
      	(struct gcall): Likewise.
      	(struct gtransaction): Likewise.
      	(struct greturn): Likewise.
      	(struct gbind): Likewise.
      	(struct gcatch): Likewise.
      	(struct geh_filter): Likewise.
      	(struct geh_mnt): Likewise.
      	(struct geh_else): Likewise.
      	(struct gresx): Likewise.
      	(struct geh_dispatch): Likewise.
      	(struct gphi): Likewise.
      	(struct gtry): Likewise.
      	(struct gomp_atomic_load): Likewise.
      	(struct gomp_atomic_store): Likewise.
      	(struct gomp_continue): Likewise.
      	(struct gomp_critical): Likewise.
      	(struct gomp_for): Likewise.
      	(struct gomp_parallel): Likewise.
      	(struct gomp_task): Likewise.
      	(struct gomp_sections): Likewise.
      	(struct gomp_single): Likewise.
      	(struct gomp_target): Likewise.
      	(struct gomp_teams): Likewise.
      
      	* doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
      	for renaming of gimple subclasses.
      
      	* gdbhooks.py: Update.
      
      	* gimple-iterator.c (gsi_for_phi): New.
      	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
      	to gphi_iterator.
      	* gimple-iterator.h (struct gphi_iterator): New subclass of
      	gimple_stmt_iterator.
      	(gsi_for_phi): New prototype.
      	(gsi_start_phis): Strengthen return type from gimple_stmt_iterator
      	to gphi_iterator.
      	(gsi_next_nonvirtual_phi): Strengthen param from
      	gimple_stmt_iterator * to gphi_iterator *, and local "phi" from
      	gimple to gphi *.
      
      	* gsstruct.def: Update for renamings of classes.
      
      	* gimple.c (gimple_build_return): Strengthen return type from
      	gimple to greturn *.
      	(gimple_call_reset_alias_info): Strengthen param to gcall *.
      	(gimple_build_call_1): Strengthen return type from gimple to
      	gcall *.
      	(gimple_build_call_vec): Likewise.
      	(gimple_build_call): Likewise.
      	(gimple_build_call_valist): Likewise.
      	(gimple_build_call_internal_1): Likewise.
      	(gimple_build_call_internal): Likewise.
      	(gimple_build_call_internal_vec): Likewise.
      	(gimple_build_call_from_tree): Likewise.
      	(gimple_build_assign_stat): Strengthen return type from gimple to
      	gassign *.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_cond): Strengthen return type from gimple to
      	gcond *.
      	(gimple_build_cond_from_tree): Likewise.
      	(gimple_cond_set_condition_from_tree): Require a gcond *.
      	(gimple_build_label): Strengthen return type from gimple to
      	glabel *.
      	(gimple_build_goto): Strengthen return type from gimple to
      	ggoto *.
      	(gimple_build_bind): Strengthen return type from gimple to
      	gbind *.
      	(gimple_build_asm_1): Strengthen return type from gimple to
      	gasm *.
      	(gimple_build_asm_vec): Likewise.
      	(gimple_build_catch): Strengthen return type from gimple to
      	gcatch *.
      	(gimple_build_eh_filter): Strengthen return type from gimple to
      	geh_filter *.
      	(gimple_build_eh_must_not_throw): Strengthen return type from
      	gimple to geh_mnt *.
      	(gimple_build_eh_else): Strengthen return type from gimple to
      	geh_else *.
      	(gimple_build_try): Update for renaming of gimple_statement_try to
      	gtry.
      	(gimple_build_resx): Strengthen return type from gimple to
      	gresx *.
      	(gimple_build_switch_nlabels): Strengthen return type from gimple
      	to gswitch *.
      	(gimple_build_switch): Likewise.
      	(gimple_build_eh_dispatch): Strengthen return type from gimple to
      	geh_dispatch *.
      	(gimple_build_debug_bind_stat): Strengthen return type from gimple
      	to gdebug *.
      	(gimple_build_debug_source_bind_stat): Strengthen return type from
      	gimple to gdebug *.
      	(gimple_build_omp_critical): Strengthen return type from gimple to
      	gomp_critical *.
      	(gimple_build_omp_for): Strengthen return type from gimple to
      	gomp_for *.
      	(gimple_build_omp_parallel): Strengthen return type from gimple to
      	gomp_parallel *.
      	(gimple_build_omp_task): Strengthen return type from gimple to
      	gomp_task *.
      	(gimple_build_omp_continue): Strengthen return type from gimple to
      	gomp_continue *.
      	(gimple_build_omp_sections): Strengthen return type from gimple to
      	gomp_sections *.
      	(gimple_build_omp_single): Strengthen return type from gimple to
      	gomp_single *.
      	(gimple_build_omp_target): Strengthen return type from gimple to
      	gomp_target *.
      	(gimple_build_omp_teams): Strengthen return type from gimple to
      	gomp_teams *.
      	(gimple_build_omp_atomic_load): Strengthen return type from gimple
      	to gomp_atomic_load *.
      	(gimple_build_omp_atomic_store): Strengthen return type from gimple
      	to gomp_atomic_store *.
      	(gimple_build_transaction): Strengthen return type from gimple
      	to gtransaction *.
      	(empty_stmt_p): Replace check for GIMPLE_BIND with a dyn_cast.
      	(gimple_call_fnspec): Require a const gcall *.
      	(gimple_call_arg_flags): Likewise.
      	(gimple_call_return_flags): Likewise.
      	(gimple_set_bb): Add a checked cast.
      	(gimple_copy): Within the cases, add locals of the appropriate
      	subclass and use in place of "stmt" and "copy" for typesafety.
      	(gimple_has_side_effects): Add a checked cast.
      	(gimple_could_trap_p_1): Likewise.
      	(gimple_call_copy_skip_args): Require a gcall *, and return one.
      	(gimple_asm_clobbers_memory_p): Require a const gasm *.
      	(infer_nonnull_range): Replace a check for GIMPLE_RETURN with a
      	dyn_cast, introducing local "return_stmt" and using ti in place
      	of "stmt".
      
      	* gimple.h (gimple_vec): Eliminate this typedef.
      	(struct gimple_statement_call): Rename to...
      	(struct gcall): ...this.
      	(struct gimple_statement_bind): Rename to...
      	(struct gbind): ...this.
      	(struct gimple_statement_catch): Rename to...
      	(struct gcatch): ...this.
      	(struct gimple_statement_eh_filter): Rename to...
      	(struct geh_filter): ...this.
      	(struct gimple_statement_eh_else): Rename to...
      	(struct geh_else): ...this.
      	(struct gimple_statement_eh_mnt): Rename to...
      	(struct geh_mnt): ...this.
      	(struct gimple_statement_phi): Rename to...
      	(struct gphi): ...this.
      	(struct gimple_statement_resx): Rename to...
      	(struct gresx): ...this.
      	(struct gimple_statement_eh_dispatch): Rename to...
      	(struct geh_dispatch): ...this.
      	(struct gimple_statement_try): Rename to...
      	(struct gtry): ...this.
      	(struct gimple_statement_asm): Rename to...
      	(struct gasm): ...this.
      	(struct gimple_statement_omp_critical): Rename to...
      	(struct gomp_critical): ...this.
      	(struct gimple_statement_omp_for): Rename to...
      	(struct gomp_for): ...this.
      	(struct gimple_statement_omp_parallel): Rename to...
      	(struct gomp_parallel): ...this.
      	(struct gimple_statement_omp_target): Rename to...
      	(struct gomp_target): ...this.
      	(struct gimple_statement_omp_task): Rename to...
      	(struct gomp_task): ...this.
      	(struct gimple_statement_omp_sections): Rename to...
      	(struct gomp_sections): ...this.
      	(struct gimple_statement_omp_continue): Rename to...
      	(struct gomp_continue): ...this.
      	(struct gimple_statement_omp_single): Rename to...
      	(struct gomp_single): ...this.
      	(struct gimple_statement_omp_teams): Rename to...
      	(struct gomp_teams): ...this.
      	(struct gimple_statement_omp_atomic_load): Rename to...
      	(struct gomp_atomic_load): ...this.
      	(struct gimple_statement_omp_atomic_store :): Rename to...
      	(struct gomp_atomic_store :): ...this.
      	(struct gimple_statement_transaction): Rename to...
      	(struct gtransaction): ...this.
      	(struct gcond): New subclass.
      	(struct gdebug): New subclass.
      	(struct ggoto): New subclass.
      	(struct glabel): New subclass.
      	(struct gswitch): New subclass.
      	(struct gassign): New subclass.
      	(struct greturn): New subclass.
      	(is_a_helper <gimple_statement_asm *>::test): Rename to...
      	(is_a_helper <gasm *>::test): ...this.
      	(is_a_helper <gimple_statement_bind *>::test): Rename to...
      	(is_a_helper <gbind *>::test): ...this.
      	(is_a_helper <gassign *>::test): New.
      	(is_a_helper <gimple_statement_call *>::test): Rename to...
      	(is_a_helper <gcall *>::test): ...this.
      	(is_a_helper <gimple_statement_catch *>::test): Rename to...
      	(is_a_helper <gcatch *>::test): ...this.
      	(is_a_helper <gimple_statement_resx *>::test): Rename to...
      	(is_a_helper <gresx *>::test): ...this.
      	(is_a_helper <gcond *>::test): New.
      	(is_a_helper <gdebug *>::test): New.
      	(is_a_helper <ggoto *>::test): New.
      	(is_a_helper <glabel *>::test): New.
      	(is_a_helper <gimple_statement_eh_dispatch *>::test): Rename to...
      	(is_a_helper <geh_dispatch *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_else *>::test): Rename to...
      	(is_a_helper <geh_else *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_filter *>::test): Rename to...
      	(is_a_helper <geh_filter *>::test): ...this.
      	(is_a_helper <gimple_statement_eh_mnt *>::test): Rename to...
      	(is_a_helper <geh_mnt *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_load *>::test): Rename to...
      	(is_a_helper <gomp_atomic_load *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_atomic_store *>::test): Rename to...
      	(is_a_helper <gomp_atomic_store *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_continue *>::test): Rename to...
      	(is_a_helper <gomp_continue *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_critical *>::test): Rename to...
      	(is_a_helper <gomp_critical *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_for *>::test): Rename to...
      	(is_a_helper <gomp_for *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_parallel *>::test): Rename to...
      	(is_a_helper <gomp_parallel *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_target *>::test): Rename to...
      	(is_a_helper <gomp_target *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_sections *>::test): Rename to...
      	(is_a_helper <gomp_sections *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_single *>::test): Rename to...
      	(is_a_helper <gomp_single *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_teams *>::test): Rename to...
      	(is_a_helper <gomp_teams *>::test): ...this.
      	(is_a_helper <gimple_statement_omp_task *>::test): Rename to...
      	(is_a_helper <gomp_task *>::test): ...this.
      	(is_a_helper <gimple_statement_phi *>::test): Rename to...
      	(is_a_helper <gphi *>::test): ...this.
      	(is_a_helper <gimple_statement_transaction *>::test): Rename to...
      	(is_a_helper <gtransaction *>::test): ...this.
      	(is_a_helper <greturn *>::test): New.
      	(is_a_helper <gswitch *>::test): New.
      	(is_a_helper <gimple_statement_try *>::test): Rename to...
      	(is_a_helper <gtry *>::test): ...this.
      	(is_a_helper <const gimple_statement_asm *>::test): Rename to...
      	(is_a_helper <const gasm *>::test): ...this.
      	(is_a_helper <const gimple_statement_bind *>::test): Rename to...
      	(is_a_helper <const gbind *>::test): ...this.
      	(is_a_helper <const gimple_statement_call *>::test): Rename to...
      	(is_a_helper <const gcall *>::test): ...this.
      	(is_a_helper <const gimple_statement_catch *>::test): Rename to...
      	(is_a_helper <const gcatch *>::test): ...this.
      	(is_a_helper <const gimple_statement_resx *>::test): Rename to...
      	(is_a_helper <const gresx *>::test): ...this.
      	(is_a_helper <const gimple_statement_eh_dispatch *>::test): Rename to...
      	(is_a_helper <const geh_dispatch *>::test): ...this.
      	(is_a_helper <const gimple_statement_eh_filter *>::test): Rename to...
      	(is_a_helper <const geh_filter *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_atomic_load *>::test):
      	Rename to...
      	(is_a_helper <const gomp_atomic_load *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_atomic_store *>::test):
      	Rename to...
      	(is_a_helper <const gomp_atomic_store *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_continue *>::test):
      	Rename to...
      	(is_a_helper <const gomp_continue *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_critical *>::test):
      	Rename to...
      	(is_a_helper <const gomp_critical *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_for *>::test): Rename to...
      	(is_a_helper <const gomp_for *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_parallel *>::test):
      	Rename to...
      	(is_a_helper <const gomp_parallel *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_target *>::test): Rename to...
      	(is_a_helper <const gomp_target *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_sections *>::test):
      	Rename to...
      	(is_a_helper <const gomp_sections *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_single *>::test): Rename to...
      	(is_a_helper <const gomp_single *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_teams *>::test): Rename to...
      	(is_a_helper <const gomp_teams *>::test): ...this.
      	(is_a_helper <const gimple_statement_omp_task *>::test): Rename to...
      	(is_a_helper <const gomp_task *>::test): ...this.
      	(is_a_helper <const gimple_statement_phi *>::test): Rename to...
      	(is_a_helper <const gphi *>::test): ...this.
      	(is_a_helper <const gimple_statement_transaction *>::test): Rename to...
      	(is_a_helper <const gtransaction *>::test): ...this.
      	(gimple_build_return): Strengthen return type to greturn *.
      	(gimple_call_reset_alias_info): Require a gcall *.
      	(gimple_build_call_vec): Return a gcall *.
      	(gimple_build_call): Likewise.
      	(gimple_build_call_valist): Likewise.
      	(gimple_build_call_internal): Likewise.
      	(gimple_build_call_internal_vec): Likewise.
      	(gimple_build_call_from_tree): Likewise.
      	(gimple_build_assign_stat): Return a gassign *.
      	(gimple_build_assign_with_ops): Likewise.
      	(gimple_build_cond): Return a gcond *.
      	(gimple_build_cond_from_tree): Likewise.
      	(gimple_cond_set_condition_from_tree): Require a gcond *.
      	(gimple_build_label): Return a glabel *.
      	(gimple_build_goto): Return a ggoto *.
      	(gimple_build_bind): Return a gbind *.
      	(gimple_build_asm_vec): Return a gasm *.
      	(gimple_build_catch): Return a gcatch *.
      	(gimple_build_eh_filter): Return a geh_filter *.
      	(gimple_build_eh_must_not_throw): Return a geh_mnt *.
      	(gimple_build_eh_else): Return a geh_else *.
      	(gimple_build_try): Return a gtry *.
      	(gimple_build_resx): Return a gresx *.
      	(gimple_build_switch_nlabels): Return a gswitch *.
      	(gimple_build_switch): Return a gswitch *.
      	(gimple_build_eh_dispatch): Return a geh_dispatch *.
      	(gimple_build_debug_bind_stat): Return a gdebug *.
      	(gimple_build_debug_source_bind_stat): Return a gdebug *.
      	(gimple_build_omp_critical): Return a gomp_critical *.
      	(gimple_build_omp_for): Return a gomp_for *.
      	(gimple_build_omp_parallel): Return a gomp_parallel *.
      	(gimple_build_omp_task): Return a gomp_task *.
      	(gimple_build_omp_continue): Return a gomp_continue *.
      	(gimple_build_omp_sections): Return a gomp_sections *.
      	(gimple_build_omp_single): Return a gomp_single *.
      	(gimple_build_omp_target): Return a gomp_target *.
      	(gimple_build_omp_teams): Return a gomp_teams *.
      	(gimple_build_omp_atomic_load): Return a gomp_atomic_load *.
      	(gimple_build_omp_atomic_store): Return a gomp_atomic_store *.
      	(gimple_build_transaction): Return a gtransaction *.
      	(gimple_call_arg_flags): Require a const gcall *.
      	(gimple_call_return_flags): Likewise.
      	(gimple_call_copy_skip_args): Require and return a gcall *.
      	(gimple_asm_clobbers_memory_p): Require a const gasm *.
      	(gimple_seq_first_stmt_as_a_bind): New.
      	(gimple_assign_nontemporal_move_p): Require a const gassign *
      	rather than a const_gimple.
      	(gimple_call_internal_fn): Update for renaming to gcall.
      	(gimple_call_fntype): Likewise.
      	(gimple_call_set_fntype): Require a gcall * rather than a gimple.
      	(gimple_call_set_fn): Likewise.
      	(gimple_call_set_internal_fn): Likewise.
      	(gimple_call_set_chain): 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_nothrow_p): Likewise.
      	(gimple_call_set_alloca_for_var): Likewise.
      	(gimple_call_alloca_for_var_p): Likewise.
      	(gimple_call_use_set): Likewise.
      	(gimple_call_clobber_set): Likewise.
      	(gimple_call_return_type): Require a const gcall * rather than a
      	const_gimple.
      	(gimple_call_chain_ptr): Likewise.
      	(gimple_call_copy_flags): Require a pair of gcall *.
      	(gimple_cond_set_code): Require a gcond * rather than a gimple
      	(gimple_cond_set_lhs): Likewise.
      	(gimple_cond_set_rhs): Likewise.
      	(gimple_cond_set_true_label): Likewise.
      	(gimple_cond_set_false_label): Likewise.
      	(gimple_cond_make_false): Likewise.
      	(gimple_cond_make_true): Likewise.
      	(gimple_cond_lhs_ptr): Require a const gcond * rather than a
      	const_gimple.
      	(gimple_cond_rhs_ptr): Likewise.
      	(gimple_cond_true_label): Likewise.
      	(gimple_cond_false_label): Likewise.
      	(gimple_cond_true_p): Likewise.
      	(gimple_cond_false_p): Likewise.
      	(gimple_cond_set_condition): Likewise.
      	(gimple_label_label): Require a const glabel *.
      	(gimple_label_set_label): Require a glabel *.
      	(gimple_goto_set_dest): Require a ggoto *.
      	(gimple_bind_vars): Require a const gbind *.
      	(gimple_bind_block): Likewise.
      	(gimple_bind_set_vars): Require a gbind *.
      	(gimple_bind_append_vars): Likewise.
      	(gimple_bind_body_ptr): Likewise.
      	(gimple_bind_body): Likewise.
      	(gimple_bind_set_body): Likewise.
      	(gimple_bind_add_stmt): Likewise.
      	(gimple_bind_add_seq): Likewise.
      	(gimple_bind_set_block): Likewise.
      	(gimple_asm_ninputs): Require a const gasm *.
      	(gimple_asm_noutputs): Likewise.
      	(gimple_asm_nclobbers): Likewise.
      	(gimple_asm_nlabels): Likewise.
      	(gimple_asm_input_op): Likewise.
      	(gimple_asm_input_op_ptr): Likewise.
      	(gimple_asm_output_op): Likewise.
      	(gimple_asm_output_op_ptr): Likewise.
      	(gimple_asm_clobber_op): Likewise.
      	(gimple_asm_label_op): Likewise.
      	(gimple_asm_string): Likewise.
      	(gimple_asm_volatile_p): Likewise.
      	(gimple_asm_input_p): Likewise.
      	(gimple_asm_set_input_op): Require a gasm *.
      	(gimple_asm_set_output_op): Likewise.
      	(gimple_asm_set_clobber_op): Likewise.
      	(gimple_asm_set_label_op): Likewise.
      	(gimple_asm_set_volatile): Likewise.
      	(gimple_asm_set_input): Likewise.
      	(gimple_catch_types): Require a const gcatch *.
      	(gimple_catch_types_ptr): Require a gcatch *.
      	(gimple_catch_handler_ptr): Likewise.
      	(gimple_catch_handler): Likewise.
      	(gimple_catch_set_types): Likewise.
      	(gimple_catch_set_handler): Likewise.
      	(gimple_eh_filter_types): Update for renaming of subclass to
      	geh_filter.
      	(gimple_eh_filter_types_ptr): Likewise.
      	(gimple_eh_filter_failure_ptr): Likewise.
      	(gimple_eh_filter_set_types): Require a geh_filter *.
      	(gimple_eh_filter_set_failure): Likewise.
      	(gimple_eh_must_not_throw_fndecl): Require a geh_mnt *.
      	(gimple_eh_must_not_throw_set_fndecl): Likewise.
      	(gimple_eh_else_n_body_ptr): Require a geh_else *.
      	(gimple_eh_else_n_body): Likewise.
      	(gimple_eh_else_e_body_ptr): Likewise.
      	(gimple_eh_else_e_body): Likewise.
      	(gimple_eh_else_set_n_body): Likewise.
      	(gimple_eh_else_set_e_body): Likewise.
      	(gimple_try_set_kind): Require a gtry *.
      	(gimple_try_set_catch_is_cleanup): Likewise.
      	(gimple_try_set_eval): Likewise.
      	(gimple_try_set_cleanup): Likewise.
      	(gimple_try_eval_ptr): Update for renaming of subclass to gtry.
      	(gimple_try_cleanup_ptr): Likewise.
      	(gimple_phi_capacity): Update for renaming of subclass to gphi.
      	(gimple_phi_num_args): Likewise.
      	(gimple_phi_result): Likewise.
      	(gimple_phi_result_ptr): Likewise.
      	(gimple_phi_arg): Likewise.
      	(gimple_phi_set_result): Require a gphi *.
      	(gimple_phi_set_arg): Likewise.
      	(gimple_phi_arg_def_ptr): Likewise.
      	(gimple_phi_arg_edge): Likewise.
      	(gimple_phi_arg_location): Likewise.
      	(gimple_phi_arg_location_from_edge): Likewise.
      	(gimple_phi_arg_set_location): Likewise.
      	(gimple_phi_arg_has_location): Likewise.
      	(gimple_resx_region): Require a const gresx *.
      	(gimple_resx_set_region): Require a gresx *.
      	(gimple_eh_dispatch_region): Require a const geh_dispatch *.
      	(gimple_eh_dispatch_set_region): Require a geh_dispatch *.
      	(gimple_switch_num_labels): Require a const gswitch *.
      	(gimple_switch_set_num_labels): Likewise.
      	(gimple_switch_index): Likewise.
      	(gimple_switch_index_ptr): Likewise.
      	(gimple_switch_label): Likewise.
      	(gimple_switch_default_label): Likewise.
      	(gimple_switch_set_index): Require a gswitch *.
      	(gimple_switch_set_label): Likewise.
      	(gimple_switch_set_default_label): Likewise.
      	(gimple_omp_critical_name): Require a const gomp_critical *.
      	(gimple_omp_critical_name_ptr): Require a gomp_critical *.
      	(gimple_omp_critical_set_name): Likewise.
      	(gimple_omp_for_set_kind): Require a gomp_for *.
      	(gimple_omp_for_set_combined_p): Likewise.
      	(gimple_omp_for_set_combined_into_p): Likewise.
      	(gimple_omp_for_clauses): Update for renaming of subclass to
      	gomp_for.
      	(gimple_omp_for_clauses_ptr): Likewise.
      	(gimple_omp_for_set_clauses): Likewise.
      	(gimple_omp_for_collapse): Likewise.
      	(gimple_omp_for_index): Likewise.
      	(gimple_omp_for_index_ptr): Likewise.
      	(gimple_omp_for_set_index): Likewise.
      	(gimple_omp_for_initial): Likewise.
      	(gimple_omp_for_initial_ptr): Likewise.
      	(gimple_omp_for_set_initial): Likewise.
      	(gimple_omp_for_final): Likewise.
      	(gimple_omp_for_final_ptr): Likewise.
      	(gimple_omp_for_set_final): Likewise.
      	(gimple_omp_for_incr): Likewise.
      	(gimple_omp_for_incr_ptr): Likewise.
      	(gimple_omp_for_set_incr): Likewise.
      	(gimple_omp_for_pre_body): Likewise.
      	(gimple_omp_for_set_pre_body): Likewise.
      	(gimple_omp_parallel_clauses): Update for renaming of subclass to
      	gomp_parallel.
      	(gimple_omp_parallel_clauses_ptr): Require a gomp_parallel *.
      	(gimple_omp_parallel_set_clauses): Likewise.
      	(gimple_omp_parallel_child_fn_ptr): Likewise.
      	(gimple_omp_parallel_set_child_fn): Likewise.
      	(gimple_omp_parallel_data_arg_ptr): Likewise.
      	(gimple_omp_parallel_set_data_arg): Likewise.
      	(gimple_omp_parallel_child_fn): Require a const gomp_parallel *.
      	(gimple_omp_parallel_data_arg): Likewise.
      	(gimple_omp_task_clauses): Update for renaming of subclass to
      	gomp_task.
      	(gimple_omp_task_clauses_ptr): Likewise.
      	(gimple_omp_task_set_clauses): Likewise.
      	(gimple_omp_task_child_fn): Likewise.
      	(gimple_omp_task_child_fn_ptr): Likewise.
      	(gimple_omp_task_set_child_fn): Likewise.
      	(gimple_omp_task_data_arg): Likewise.
      	(gimple_omp_task_data_arg_ptr): Likewise.
      	(gimple_omp_task_set_data_arg): Likewise.
      	(gimple_omp_taskreg_clauses): Whitespace fixes.
      	(gimple_omp_taskreg_clauses_ptr): Likewise.
      	(gimple_omp_taskreg_set_clauses): Likewise.
      	(gimple_omp_taskreg_child_fn): Likewise.
      	(gimple_omp_taskreg_child_fn_ptr): Likewise.
      	(gimple_omp_taskreg_set_child_fn): Likewise.
      	(gimple_omp_taskreg_data_arg): Likewise.
      	(gimple_omp_taskreg_data_arg_ptr): Likewise.
      	(gimple_omp_taskreg_set_data_arg): Likewise.
      	(gimple_omp_task_copy_fn): Update for renaming of subclass to
      	gomp_task.
      	(gimple_omp_task_copy_fn_ptr): Likewise.
      	(gimple_omp_task_set_copy_fn): Likewise.
      	(gimple_omp_task_arg_size): Likewise.
      	(gimple_omp_task_arg_size_ptr): Likewise.
      	(gimple_omp_task_set_arg_size): Likewise.
      	(gimple_omp_task_arg_align): Likewise.
      	(gimple_omp_task_arg_align_ptr): Likewise.
      	(gimple_omp_task_set_arg_align): Likewise.
      	(gimple_omp_single_clauses): Update for renaming of subclass to
      	gomp_single.
      	(gimple_omp_single_clauses_ptr): Likewise.
      	(gimple_omp_single_set_clauses): Likewise.
      	(gimple_omp_target_clauses): Update for renaming of subclass to
      	gomp_target.
      	(gimple_omp_target_clauses_ptr): Likewise.
      	(gimple_omp_target_set_clauses): Require a gomp_target *.
      	(gimple_omp_target_set_kind): Likewise.
      	(gimple_omp_target_child_fn_ptr): Likewise.
      	(gimple_omp_target_set_child_fn): Likewise.
      	(gimple_omp_target_data_arg_ptr): Likewise.
      	(gimple_omp_target_set_data_arg): Likewise.
      	(gimple_omp_target_child_fn): Require a const gomp_target *.
      	(gimple_omp_target_data_arg): Likewise.
      	(gimple_omp_teams_clauses): Update for renaming of subclass to
      	gomp_teams.
      	(gimple_omp_teams_clauses_ptr): Likewise.
      	(gimple_omp_teams_set_clauses): Require a gomp_teams *.
      	(gimple_omp_sections_clauses): Update for renaming of subclass to
      	gomp_sections.
      	(gimple_omp_sections_clauses_ptr): Likewise.
      	(gimple_omp_sections_set_clauses): Likewise.
      	(gimple_omp_sections_control): Likewise.
      	(gimple_omp_sections_control_ptr): Likewise.
      	(gimple_omp_sections_set_control): Likewise.
      	(gimple_omp_for_set_cond): Likewise.
      	(gimple_omp_for_cond): Likewise.
      	(gimple_omp_atomic_store_set_val): Require a gomp_atomic_store *.
      	(gimple_omp_atomic_store_val_ptr): Likewise.
      	(gimple_omp_atomic_load_set_lhs): Likewise.
      	(gimple_omp_atomic_store_val): Require a const gomp_atomic_store *.
      	(gimple_omp_atomic_load_lhs): Likewise.
      	(gimple_omp_atomic_load_rhs): Likewise.
      	(gimple_omp_atomic_load_lhs_ptr): Require a gomp_atomic_load *.
      	(gimple_omp_atomic_load_set_rhs): Likewise.
      	(gimple_omp_atomic_load_rhs_ptr): Likewise.
      	(gimple_omp_continue_control_def): Require a const gomp_continue *.
      	(gimple_omp_continue_control_use): Likewise.
      	(gimple_omp_continue_control_def_ptr): Require a gomp_continue *.
      	(gimple_omp_continue_set_control_def): Likewise.
      	(gimple_omp_continue_control_use_ptr): Likewise.
      	(gimple_omp_continue_set_control_use): Likewise.
      	(gimple_transaction_body_ptr): Require a gtransaction *.
      	(gimple_transaction_body): Likewise.
      	(gimple_transaction_label_ptr): Likewise.
      	(gimple_transaction_label): Require a const gtransaction *.
      	(gimple_transaction_subcode): Likewise.
      	(gimple_transaction_set_body): Require a gtransaction *.
      	(gimple_transaction_set_label): Likewise.
      	(gimple_transaction_set_subcode): Likewise.
      	(gimple_return_retval_ptr): Require a const greturn *.
      	(gimple_return_retval): Likewise.
      	(gimple_return_set_retval): Require a greturn *.
      	(gimple_expr_type): Introduce local "call_stmt" and use in place of
      	"stmt" for typesafety.
      
      	* asan.c: Use gimple subclasses.
      	* auto-profile.c: Likewise.
      	* builtins.c: Likewise.
      	* builtins.h: Likewise.
      	* cfgexpand.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraph.h: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphclones.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* expr.h: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-builder.h: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimple-walk.c: Likewise.
      	* gimplify-me.c: Likewise.
      	* gimplify.c: Likewise.
      	* gimplify.h: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* internal-fn.c: Likewise.
      	* internal-fn.def:: Likewise.
      	* internal-fn.h: Likewise.
      	* ipa-icf-gimple.c: Likewise.
      	* ipa-icf-gimple.h: Likewise.
      	* ipa-icf.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-prop.h: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-split.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* omp-low.c: Likewise.
      	* predict.c: Likewise.
      	* sanopt.c: Likewise.
      	* sese.c: Likewise.
      	* ssa-iterators.h: Likewise.
      	* stmt.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfg.h: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-chkp.h: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-eh.h: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-inline.h: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-into-ssa.h: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-phinodes.c: Likewise.
      	* tree-phinodes.h: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-scalar-evolution.h
      	* tree-sra.cn_function):
      	* tree-ssa-alias.c: Likewise.
      	* tree-ssa-alias.h: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-operands.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-propagate.h: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-sccvn.h: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c
      	* tree-ssa-structalias.c
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadedge.h: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.h: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* ubsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* value-prof.h: Likewise.
      	* vtable-verify.c: Likewise.
      
      gcc/c-family/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      	* ChangeLog.gimple-classes: New.
      	* c-gimplify.c (add_block_to_enclosing): Strengthen local "stack"
      	from being just a vec<gimple> to a vec<gbind *>.
      
      gcc/java/ChangeLog:
      	Merger of git branch "gimple-classes-v2-option-3".
      	* ChangeLog.gimple-classes: New.
      	* java-gimplify.c (java_gimplify_block): Strengthen local "outer"
      	from gimple to gbind *.
      
      From-SVN: r217787
      David Malcolm committed
  19. 21 Aug, 2014 1 commit
    • re PR tree-optimization/62112 (Optimize out malloc when block is unused or write-only) · 8cb65b37
      2014-08-21  Marc Glisse  <marc.glisse@inria.fr>
      
      	PR tree-optimization/62112
      gcc/
      	* gimple-iterator.c (gsi_replace): Return whether EH cleanup is needed.
      	* gimple-iterator.h (gsi_replace): Return bool.
      	* tree-ssa-alias.c (ref_may_alias_global_p_1): New helper, code
      	moved from ref_may_alias_global_p.
      	(ref_may_alias_global_p, refs_may_alias_p, ref_maybe_used_by_stmt_p):
      	New overloads.
      	(ref_maybe_used_by_call_p): Take ao_ref* instead of tree.
      	(stmt_kills_ref_p_1): Rename...
      	(stmt_kills_ref_p): ... to this.
      	* tree-ssa-alias.h (ref_may_alias_global_p, ref_maybe_used_by_stmt_p,
      	stmt_kills_ref_p): Declare.
      	* tree-ssa-dse.c (dse_possible_dead_store_p): New argument, use it.
      	Move the self-assignment case...
      	(dse_optimize_stmt): ... here. Handle builtin calls. Remove dead code.
      gcc/testsuite/
      	* gcc.dg/tree-ssa/pr62112-1.c: New file.
      	* gcc.dg/tree-ssa/pr62112-2.c: Likewise.
      	* gcc.c-torture/execute/pr35472.c: Add noclone attribute.
      	* gcc.c-torture/execute/20071219-1.c: Likewise.
      
      From-SVN: r214262
      Marc Glisse committed
  20. 01 Aug, 2014 1 commit
    • IPA ICF pass 1/N · fd29c024
      	* gimple-iterator.h (gsi_next_nonvirtual_phi): New function.
      	* ipa-prop.h (count_formal_params): Global function created from static.
      	* ipa-prop.c (count_formal_params): Likewise.
      	* ipa-utils.c (ipa_merge_profiles): Be more tolerant if we merge
      	profiles for semantically equivalent functions.
      	* passes.c (do_per_function): If we load body of a function
      	during WPA, this condition should behave same.
      	* varpool.c (ctor_for_folding): More tolerant assert for variable
      	aliases created during WPA.
      
      From-SVN: r213417
      Martin Liska committed
  21. 17 Apr, 2014 1 commit
    • gimple-iterator.c (gsi_start_edge): New function. · 104cb50b
      2014-04-17  Martin Jambor  <mjambor@suse.cz>
      
      	* gimple-iterator.c (gsi_start_edge): New function.
      	* gimple-iterator.h (gsi_start_edge): Declare.
      	* tree-sra.c (single_non_eh_succ): New function.
      	(disqualify_ops_if_throwing_stmt): Renamed to
      	disqualify_if_bad_bb_terminating_stmt.  Allow throwing statements
      	having one non-EH successor BB.
      	(sra_modify_expr): If stmt ends bb, use single non-EH successor to
      	generate loads into replacements.
      	(sra_modify_assign): Likewise and and also use the simple path for
      	such statements.
      	(sra_modify_function_body): Commit statements on edges.
      
      testsuite/
      	* gnat.dg/opt34.adb: New.
      	* gnat.dg/opt34_pkg.ads: Likewise.
      
      From-SVN: r209487
      Martin Jambor committed
  22. 02 Jan, 2014 1 commit
  23. 10 Dec, 2013 1 commit
    • cgraph.h (cgraph_node_set_iterator, [...]): Remove typedef. · 84562394
      	* gcc/cgraph.h (cgraph_node_set_iterator, varpool_node_set_iterator):
      	Remove typedef.
      	(cgraph_inline_failed_enum, cgraph_inline_failed_t): Remove typedef and
      	rename to cgraph_inline_failed_t.
      	* gcc/tree-ssa-alias.h (ao_ref_s, ao_ref): Remove typedef and rename
      	to ao_ref.
      	* gcc/reload.h (reg_equivs_s, reg_equivs_t): Remove typedef and rename
      	to reg_equivs_t.
      	* gcc/conditions.h (CC_STATUS): Remove typedef.
      	* gcc/bitmap.h (bitmap_obstack): Remove typedef.
      	(bitmap_element_def, bitmap_element): Remove typedef and rename to
      	bitmap_element.
      	(bitmap_head_def, bitmap_head): Remove typedef and rename to
      	bitmap_head.
      	(bitmap_iterator): Remove typedef.
      	* gcc/target.h (cumulative_args_t, print_switch_type,
      	secondary_reload_info): Remove typedef.
      	* gcc/dwarf2out.h (dw_cfi_oprnd_struct, dw_cfi_oprnd): Remove
      	dw_cfi_oprnd_struct alias.
      	(dw_cfi_struct, dw_cfi_node): Remove typedef and rename to dw_cfi_node.
      	(dw_fde_struct, dw_fde_node): Remove typedef and rename to dw_fde_node.
      	(cfa_loc, dw_cfa_location): Remove typedef and rename to
      	dw_cfa_location.
      	(dw_vec_struct, dw_vec_const): Remove typedef and rename to
      	dw_vec_const.
      	(dw_val_struct, dw_val_node): Remove typedef and rename to dw_val_node.
      	(dw_loc_descr_struct, dw_loc_descr_node): Remove typedef and rename to
      	dw_loc_descr_node.
      	* gcc/params.h (param_info, compiler_param): Remove typedef.
      	* gcc/opts.h (cl_deferred_param): Remove typedef.
      	* gcc/sreal.h (sreal): Remove typedef.
      	* gcc/ddg.h (dep_type, dep_data_type): Remove typedef.
      	* gcc/graphite-clast-to-gimple.h (cloog_prog_clast, bb_pbb_def): Remove
      	typedef.
      	* gcc/lto-streamer.h (lto_decl_stream_e_t, lto_encoder_entry,
      	lto_symtab_encoder_iterator, res_pair): Remove typedef.
      	* gcc/tree-affine.h (affine_tree_combination, aff_tree): Remove typedef
      	and rename to aff_tree.
      	* gcc/sched-int.h (region): Remove typedef.
      	* gcc/diagnostic.h (diagnostic_info,
      	diagnostic_classification_change_t): Remove typedef.
      	* gcc/tree-ssa-loop.h (affine_iv_d): Remove typedef and rename to
      	affine_iv.
      	* gcc/sbitmap.h (sbitmap_iterator): Remove typedef.
      	* gcc/ssa-iterators.h (immediate_use_iterator_d, imm_use_iterator):
      	Remove typedef and rename to imm_use_iterator.
      	(ssa_operand_iterator_d, ssa_op_iter): Remove typedef and rename to
      	ssa_op_iter.
      	* gcc/ggc-internal.h (ggc_statistics): Remove typedef.
      	* gcc/cselib.h (cselib_val_struct, cselib_val): Remove typedef and
      	rename to cselib_val.
      	* gcc/tree-core.h (alias_pair): Remove typedef.
      	(constructor_elt_d, constructor_elt): Remove typedef and rename to
      	constructor_elt.
      	(ssa_use_operand_d, ssa_use_operand_t): Remove typedef and rename to
      	ssa_use_operand_t.
      	* gcc/graphite-sese-to-poly.h (base_alias_pair): Remove typedef.
      	* gcc/tree-data-ref.h (conflict_function): Remove typedef.
      	* gcc/tree-inline.h (copy_body_data): Remove typedef.
      	* gcc/ipa-inline.h (condition, size_time_entry, inline_param_summary_t,
      	edge_growth_cache_entry): Remove typedef.
      	* gcc/regrename.h (operand_rr_info, insn_rr_info): Remove typedef.
      	* gcc/gimple-iterator.h (gimple_stmt_iterator_d, gimple_stmt_iterator):
      	Remove typedef and rename to gimple_stmt_iterator.
      	* gcc/basic-block.h (ce_if_block, ce_if_block_t): Remove typedef and
      	rename to ce_if_block.
      	(edge_iterator): Remove typedef.
      	* gcc/ipa-prop.h (ipa_agg_jf_item, ipa_agg_jf_item_t): Remove typedef
      	and rename to ipa_agg_jf_item.
      	(ipa_agg_jump_function_t, ipa_param_descriptor_t, ipa_node_params_t,
      	ipa_parm_adjustment_t): Remove typedef.
      	(ipa_jump_func, ipa_jump_func_t): Remove typedef and rename to
      	ipa_jump_func.
      	(ipa_edge_args, ipa_edge_args_t): Remove typedef and rename to
      	ipa_edge_args.
      	* gcc/gcov-io.h (gcov_bucket_type): Remove typedef.
      	(gcov_working_set_info, gcov_working_set_t): Remove typedef and rename
      	to gcov_working_set_t.
      	* gcc/ira-int.h (minmax_set_iterator, ira_allocno_iterator,
      	ira_object_iterator, ira_allocno_object_iterator, ira_pref_iterator,
      	ira_copy_iterator, ira_object_conflict_iterator): Remove typedef.
      	* gcc/tree-iterator.h (tree_stmt_iterator): Remove typedef.
      	* gcc/rtl.h (addr_diff_vec_flags, mem_attrs, reg_attrs,
      	replace_label_data): Remove typedef.
      	(rtunion_def, rtunion): Remove typedef and rename to rtunion.
      	* gcc/hard-reg-set.h (hard_reg_set_iterator): Remove typedef.
      	* gcc/sel-sched-ir.h (_list_iterator, sel_global_bb_info_def,
      	sel_region_bb_info_def, succ_iterator): Remove typedef.
      	(deps_where_def, deps_where_t): Remove typedef and rename to
      	deps_where_t.
      	* gcc/coretypes.h: Adapt forward declarations.
      	* gcc/tree-scalar-evolution.h: Likewise.
      	* gcc/tree-ssa-address.h: Likewise.
      	* gcc/tree-ssa-operands.h: Likewise.
      	* gcc/function.h: Likewise.
      	* gcc/config/frv/frv-protos.h: Likewise.
      	* gcc/targhooks.h: Likewise.
      	* gcc/basic_block.h: Likewise.
      	* gcc/rtl.def: Adapt documentation.
      	* gcc/doc/tm.texi: Likewise.
      	* gcc/ipa-cp.c: Adapt uses.
      	* gcc/bitmap.c: Likewise.
      	* gcc/dwarf2out.c: Likewise.
      	* gcc/target.def: Likewise.
      	* gcc/ipa-inline-analysis.c: Likewise.
      	* gcc/dwarf2cfi.c: Likewise.
      	* gcc/tree-ssa-loop-ivopts.c: Likewise.
      	* gcc/lto-cgraph.c: Likewise.
      	* gcc/config/frv/frv.c: Likewise.
      	* gcc/ifcvt.c: Likewise.
      	* gcc/ipa-prop.c: Likewise.
      
      From-SVN: r205863
      Oleg Endo committed
  24. 19 Nov, 2013 1 commit
    • 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
  25. 14 Nov, 2013 1 commit
    • gimplify-be.h: New file. · 18f429e2
      
      	* gimplify-be.h:  New file.  Add prototypes.
      	* gimplify.h: Don't include gimple.h.
      	(struct gimplify_hasher, struct gimplify_ctx, is_gimple_sizepos,
      	gimplify_hasher::hash, gimplify_hasher::equal): Relocate from gimple.h.
      	* gimple.h (struct gimplify_hasher, gimplify_hasher::hash,
      	gimplify_hasher::equal, struct gimplify_ctx, is_gimple_sizepos): Move
      	to gimplify.h.
      	(enum gsi_iterator_update): Move to gimple-iterator.h.
      	* gimple-iterator.h (enum gsi_iterator_update): Relocate from gimple.h.
      	* gimplify-be.c: New File.
      	(force_gimple_operand_1, force_gimple_operand,
      	force_gimple_operand_gsi_1, force_gimple_operand_gsi): Relocate from
      	gimplify.c.
      	* gimplify.c (force_gimple_operand_1, force_gimple_operand,
      	force_gimple_operand_gsi_1, force_gimple_operand_gsi): Move to
      	gimplify-be.c.
      	* Makefile.in (OBJS): Add gimplify-be.o
      	* asan.c: Include only gimplify.h, gimplify-be.h, and/or gimple.h as
      	required.
      	* cfgloopmanip.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* cilk-common.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-split.c: Likewise.
      	* ipa.c: Likewise.
      	* langhooks.c: Likewise.
      	* omp-low.c: Likewise.
      	* sese.c: Likewise.
      	* stor-layout.c: Likewise.
      	* targhooks.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-affine.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-address.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop-unswitch.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* config/aarch64/aarch64.c: Likewise.
      	* config/alpha/alpha.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/i386/i386.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/mep/mep.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/rs6000/rs6000.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      
      	* c/c-typeck.c: Include only gimplify.h and gimple.h as needed.
      	* c-family/c-common.c: Likewise.
      	* c-family/c-gimplify.c: Likewise.
      	* c-family/cilk.c: Likewise.
      
      	* cp/class.c: Include only gimplify.h and gimple.h as needed.
      	* cp/cp-gimplify.c: Likewise.
      	* cp/error.c: Likewise.
      	* cp/init.c: Likewise.
      	* cp/optimize.c: Likewise.
      	* cp/pt.c: Likewise.
      	* cp/semantics.c: Likewise.
      	* cp/tree.c: Likewise.
      	* cp/vtable-class-hierarchy.c: Likewise.
      
      	* fortran/trans-expr.c: Include only gimplify.h and gimple.h as needed.
      	* fortran/trans-openmp.c: Likewise.
      
      	* go/go-lang.c: Include only gimplify.h and gimple.h as needed.
      
      	* java/java-gimplify.c: Include only gimplify.h and gimple.h as needed.
      
      	* objc/objc-act.c: Include only gimplify.h and gimple.h as needed.
      
      From-SVN: r204812
      Andrew MacLeod committed
  26. 13 Nov, 2013 1 commit
    • gimple-walk.h: New File. · 5be5c238
      	* gimple-walk.h: New File.  Relocate prototypes from gimple.h.
      	(struct walk_stmt_info):  Relocate here from gimple.h.
      	* gimple-iterator.h: New File.  Relocate prototypes from gimple.h.
      	(struct gimple_stmt_iterator_d): Relocate here from gimple.h.
      	(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
      	gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
      	gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
      	gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
      	gsi_last_nondebug_bb, gsi_bb, gsi_seq): Relocate here from gimple.h.
      	* gimple.h (struct gimple_stmt_iterator_d): Move to gimple-iterator.h.
      	(gsi_start_1, gsi_none, gsi_start_bb, gsi_last_1, gsi_last_bb,
      	gsi_end_p, gsi_one_before_end_p, gsi_next, gsi_prev, gsi_stmt,
      	gsi_after_labels, gsi_next_nondebug, gsi_prev_nondebug,
      	gsi_start_nondebug_bb, gsi_start_nondebug_after_labels_bb,
      	gsi_last_nondebug_bb, gsi_bb, gsi_seq): Move to gimple-iterator.h.
      	(struct walk_stmt_info): Move to gimple-walk.h.
      	(gimple_seq_set_location): Move to gimple.c
      	* gimple-walk.c: New File.
      	(walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm, walk_gimple_op,
      	walk_gimple_stmt, get_base_loadstore, walk_stmt_load_store_addr_ops,
      	walk_stmt_load_store_ops): Relocate here from gimple.c.
      	* gimple-iterator.c: Include gimple-iterator.h.
      	* gimple.c (walk_gimple_seq_mod, walk_gimple_seq, walk_gimple_asm,
      	walk_gimple_op, walk_gimple_stmt, get_base_loadstore,
      	walk_stmt_load_store_addr_ops, walk_stmt_load_store_ops): Move to
      	gimple-walk.c.
      	(gimple_seq_set_location): Relocate from gimple.h.
      	* tree-phinodes.h (set_phi_nodes): Move to tree-phinodes.c.
      	* tree-phinodes.c (set_phi_nodes): Relocate from tree-phinodes.h.
      	* gengtype.c (open_base_files): Add gimple-iterator.h to include list.
      	* Makefile.in (OBJS): Add gimple-walk.o
      
      	* asan.c: Update Include list as required for gimple-iterator.h and
      	gimple-walk.h.
      	* cfgexpand.c: Likewise.
      	* cfgloop.c: Likewise.
      	* cfgloopmanip.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphbuild.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-low.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple-ssa-isolate-paths.c: Likewise.
      	* gimple-ssa-strength-reduction.c: Likewise.
      	* gimple-streamer-in.c: Likewise.
      	* gimple-streamer-out.c: Likewise.
      	* gimplify.c: Likewise.
      	* graphite-blocking.c: Likewise.
      	* graphite-clast-to-gimple.c: Likewise.
      	* graphite-dependences.c: Likewise.
      	* graphite-interchange.c: Likewise.
      	* graphite-optimize-isl.c: Likewise.
      	* graphite-poly.c: Likewise.
      	* graphite-scop-detection.c: Likewise.
      	* graphite-sese-to-poly.c: Likewise.
      	* graphite.c: Likewise.
      	* ipa-inline-analysis.c: Likewise.
      	* ipa-profile.c: Likewise.
      	* ipa-prop.c: Likewise.
      	* ipa-pure-const.c: Likewise.
      	* ipa-split.c: Likewise.
      	* lto-streamer-in.c: Likewise.
      	* lto-streamer-out.c: Likewise.
      	* omp-low.c: Likewise.
      	* predict.c: Likewise.
      	* profile.c: Likewise.
      	* sese.c: Likewise.
      	* tracer.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-call-cdce.c: Likewise.
      	* tree-cfg.c: Likewise.
      	* tree-cfgcleanup.c: Likewise.
      	* tree-complex.c: Likewise.
      	* tree-data-ref.c: Likewise.
      	* tree-dfa.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-emutls.c: Likewise.
      	* tree-if-conv.c: Likewise.
      	* tree-inline.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-loop-distribution.c: Likewise.
      	* tree-nested.c: Likewise.
      	* tree-nrv.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-outof-ssa.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-predcom.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-scalar-evolution.c: Likewise.
      	* tree-sra.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-coalesce.c: Likewise.
      	* tree-ssa-copy.c: Likewise.
      	* tree-ssa-copyrename.c: Likewise.
      	* tree-ssa-dce.c: Likewise.
      	* tree-ssa-dom.c: Likewise.
      	* tree-ssa-dse.c: Likewise.
      	* tree-ssa-forwprop.c: Likewise.
      	* tree-ssa-ifcombine.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop-ch.c: Likewise.
      	* tree-ssa-loop-im.c: Likewise.
      	* tree-ssa-loop-ivcanon.c: Likewise.
      	* tree-ssa-loop-ivopts.c: Likewise.
      	* tree-ssa-loop-manip.c: Likewise.
      	* tree-ssa-loop-niter.c: Likewise.
      	* tree-ssa-loop-prefetch.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-math-opts.c: Likewise.
      	* tree-ssa-phiopt.c: Likewise.
      	* tree-ssa-phiprop.c: Likewise.
      	* tree-ssa-pre.c: Likewise.
      	* tree-ssa-propagate.c: Likewise.
      	* tree-ssa-reassoc.c: Likewise.
      	* tree-ssa-sink.c: Likewise.
      	* tree-ssa-strlen.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa-tail-merge.c: Likewise.
      	* tree-ssa-ter.c: Likewise.
      	* tree-ssa-threadedge.c: Likewise.
      	* tree-ssa-threadupdate.c: Likewise.
      	* tree-ssa-uncprop.c: Likewise.
      	* tree-ssa-uninit.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-stdarg.c: Likewise.
      	* tree-switch-conversion.c: Likewise.
      	* tree-tailcall.c: Likewise.
      	* tree-vect-data-refs.c: Likewise.
      	* tree-vect-generic.c: Likewise.
      	* tree-vect-loop-manip.c: Likewise.
      	* tree-vect-loop.c: Likewise.
      	* tree-vect-patterns.c: Likewise.
      	* tree-vect-slp.c: Likewise.
      	* tree-vect-stmts.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tree.c: Likewise.
      	* tsan.c: Likewise.
      	* value-prof.c: Likewise.
      	* vtable-verify.c: Likewise.
      
      	* config/aarch64/aarch64-builtins.c: Include gimple-iterator.h.
      	* config/rs6000/rs6000.c: Include gimple-iterator.h and gimple-walk.h.
      	* testsuite/g++.dg/plugin/selfassign.c: Include gimple-iterator.h.
      	* testsuite/gcc.dg/plugin/selfassign.c: Likewise.
      
      From-SVN: r204763
      Andrew Macleod committed