PR rtl-optimization/82913
[official-gcc.git] / gcc / ChangeLog.gimple-classes
blobfbbe3ae6aa588dfbe22fa3ce11ce3cb49f5314e9
1 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
3         * gimple.h (struct gimple_statement_structure): Remove stray
4         newline.
6 2014-11-19  David Malcolm  <dmalcolm@redhat.com>
8         * gimple.c (gimple_build_assign_with_ops): Strengthen return type
9         of new overload, from gimple to gassign *.
11 2014-11-18  David Malcolm  <dmalcolm@redhat.com>
13         * cgraphbuild.c (pass_build_cgraph_edges::execute): Fix linebreak
14         at assignment statement.
15         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
16         Likewise.
17         * gimple-ssa-strength-reduction.c (replace_one_candidate): Likewise.
18         * gimple-walk.c (walk_gimple_stmt): Likewise.
19         * gimple.c (gimple_build_return): Likewise.
20         (gimple_build_call_1): Likewise.
21         (gimple_build_call_internal_1): Likewise.
22         (gimple_build_label): Likewise.
23         (gimple_build_goto): Likewise.
24         (gimple_build_eh_filter): Likewise.
25         (gimple_build_eh_must_not_throw): Likewise.
26         (gimple_build_resx): Likewise.
27         (gimple_build_switch_nlabels): Likewise.
28         (gimple_build_eh_dispatch): Likewise.
29         (gimple_build_debug_bind_stat): Likewise.
30         (gimple_build_debug_source_bind_stat): Likewise.
31         (gimple_build_omp_critical): Likewise.
32         (gimple_build_omp_parallel): Likewise.
33         (gimple_build_omp_task): Likewise.
34         (gimple_build_omp_continue): Likewise.
35         (gimple_build_omp_sections): Likewise.
36         (gimple_build_omp_single): Likewise.
37         (gimple_build_omp_target): Likewise.
38         (gimple_build_omp_teams): Likewise.
39         (gimple_build_omp_atomic_load): Likewise.
40         (gimple_build_omp_atomic_store): Likewise.
41         (gimple_build_transaction): Likewise.
42         (gimple_copy): Likewise.
43         * gimple.h (gimple_call_fntype): Likewise.
44         (gimple_eh_filter_types): Likewise.
45         (gimple_eh_filter_types_ptr): Likewise.
46         (gimple_eh_filter_failure_ptr
47         (gimple_phi_capacity): Likewise.
48         (gimple_phi_num_args): Likewise.
49         (gimple_phi_result): Likewise.
50         (gimple_omp_for_clauses): Likewise.
51         (gimple_omp_for_clauses_ptr): Likewise.
52         (gimple_omp_for_set_clauses): Likewise.
53         (gimple_omp_for_collapse): Likewise.
54         (gimple_omp_for_index): Likewise.
55         (gimple_omp_for_index_ptr): Likewise.
56         (gimple_omp_for_set_index): Likewise.
57         (gimple_omp_for_initial): Likewise.
58         (gimple_omp_for_initial_ptr): Likewise.
59         (gimple_omp_for_set_initial): Likewise.
60         (gimple_omp_for_final): Likewise.
61         (gimple_omp_for_final_ptr): Likewise.
62         (gimple_omp_for_set_final): Likewise.
63         (gimple_omp_for_incr): Likewise.
64         (gimple_omp_for_incr_ptr): Likewise.
65         (gimple_omp_for_set_incr): Likewise.
66         (gimple_omp_for_pre_body_ptr): Likewise.
67         (gimple_omp_for_set_pre_body): Likewise.
68         (gimple_omp_parallel_clauses): Likewise.
69         (gimple_omp_task_clauses): Likewise.
70         (gimple_omp_task_clauses_ptr): Likewise.
71         (gimple_omp_task_set_clauses): Likewise.
72         (gimple_omp_task_child_fn): Likewise.
73         (gimple_omp_task_child_fn_ptr): Likewise.
74         (gimple_omp_task_set_child_fn): Likewise.
75         (gimple_omp_task_data_arg): Likewise.
76         (gimple_omp_task_data_arg_ptr): Likewise.
77         (gimple_omp_task_set_data_arg): Likewise.
78         (gimple_omp_taskreg_clauses): Likewise.
79         (gimple_omp_taskreg_clauses_ptr): Likewise.
80         (gimple_omp_taskreg_set_clauses): Likewise.
81         (gimple_omp_taskreg_child_fn): Likewise.
82         (gimple_omp_taskreg_child_fn_ptr): Likewise.
83         (gimple_omp_taskreg_set_child_fn): Likewise.
84         (gimple_omp_taskreg_data_arg): Likewise.
85         (gimple_omp_taskreg_data_arg_ptr): Likewise.
86         (gimple_omp_taskreg_set_data_arg): Likewise.
87         (gimple_omp_task_copy_fn): Likewise.
88         (gimple_omp_task_copy_fn_ptr): Likewise.
89         (gimple_omp_task_set_copy_fn): Likewise.
90         (gimple_omp_task_arg_size): Likewise.
91         (gimple_omp_task_arg_size_ptr): Likewise.
92         (gimple_omp_task_set_arg_size): Likewise.
93         (gimple_omp_task_arg_align): Likewise.
94         (gimple_omp_task_arg_align_ptr): Likewise.
95         (gimple_omp_task_set_arg_align): Likewise.
96         (gimple_omp_single_clauses): Likewise.
97         (gimple_omp_single_clauses_ptr): Likewise.
98         (gimple_omp_target_clauses): Likewise.
99         (gimple_omp_target_clauses_ptr): Likewise.
100         (gimple_omp_teams_clauses): Likewise.
101         (gimple_omp_teams_clauses_ptr): Likewise.
102         (gimple_omp_sections_clauses): Likewise.
103         (gimple_omp_sections_clauses_ptr): Likewise.
104         (gimple_omp_sections_set_clauses): Likewise.
105         (gimple_omp_sections_control): Likewise.
106         (gimple_omp_sections_control_ptr): Likewise.
107         (gimple_omp_sections_set_control): Likewise.
108         (gimple_omp_for_set_cond): Likewise.
109         (gimple_omp_for_cond): Likewise.
110         * graphite-sese-to-poly.c (follow_ssa_with_commutative_ops): Likewise.
111         (detect_commutative_reduction_assign): Likewise.
112         * ipa-split.c (verify_non_ssa_vars): Likewise.
113         (split_function): Likewise.
114         * omp-low.c (check_omp_nesting_restrictions): Likewise.
115         (remove_exit_barrier): Likewise.
116         (expand_omp_for_generic): Likewise.
117         (expand_omp_for_static_nochunk): Likewise.
118         (expand_omp_for_static_chunk): Likewise.
119         (expand_omp_atomic
120         (lower_omp_for): Likewise.
121         (lower_omp_taskreg): Likewise.
122         * predict.c (tree_estimate_probability_bb): Likewise.
123         * trans-mem.c (propagate_tm_flags_out): Likewise.
124         (execute_tm_mark): Likewise.
125         * tree-cfg.c (make_edges): Likewise.
126         * tree-inline.c (remap_gimple_stmt): Likewise.
127         (estimate_num_insns): Likewise.
128         * tree-sra.c (init_subtree_with_zero): Likewise.
129         (sra_modify_expr): Likewise.
130         * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise.
131         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise.
132         * tree-ssa-math-opts.c (build_and_insert_cast): Likewise.
133         (pass_cse_sincos::execute): Likewise.
134         * tree-ssa-pre.c (do_regular_insertion): Likewise.
135         (eliminate_insert): Likewise.
136         * tree-ssa-reassoc.c (update_ops): Likewise.
137         * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
138         * tree-tailcall.c (static): Likewise.
139         * tree-vrp.c (simplify_truth_ops_using_ranges): Likewise.
141 2014-11-14  David Malcolm  <dmalcolm@redhat.com>
143         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee):
144         Strengthen locals "dbndret" and "ibndret" from gimple to gcall *.
145         * gimple-iterator.c (gsi_for_phi): New function.
146         * gimple-iterator.h (gsi_for_phi): New prototype.
147         * internal-fn.c (expand_ADD_OVERFLOW): Strengthen param "stmt"
148         from gimple to gcall *.
149         (expand_SUB_OVERFLOW): Likewise.
150         (expand_MUL_OVERFLOW): Likewise.
151         * ipa-icf-gimple.c (func_checker::compare_bb): Add checked casts
152         within case GIMPLE_CALL.
153         (func_checker::compare_gimple_call): Strengthen params from gimple
154         to gcall *.
155         * ipa-icf-gimple.h (func_checker::compare_gimple_call): Likewise.
156         * sanopt.c (sanopt_optimize_walker): Replace check for GIMPLE_ASM
157         with a dyn_cast, introducing local "asm_stmt" and using it in
158         place of "stmt" for typesafety.
159         * tree-chkp.c (chkp_recompute_phi_bounds): Strengthen locals
160         "bounds_phi" and "ptr_phi" from gimple to gphi *.
161         (chkp_add_bounds_to_ret_stmt): Strengthen local "ret" from gimple
162         to greturn *.
163         (chkp_add_bounds_to_call_stmt): Strengthen locals "call" and
164         "new_call" from gimple to gcall *.
165         (chkp_build_returned_bound): Likewise for param "call".
166         (chkp_retbnd_call_by_val): Likewise for return type.
167         (chkp_get_bounds_by_definition): Strengthen param "iter" from
168         gimple_stmt_iterator * to gphi_iterator *.  Add a checked cast
169         within case GIMPLE_CALL.  Use gsi_for_phi rather than
170         gsi_for_stmt.
171         (chkp_find_bounds_1): Strengthen local "phi_iter" from
172         gimple_stmt_iterator to gphi_iterator.  Replace check for
173         GIMPLE_PHI with a dyn_cast, introducing local "def_phi" and using
174         in place of "def_stmt" for typesafety.
175         (chkp_copy_bounds_for_assign): Add checked cast.
176         (chkp_instrument_function): Within case GIMPLE_RETURN, add local
177         greturn * "r" from a checked cast and use in place of "s" for
178         typesafety.
179         * tree-chkp.h (chkp_retbnd_call_by_val): Strengthen return type
180         from gimple to gcall *.
181         * tree-inline.c (copy_bb): Update for renaming of field
182         "gimple_call" to "call_stmt" on the gimple-classes branch.
183         (expand_call_inline): Strengthen local "retbnc" from gimple to
184         gcall *.
185         * tree-ssa-forwprop.c (pass_forwprop::execute): Replace check for
186         GIMPLE_COND with a dyn_cast, introducing local "cond" and using
187         in place of "stmt" for typesafety.
188         * value-prof.c (gimple_ic): Strengthen local "iretbnd_stmt" from
189         gimple to gcall *.  Weaken top-level local "psi" from
190         gphi_iterator back to gimple_stmt_iterator, reintroducing the
191         name as a phi_iterator within the for loop that needs it.
193 2014-10-28  David Malcolm  <dmalcolm@redhat.com>
195         * auto-profile.c (autofdo::function_instance::find_icall_target_map):
196         Strengthen param "stmt" from gimple to gcall *.
197         (autofdo::autofdo_source_profile::update_inlined_ind_target):
198         Likewise.
199         (autofdo::afdo_indirect_call): Rename local gimple "stmt" to "gs",
200         reintroducing "stmt" as a gcall * via a dyn_cast once we've
201         established that we have a GIMPLE_CALL.
202         (autofdo::afdo_set_bb_count): Use a gphi_iterator for the phi
203         iteration, renaming it from "gsi" to "gpi", strengthening
204         local "phi" from gimple to gphi *.
205         (autofdo::afdo_propagate_circuit): Rename local gimple "phi_stmt"
206         to "def_stmt".  Reintroduce "phi_stmt" as a gphi * via a dyn_cast
207         once we know we have a GIMPLE_PHI.
208         (autofdo::afdo_vpt_for_early_inline): Strengthen local "stmt" from
209         gimple to gcall *, using a dyn_cast.
210         * gimple-fold.c (replace_stmt_with_simplification): Replace check
211         against GIMPLE_COND with a dyn_cast <gcond *>, introducing local
212         "cond_stmt".  Use "cond_stmt" in place of "stmt" for typesafety.
213         * gimple-iterator.h (gsi_next_nonvirtual_phi): Strengthen param
214         from gimple_stmt_iterator * to gphi_iterator *, and local "phi"
215         from gimple to gphi *.
216         * ipa-icf-gimple.c (ipa_icf_gimple::func_checker::parse_labels):
217         Replace check against GIMPLE_LABEL with a dyn_cast <glabel *>,
218         introducing local "label_stmt".  Use it in place of "stmt" for
219         typesafety.
220         (ipa_icf_gimple::func_checker::compare_bb): Add checked casts
221         to appropriate gimple subclasses when invoking comparison methods
222         within the cases for GIMPLE_SWITCH, GIMPLE_RESX, GIMPLE_LABEL,
223         GIMPLE_RETURN, GIMPLE_ASM.
224         (ipa_icf_gimple::func_checker::compare_gimple_label): Strengthen
225         both params from gimple to const glabel *.
226         (ipa_icf_gimple::func_checker::compare_gimple_switch): Strengthen
227         both params from gimple to const gswitch *.
228         (ipa_icf_gimple::func_checker::compare_gimple_return): Strengthen
229         both params from gimple to const greturn *.
230         (ipa_icf_gimple::func_checker::compare_gimple_resx): Strengthen
231         both params from gimple to const gresx *.
232         (ipa_icf_gimple::func_checker::compare_gimple_asm): Strengthen
233         both params from gimple to const gasm *.
234         * ipa-icf-gimple.h (ipa_icf_gimple::func_checker::compare_gimple_label):
235         Strengthen both params from gimple to const glabel *.
236         (ipa_icf_gimple::func_checker::compare_gimple_switch): Strengthen
237         both params from gimple to const gswitch *.
238         (ipa_icf_gimple::func_checker::compare_gimple_return): Strengthen
239         both params from gimple to const greturn *.
240         (ipa_icf_gimple::func_checker::compare_gimple_resx): Strengthen
241         both params from gimple to const gresx *.
242         (ipa_icf_gimple::func_checker::compare_gimple_asm): Strengthen
243         both params from gimple to const gasm *.
244         * ipa-icf.c (ipa_icf_gimple::sem_function::compare_phi_node):
245         Strengthen locals "si1" and "si2" from gimple_stmt_iterator to
246         gphi_iterator, and locals "phi1" and "phi2" from gimple to gphi *.
247         * tree-ssa-forwprop.c (fold_all_stmts): Replace check against
248         GIMPLE_COND with a dyn_cast <gcond *>, introducing local
249         "cond_stmt".  Use "cond_stmt" in place of "stmt" for typesafety.
250         * tree-ssa-reassoc.c (branch_fixup): Strengthen local "phi" from
251         gimple to gphi *.
253 2014-10-27  David Malcolm  <dmalcolm@redhat.com>
255         * doc/gimple.texi (Class hierarchy of GIMPLE statements): Update
256         to reflect the new gimple subclasses and the renamings of existing
257         classes.
259 2014-10-27  David Malcolm  <dmalcolm@redhat.com>
261         * gimple.h (struct gdebug): Remove out-of-date references to
262         typedefs.
263         (struct ggoto): Likewise.
264         (struct glabel): Likewise.
266 2014-10-27  David Malcolm  <dmalcolm@redhat.com>
268         Patch autogenerated by rename_gimple_subclasses.py from
269         https://github.com/davidmalcolm/gcc-refactoring-scripts
270         revision 7d754b63ff2bf47226a67b2c0af5d74b54d4709f
272         * asan.c (get_mem_ref_of_assignment): Rename gimple subclass types.
273         (instrument_strlen_call): Likewise.
274         (instrument_builtin_call): Likewise.
275         (has_mem_ref_been_instrumented): Likewise.
276         (has_stmt_been_instrumented_p): Likewise.
277         (create_cond_insert_point): Likewise.
278         (asan_expand_check_ifn): Likewise.
279         * builtins.c (validate_arg): Likewise.
280         (do_mpc_arg2): Likewise.
281         * builtins.h (validate_gimple_arglist): Likewise.
282         (fold_call_stmt): Likewise.
283         * cfgexpand.c (mark_transaction_restart_calls): Likewise.
284         (expand_gimple_stmt): Likewise.
285         (expand_asm_operands): Likewise.
286         (label_rtx_for_bb): Likewise.
287         (expand_gimple_stmt_1): Likewise.
288         (maybe_cleanup_end_of_block): Likewise.
289         (expand_gimple_basic_block): Likewise.
290         * cfgloop.c (find_subloop_latch_edge_by_ivs): Likewise.
291         * cfgloopmanip.c (create_empty_if_region_on_edge): Likewise.
292         (create_empty_loop_on_edge): Likewise.
293         * cgraph.c (cgraph_add_edge_to_call_site_hash): Likewise.
294         (cgraph_allocate_init_indirect_info): Likewise.
295         (cgraph_set_edge_callee): Likewise.
296         (cgraph_update_edges_for_call_stmt_node): Likewise.
297         * cgraph.h (set_call_stmt_including_clones): Likewise.
298         (create_indirect_edge): Likewise.
299         (create_edge_including_clones): Likewise.
300         (set_call_stmt): Likewise.
301         (redirect_call_stmt_to_callee): Likewise.
302         (rebuild_references): Likewise.
303         (create_edge): Likewise.
304         * cgraphbuild.c (mark_store): Likewise.
305         (record_references_in_initializer): Likewise.
306         * cgraphclones.c (function): Likewise.
307         (clone_function_name): Likewise.
308         * cgraphunit.c (thunk_adjust): Likewise.
309         * coretypes.h: Likewise.
310         * expr.h (expand_normal): Likewise.
311         * gimple-builder.c (get_expr_type): Likewise.
312         (build_assign): Likewise.
313         (build_type_cast): Likewise.
314         * gimple-builder.h (build_assign): Likewise.
315         (build_type_cast): Likewise.
316         * gimple-fold.c (gimple_fold_builtin_snprintf_chk): Likewise.
317         (gimple_fold_builtin_sprintf_chk): Likewise.
318         (gimple_fold_builtin_snprintf): Likewise.
319         (gimple_fold_builtin): Likewise.
320         (gimple_fold_call): Likewise.
321         (gimple_fold_stmt_to_constant_1): Likewise.
322         (fold_gimple_assign): Likewise.
323         (fold_stmt_1): Likewise.
324         * gimple-iterator.c (gsi_commit_one_edge_insert): Likewise.
325         (gsi_start_phis): Likewise.
326         * gimple-iterator.h (gsi_commit_one_edge_insert): Likewise.
327         (gimple_phi_iterator::phi): Likewise.
328         * gimple-low.c (lower_try_catch): Likewise.
329         (gimple_try_catch_may_fallthru): Likewise.
330         (lower_gimple_bind): Likewise.
331         (gimple_stmt_may_fallthru): Likewise.
332         (struct return_statements_t): Likewise.
333         (lower_gimple_return): Likewise.
334         (lower_stmt): Likewise.
335         * gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
336         (dump_gimple_omp_single): Likewise.
337         (dump_gimple_omp_continue): Likewise.
338         (dump_gimple_omp_teams): Likewise.
339         (dump_gimple_omp_parallel): Likewise.
340         (dump_gimple_phi): Likewise.
341         (dump_gimple_debug): Likewise.
342         (dump_gimple_omp_block): Likewise.
343         (dump_gimple_omp_for): Likewise.
344         (dump_gimple_omp_atomic_load): Likewise.
345         (dump_gimple_omp_task): Likewise.
346         (dump_gimple_bind): Likewise.
347         (dump_ssaname_info): Likewise.
348         (dump_phi_nodes): Likewise.
349         (gimple_dump_bb_for_graph): Likewise.
350         (dump_gimple_resx): Likewise.
351         (dump_gimple_eh_else): Likewise.
352         (dump_gimple_eh_must_not_throw): Likewise.
353         (dump_gimple_eh_filter): Likewise.
354         (dump_gimple_catch): Likewise.
355         (dump_gimple_try): Likewise.
356         (dump_gimple_goto): Likewise.
357         (dump_gimple_assign): Likewise.
358         (dump_gimple_omp_return): Likewise.
359         (dump_gimple_return): Likewise.
360         (pp_points_to_solution): Likewise.
361         (dump_gimple_transaction): Likewise.
362         (dump_gimple_fmt): Likewise.
363         (dump_unary_rhs): Likewise.
364         (dump_binary_rhs): Likewise.
365         (dump_ternary_rhs): Likewise.
366         (dump_gimple_call): Likewise.
367         (dump_gimple_cond): Likewise.
368         (pp_cfg_jump): Likewise.
369         (dump_gimple_label): Likewise.
370         (dump_gimple_eh_dispatch): Likewise.
371         (dump_gimple_switch): Likewise.
372         (pp_gimple_stmt_1): Likewise.
373         * gimple-ssa-isolate-paths.c (isolate_path): Likewise.
374         (find_implicit_erroneous_behaviour): Likewise.
375         (find_explicit_erroneous_behaviour): Likewise.
376         (insert_trap_and_remove_trailing_statements): Likewise.
377         * gimple-ssa-strength-reduction.c (slsr_process_copy): Likewise.
378         (add_cand_for_stmt): Likewise.
379         (create_phi_basis): Likewise.
380         (ncd_for_two_cands): Likewise.
381         (ncd_with_phi): Likewise.
382         (ncd_of_cand_and_phis): Likewise.
383         (replace_mult_candidate): Likewise.
384         (create_add_on_incoming_edge): Likewise.
385         (insert_initializers): Likewise.
386         (introduce_cast_before_cand): Likewise.
387         (replace_one_candidate): Likewise.
388         * gimple-streamer-in.c (input_phi): Likewise.
389         (input_gimple_stmt): Likewise.
390         * gimple-streamer-out.c (output_phi): Likewise.
391         (output_bb): Likewise.
392         (output_gimple_stmt): Likewise.
393         * gimple-walk.c (walk_gimple_stmt): Likewise.
394         (walk_gimple_seq): Likewise.
395         (walk_gimple_op): Likewise.
396         (walk_stmt_load_store_addr_ops): Likewise.
397         * gimple.c (gimple_build_omp_target): Likewise.
398         (gimple_build_omp_sections_switch): Likewise.
399         (gimple_build_omp_single): Likewise.
400         (gimple_build_omp_return): Likewise.
401         (gimple_build_omp_sections): Likewise.
402         (gimple_build_omp_task): Likewise.
403         (gimple_build_omp_parallel): Likewise.
404         (gimple_build_omp_for): Likewise.
405         (gimple_build_omp_critical): Likewise.
406         (gimple_build_omp_taskgroup): Likewise.
407         (gimple_build_omp_continue): Likewise.
408         (gimple_build_omp_teams): Likewise.
409         (gimple_build_omp_atomic_load): Likewise.
410         (gimple_build_try): Likewise.
411         (gimple_build_wce): Likewise.
412         (gimple_build_eh_else): Likewise.
413         (gimple_build_eh_must_not_throw): Likewise.
414         (gimple_build_eh_filter): Likewise.
415         (gimple_build_catch): Likewise.
416         (gimple_build_nop): Likewise.
417         (empty_stmt_p): Likewise.
418         (gimple_build_with_ops_stat): Likewise.
419         (infer_nonnull_range): Likewise.
420         (gimple_build_omp_atomic_store): Likewise.
421         (gimple_build_transaction): Likewise.
422         (gimple_copy): Likewise.
423         (gimple_call_flags): Likewise.
424         (gimple_call_fnspec): Likewise.
425         (gimple_call_arg_flags): Likewise.
426         (gimple_build_return): Likewise.
427         (gimple_call_reset_alias_info): Likewise.
428         (gimple_build_call_1): Likewise.
429         (gimple_build_call_vec): Likewise.
430         (gimple_build_call): Likewise.
431         (gimple_build_call_valist): Likewise.
432         (gimple_build_call_internal_1): Likewise.
433         (gimple_build_call_internal): Likewise.
434         (gimple_build_call_internal_vec): Likewise.
435         (canonicalize_cond_expr_cond): Likewise.
436         (gimple_call_copy_skip_args): Likewise.
437         (gimple_has_side_effects): Likewise.
438         (gimple_call_builtin_p): Likewise.
439         (gimple_build_bind): Likewise.
440         (gimple_build_asm_vec): Likewise.
441         (gimple_could_trap_p_1): Likewise.
442         (gimple_build_asm_1): Likewise.
443         (gimple_build_call_from_tree): Likewise.
444         (gimple_build_assign_stat): Likewise.
445         (gimple_build_resx): Likewise.
446         (gimple_build_switch_nlabels): Likewise.
447         (gimple_build_switch): Likewise.
448         (gimple_cond_set_condition_from_tree): Likewise.
449         (gimple_set_bb): Likewise.
450         (gimple_build_label): Likewise.
451         (gimple_build_goto): Likewise.
452         (gimple_build_eh_dispatch): Likewise.
453         (gimple_build_debug_bind_stat): Likewise.
454         (gimple_build_debug_source_bind_stat): Likewise.
455         (gimple_build_assign_with_ops): Likewise.
456         (gimple_build_cond): Likewise.
457         (gimple_build_cond_from_tree): Likewise.
458         * gimple.h (gimple_build_omp_target): Likewise.
459         (gimple_omp_teams_clauses): Likewise.
460         (gimple_omp_teams_clauses_ptr): Likewise.
461         (gimple_omp_target_set_kind): Likewise.
462         (gimple_omp_target_set_child_fn): Likewise.
463         (gimple_build_omp_single): Likewise.
464         (gimple_omp_target_kind): Likewise.
465         (gimple_omp_target_child_fn): Likewise.
466         (gimple_omp_target_child_fn_ptr): Likewise.
467         (gimple_omp_target_data_arg): Likewise.
468         (gimple_omp_target_data_arg_ptr): Likewise.
469         (gimple_omp_target_clauses): Likewise.
470         (gimple_omp_target_clauses_ptr): Likewise.
471         (gimple_build_omp_sections_switch): Likewise.
472         (gimple_omp_single_clauses): Likewise.
473         (gimple_omp_single_clauses_ptr): Likewise.
474         (gimple_build_omp_return): Likewise.
475         (gimple_omp_sections_clauses): Likewise.
476         (gimple_omp_sections_clauses_ptr): Likewise.
477         (gimple_omp_sections_set_clauses): Likewise.
478         (gimple_omp_sections_control): Likewise.
479         (gimple_omp_sections_control_ptr): Likewise.
480         (gimple_omp_sections_set_control): Likewise.
481         (gimple_build_omp_parallel): Likewise.
482         (gimple_omp_task_clauses): Likewise.
483         (gimple_omp_task_clauses_ptr): Likewise.
484         (gimple_omp_task_set_clauses): Likewise.
485         (gimple_omp_task_child_fn): Likewise.
486         (gimple_omp_task_child_fn_ptr): Likewise.
487         (gimple_omp_task_set_child_fn): Likewise.
488         (gimple_omp_task_data_arg): Likewise.
489         (gimple_omp_task_data_arg_ptr): Likewise.
490         (gimple_omp_task_set_data_arg): Likewise.
491         (gimple_omp_task_copy_fn): Likewise.
492         (gimple_omp_task_copy_fn_ptr): Likewise.
493         (gimple_omp_task_set_copy_fn): Likewise.
494         (gimple_omp_task_arg_size): Likewise.
495         (gimple_omp_task_arg_size_ptr): Likewise.
496         (gimple_omp_task_set_arg_size): Likewise.
497         (gimple_omp_task_arg_align): Likewise.
498         (gimple_omp_task_arg_align_ptr): Likewise.
499         (gimple_omp_task_set_arg_align): Likewise.
500         (gimple_omp_parallel_set_clauses): Likewise.
501         (gimple_omp_parallel_set_child_fn): Likewise.
502         (gimple_build_omp_for): Likewise.
503         (gimple_omp_parallel_clauses_ptr): Likewise.
504         (gimple_omp_parallel_child_fn): Likewise.
505         (gimple_omp_parallel_child_fn_ptr): Likewise.
506         (gimple_omp_parallel_data_arg): Likewise.
507         (gimple_omp_parallel_data_arg_ptr): Likewise.
508         (gimple_omp_parallel_clauses): Likewise.
509         (gimple_build_omp_critical): Likewise.
510         (gimple_omp_for_kind): Likewise.
511         (gimple_omp_for_combined_p): Likewise.
512         (gimple_omp_for_combined_into_p): Likewise.
513         (gimple_omp_for_clauses): Likewise.
514         (gimple_omp_for_clauses_ptr): Likewise.
515         (gimple_omp_for_set_clauses): Likewise.
516         (gimple_omp_for_collapse): Likewise.
517         (gimple_omp_for_index): Likewise.
518         (gimple_omp_for_index_ptr): Likewise.
519         (gimple_omp_for_set_index): Likewise.
520         (gimple_omp_for_initial): Likewise.
521         (gimple_omp_for_initial_ptr): Likewise.
522         (gimple_omp_for_set_initial): Likewise.
523         (gimple_omp_for_final): Likewise.
524         (gimple_omp_for_final_ptr): Likewise.
525         (gimple_omp_for_set_final): Likewise.
526         (gimple_omp_for_incr): Likewise.
527         (gimple_omp_for_incr_ptr): Likewise.
528         (gimple_omp_for_set_incr): Likewise.
529         (gimple_omp_for_pre_body_ptr): Likewise.
530         (gimple_omp_for_set_pre_body): Likewise.
531         (gimple_omp_for_set_cond): Likewise.
532         (gimple_omp_set_body): Likewise.
533         (gimple_build_debug_source_bind_stat): Likewise.
534         (gimple_omp_critical_name): Likewise.
535         (gimple_omp_critical_name_ptr): Likewise.
536         (gimple_omp_atomic_load_rhs_ptr): Likewise.
537         (gimple_omp_continue_set_control_def): Likewise.
538         (gimple_build_omp_taskgroup): Likewise.
539         (gimple_omp_continue_control_def): Likewise.
540         (gimple_omp_continue_control_def_ptr): Likewise.
541         (gimple_omp_continue_control_use): Likewise.
542         (gimple_omp_continue_control_use_ptr): Likewise.
543         (gimple_omp_atomic_store_set_val): Likewise.
544         (gimple_build_omp_atomic_load): Likewise.
545         (gimple_omp_for_cond): Likewise.
546         (gimple_omp_atomic_store_val): Likewise.
547         (gimple_omp_atomic_load_set_lhs): Likewise.
548         (gimple_omp_atomic_load_set_rhs): Likewise.
549         (gimple_build_omp_teams): Likewise.
550         (gimple_omp_atomic_store_val_ptr): Likewise.
551         (gimple_omp_atomic_load_lhs): Likewise.
552         (gimple_omp_atomic_load_lhs_ptr): Likewise.
553         (gimple_omp_atomic_load_rhs): Likewise.
554         (gimple_try_kind): Likewise.
555         (gimple_try_cleanup): Likewise.
556         (gimple_try_set_catch_is_cleanup): Likewise.
557         (gimple_try_set_eval): Likewise.
558         (gimple_build_eh_else): Likewise.
559         (gimple_try_eval_ptr): Likewise.
560         (gimple_try_cleanup_ptr): Likewise.
561         (gimple_phi_capacity): Likewise.
562         (gimple_phi_num_args): Likewise.
563         (gimple_phi_result): Likewise.
564         (gimple_phi_result_ptr): Likewise.
565         (gimple_phi_arg): Likewise.
566         (gimple_phi_arg_def): Likewise.
567         (gimple_phi_arg_def_ptr): Likewise.
568         (gimple_phi_arg_edge): Likewise.
569         (gimple_phi_arg_location): Likewise.
570         (gimple_phi_arg_location_from_edge): Likewise.
571         (gimple_phi_arg_set_location): Likewise.
572         (gimple_resx_set_region): Likewise.
573         (gimple_build_switch): Likewise.
574         (gimple_eh_dispatch_region): Likewise.
575         (gimple_phi_arg_has_location): Likewise.
576         (gimple_build_wce): Likewise.
577         (gimple_resx_region): Likewise.
578         (gimple_build_eh_must_not_throw): Likewise.
579         (gimple_eh_must_not_throw_set_fndecl): Likewise.
580         (gimple_eh_else_n_body_ptr): Likewise.
581         (gimple_eh_else_n_body): Likewise.
582         (gimple_eh_else_e_body_ptr): Likewise.
583         (gimple_eh_else_e_body): Likewise.
584         (gimple_eh_else_set_n_body): Likewise.
585         (gimple_build_eh_filter): Likewise.
586         (gimple_eh_filter_set_failure): Likewise.
587         (gimple_eh_must_not_throw_fndecl): Likewise.
588         (gimple_build_catch): Likewise.
589         (gimple_eh_filter_failure): Likewise.
590         (gimple_eh_filter_set_types): Likewise.
591         (gimple_eh_filter_types): Likewise.
592         (gimple_eh_filter_types_ptr): Likewise.
593         (gimple_eh_filter_failure_ptr): Likewise.
594         (gimple_asm_input_p): Likewise.
595         (gimple_build_asm_vec): Likewise.
596         (gimple_catch_types): Likewise.
597         (gimple_catch_types_ptr): Likewise.
598         (gimple_catch_handler_ptr): Likewise.
599         (gimple_catch_handler): Likewise.
600         (gimple_catch_set_types): Likewise.
601         (gimple_statement_catch): Likewise.
602         (gimple_goto_set_dest): Likewise.
603         (gimple_bind_add_seq): Likewise.
604         (gimple_build_nop): Likewise.
605         (gimple_seq_first_stmt): Likewise.
606         (gimple_seq_first_stmt_as_a_bind): Likewise.
607         (gimple_bind_vars): Likewise.
608         (gimple_bind_set_vars): Likewise.
609         (gimple_bind_append_vars): Likewise.
610         (gimple_bind_body_ptr): Likewise.
611         (gimple_bind_body): Likewise.
612         (gimple_bind_set_body): Likewise.
613         (gimple_bind_add_stmt): Likewise.
614         (gimple_bind_block): Likewise.
615         (gimple_transaction_set_subcode): Likewise.
616         (gimple_return_retval_ptr): Likewise.
617         (gimple_alloc_stat): Likewise.
618         (gimple_return_retval): Likewise.
619         (gimple_transaction_body): Likewise.
620         (gimple_transaction_label_ptr): Likewise.
621         (gimple_build_omp_atomic_store): Likewise.
622         (gimple_omp_continue_set_control_use): Likewise.
623         (gimple_transaction_body_ptr): Likewise.
624         (gimple_transaction_label): Likewise.
625         (gimple_transaction_subcode): Likewise.
626         (gimple_transaction_set_body): Likewise.
627         (gimple_transaction_set_label): Likewise.
628         (gimple_call_arg_flags): Likewise.
629         (gimple_call_return_flags): Likewise.
630         (gimple_call_fndecl): Likewise.
631         (gimple_call_chain): Likewise.
632         (gimple_expr_type): Likewise.
633         (gimple_call_reset_alias_info): Likewise.
634         (gimple_build_call_vec): Likewise.
635         (gimple_build_call): Likewise.
636         (gimple_build_call_valist): Likewise.
637         (gimple_build_call_internal): Likewise.
638         (gimple_build_call_internal_vec): Likewise.
639         (canonicalize_cond_expr_cond): Likewise.
640         (gimple_call_copy_skip_args): Likewise.
641         (gimple_call_fn_ptr): Likewise.
642         (gimple_call_set_fndecl): Likewise.
643         (gimple_call_chain_ptr): Likewise.
644         (gimple_call_set_arg): Likewise.
645         (gimple_call_set_tail): Likewise.
646         (gimple_call_tail_p): Likewise.
647         (gimple_call_set_return_slot_opt): Likewise.
648         (gimple_call_return_slot_opt_p): Likewise.
649         (gimple_call_set_from_thunk): Likewise.
650         (gimple_call_from_thunk_p): Likewise.
651         (gimple_call_set_va_arg_pack): Likewise.
652         (gimple_call_noreturn_p): Likewise.
653         (gimple_call_set_nothrow): Likewise.
654         (gimple_call_nothrow_p): Likewise.
655         (gimple_call_set_alloca_for_var): Likewise.
656         (gimple_call_alloca_for_var_p): Likewise.
657         (gimple_call_copy_flags): Likewise.
658         (gimple_call_use_set): Likewise.
659         (gimple_statement_call): Likewise.
660         (gimple_call_internal_fn): Likewise.
661         (gimple_call_fntype): Likewise.
662         (gimple_asm_clobbers_memory_p): Likewise.
663         (gimple_bind_set_block): Likewise.
664         (gimple_asm_ninputs): Likewise.
665         (gimple_asm_noutputs): Likewise.
666         (gimple_asm_nclobbers): Likewise.
667         (gimple_asm_nlabels): Likewise.
668         (gimple_asm_input_op): Likewise.
669         (gimple_asm_set_input_op): Likewise.
670         (gimple_asm_output_op): Likewise.
671         (gimple_asm_set_output_op): Likewise.
672         (gimple_asm_set_clobber_op): Likewise.
673         (gimple_asm_set_label_op): Likewise.
674         (gimple_asm_string): Likewise.
675         (gimple_asm_set_input): Likewise.
676         (gimple_build_bind): Likewise.
677         (gimple_asm_input_op_ptr): Likewise.
678         (gimple_asm_output_op_ptr): Likewise.
679         (gimple_asm_clobber_op): Likewise.
680         (gimple_asm_label_op): Likewise.
681         (gimple_asm_volatile_p): Likewise.
682         (gimple_asm_set_volatile): Likewise.
683         (gimple_assign_set_rhs_with_ops): Likewise.
684         (gimple_build_call_from_tree): Likewise.
685         (gimple_build_assign_stat): Likewise.
686         (gimple_eh_dispatch_set_region): Likewise.
687         (gimple_switch_set_num_labels): Likewise.
688         (gimple_switch_index): Likewise.
689         (gimple_switch_set_index): Likewise.
690         (gimple_switch_set_label): Likewise.
691         (gimple_build_resx): Likewise.
692         (gimple_build_switch_nlabels): Likewise.
693         (gimple_switch_num_labels): Likewise.
694         (gimple_switch_index_ptr): Likewise.
695         (gimple_switch_label): Likewise.
696         (gimple_switch_default_label): Likewise.
697         (gimple_cond_set_condition): Likewise.
698         (gimple_label_label): Likewise.
699         (gimple_build_label): Likewise.
700         (gimple_goto_dest): Likewise.
701         (gimple_build_eh_dispatch): Likewise.
702         (gimple_build_debug_bind_stat): Likewise.
703         (gimple_cond_lhs): Likewise.
704         (gimple_cond_rhs): Likewise.
705         (gimple_cond_set_rhs): Likewise.
706         (gimple_cond_set_false_label): Likewise.
707         (gimple_cond_make_true): Likewise.
708         (gimple_cond_true_p): Likewise.
709         (gimple_build_assign_with_ops): Likewise.
710         (gimple_build_cond): Likewise.
711         (gimple_cond_set_condition_from_tree): Likewise.
712         (gimple_cond_code): Likewise.
713         (gimple_cond_lhs_ptr): Likewise.
714         (gimple_cond_rhs_ptr): Likewise.
715         (gimple_cond_true_label): Likewise.
716         (gimple_cond_set_true_label): Likewise.
717         (gimple_cond_false_label): Likewise.
718         (gimple_cond_make_false): Likewise.
719         (gimple_cond_false_p): Likewise.
720         (gimple_statement_cond): Likewise.
721         (is_a_helper <gimple_statement_cond *>): Likewise.
722         * gimplify-me.c (gimple_regimplify_operands): Likewise.
723         * gimplify.c (gimplify_omp_target_update): Likewise.
724         (gimplify_omp_for): Likewise.
725         (gimplify_omp_atomic): Likewise.
726         (gimplify_cleanup_point_expr): Likewise.
727         (struct gimplify_ctx): Likewise.
728         (pop_gimplify_context): Likewise.
729         (gimple_pop_bind_expr): Likewise.
730         (gimple_current_bind_expr): Likewise.
731         (declare_vars): Likewise.
732         (gimplify_one_sizepos): Likewise.
733         (gimplify_body): Likewise.
734         (gimplify_return_expr): Likewise.
735         (gimplify_transaction): Likewise.
736         (voidify_wrapper_expr): Likewise.
737         (gimplify_bind_expr): Likewise.
738         (gimplify_call_expr): Likewise.
739         (gimplify_modify_expr_to_memcpy): Likewise.
740         (gimplify_modify_expr_to_memset): Likewise.
741         (gimplify_modify_expr): Likewise.
742         (gimplify_expr): Likewise.
743         (gimplify_function_tree): Likewise.
744         (gimplify_asm_expr): Likewise.
745         (gimplify_init_constructor): Likewise.
746         (gimple_push_cleanup): Likewise.
747         (gimplify_switch_expr): Likewise.
748         (gimplify_case_label_expr): Likewise.
749         (gimplify_cond_expr): Likewise.
750         * gimplify.h (pop_gimplify_context): Likewise.
751         (gimple_current_bind_expr): Likewise.
752         (gimplify_one_sizepos): Likewise.
753         * graphite-scop-detection.c (limit_scops): Likewise.
754         (same_close_phi_node): Likewise.
755         (make_close_phi_nodes_unique): Likewise.
756         (canonicalize_loop_closed_ssa): Likewise.
757         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Likewise.
758         (simple_copy_phi_p): Likewise.
759         (gsi_for_phi_node): Likewise.
760         (rewrite_close_phi_out_of_ssa): Likewise.
761         (rewrite_cross_bb_scalar_deps): Likewise.
762         (rewrite_commutative_reductions_out_of_ssa_loop): Likewise.
763         (tree_int_to_gmp): Likewise.
764         (reduction_phi_p): Likewise.
765         (build_scop_drs): Likewise.
766         (rewrite_phi_out_of_ssa): Likewise.
767         (rewrite_degenerate_phi): Likewise.
768         (rewrite_reductions_out_of_ssa): Likewise.
769         (is_reduction_operation_p): Likewise.
770         (phi_contains_arg): Likewise.
771         (follow_ssa_with_commutative_ops): Likewise.
772         (detect_commutative_reduction_arg): Likewise.
773         (detect_commutative_reduction_assign): Likewise.
774         (follow_inital_value_to_phi): Likewise.
775         (edge_initial_value_for_loop_phi): Likewise.
776         (used_outside_reduction): Likewise.
777         (detect_commutative_reduction): Likewise.
778         (dr_indices_valid_in_loop): Likewise.
779         (translate_scalar_reduction_to_array): Likewise.
780         (scop_ivs_can_be_represented): Likewise.
781         (remove_simple_copy_phi): Likewise.
782         (remove_invariant_phi): Likewise.
783         (insert_out_of_ssa_copy): Likewise.
784         (translate_scalar_reduction_to_array_for_stmt): Likewise.
785         (create_pw_aff_from_tree): Likewise.
786         (add_conditions_to_domain): Likewise.
787         (add_conditions_to_constraints): Likewise.
788         (single_pred_cond_non_loop_exit): Likewise.
789         * gsstruct.def: Likewise.
790         * internal-fn.c (get_multi_vector_move): Likewise.
791         (expand_LOAD_LANES): Likewise.
792         (expand_STORE_LANES): Likewise.
793         (expand_ANNOTATE): Likewise.
794         (expand_GOMP_SIMD_LANE): Likewise.
795         (expand_GOMP_SIMD_VF): Likewise.
796         (expand_GOMP_SIMD_LAST_LANE): Likewise.
797         (expand_UBSAN_NULL): Likewise.
798         (expand_UBSAN_BOUNDS): Likewise.
799         (expand_UBSAN_OBJECT_SIZE): Likewise.
800         (expand_ASAN_CHECK): Likewise.
801         (ubsan_expand_si_overflow_addsub_check): Likewise.
802         (ubsan_expand_si_overflow_neg_check): Likewise.
803         (ubsan_expand_si_overflow_mul_check): Likewise.
804         (expand_UBSAN_CHECK_ADD): Likewise.
805         (expand_UBSAN_CHECK_SUB): Likewise.
806         (expand_UBSAN_CHECK_MUL): Likewise.
807         (expand_LOOP_VECTORIZED): Likewise.
808         (expand_MASK_LOAD): Likewise.
809         (expand_MASK_STORE): Likewise.
810         (expand_ABNORMAL_DISPATCHER): Likewise.
811         (expand_BUILTIN_EXPECT): Likewise.
812         * internal-fn.h (internal_fn_fnspec): Likewise.
813         * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
814         (phi_result_unknown_predicate): Likewise.
815         (set_switch_stmt_execution_predicate): Likewise.
816         * ipa-prop.c (param_type_may_change_p): Likewise.
817         (detect_type_change_from_memory_writes): Likewise.
818         (detect_type_change): Likewise.
819         (ipa_load_from_parm_agg): Likewise.
820         (get_ancestor_addr_info): Likewise.
821         (compute_complex_ancestor_jump_func): Likewise.
822         (build_agg_jump_func_from_list): Likewise.
823         (ipa_compute_jump_functions_for_edge): Likewise.
824         (ipa_is_ssa_with_stmt_def): Likewise.
825         (ipa_note_param_call): Likewise.
826         (ipa_analyze_indirect_call_uses): Likewise.
827         (ipa_analyze_virtual_call_uses): Likewise.
828         (ipa_analyze_stmt_uses): Likewise.
829         (ipa_modify_formal_parameters): Likewise.
830         (ipa_modify_call_arguments): Likewise.
831         * ipa-prop.h (ipa_get_agg_replacements_for_node): Likewise.
832         * ipa-pure-const.c (special_builtin_state): Likewise.
833         (check_stmt): Likewise.
834         * ipa-split.c (consider_split): Likewise.
835         (visit_bb): Likewise.
836         (find_return_bb): Likewise.
837         (find_retval): Likewise.
838         (split_function): Likewise.
839         (verify_non_ssa_vars): Likewise.
840         (check_forbidden_calls): Likewise.
841         * lto-streamer-in.c (fixup_call_stmt_edges_1): Likewise.
842         * lto-streamer-out.c (output_function): Likewise.
843         * omp-low.c (scan_omp_target): Likewise.
844         (scan_omp_single): Likewise.
845         (expand_omp_target): Likewise.
846         (scan_omp_sections): Likewise.
847         (lower_omp_single_simple): Likewise.
848         (scan_omp_for): Likewise.
849         (new_omp_context): Likewise.
850         (delete_omp_context): Likewise.
851         (scan_omp_task): Likewise.
852         (expand_cilk_for_call): Likewise.
853         (task_copyfn_remap_type): Likewise.
854         (gimple_build_cond_empty): Likewise.
855         (remove_exit_barrier): Likewise.
856         (expand_omp_taskreg): Likewise.
857         (expand_cilk_for): Likewise.
858         (struct omp_for_data): Likewise.
859         (is_combined_parallel): Likewise.
860         (workshare_safe_to_combine_p): Likewise.
861         (get_ws_args_for): Likewise.
862         (scan_omp_parallel): Likewise.
863         (finish_taskreg_scan): Likewise.
864         (expand_omp_for): Likewise.
865         (check_omp_nesting_restrictions): Likewise.
866         (expand_omp_sections): Likewise.
867         (expand_omp_atomic): Likewise.
868         (expand_parallel_call): Likewise.
869         (finalize_task_copyfn): Likewise.
870         (scan_omp_1_stmt): Likewise.
871         (lower_omp_sections): Likewise.
872         (lower_omp_single): Likewise.
873         (lower_omp_master): Likewise.
874         (lower_omp_critical): Likewise.
875         (lower_omp_for): Likewise.
876         (lower_omp_taskreg): Likewise.
877         (lower_omp_target): Likewise.
878         (lower_omp_teams): Likewise.
879         (ipa_simd_modify_function_body): Likewise.
880         (build_omp_barrier): Likewise.
881         (lower_omp_taskgroup): Likewise.
882         (lower_omp_ordered): Likewise.
883         (simd_clone_adjust): Likewise.
884         (lower_rec_input_clauses): Likewise.
885         (expand_omp_for_init_vars): Likewise.
886         (expand_omp_atomic_pipeline): Likewise.
887         (expand_omp_atomic_mutex): Likewise.
888         (diagnose_sb_1): Likewise.
889         (lower_lastprivate_clauses): Likewise.
890         (lower_send_shared_vars): Likewise.
891         (expand_omp_for_init_counts): Likewise.
892         (expand_omp_for_generic): Likewise.
893         (expand_omp_for_static_nochunk): Likewise.
894         (expand_omp_for_static_chunk): Likewise.
895         (expand_omp_simd): Likewise.
896         (lower_omp_1): Likewise.
897         (diagnose_sb_2): Likewise.
898         * predict.c (apply_return_prediction): Likewise.
899         (tree_estimate_probability_bb): Likewise.
900         (get_base_value): Likewise.
901         (predict_iv_comparison): Likewise.
902         (predict_extra_loop_exits): Likewise.
903         (predict_loops): Likewise.
904         * sese.c (sese_build_liveouts_bb): Likewise.
905         (sese_add_exit_phis_edge): Likewise.
906         (set_ifsese_condition): Likewise.
907         * ssa-iterators.h (for): Likewise.
908         (num_ssa_operands): Likewise.
909         (single_phi_def): Likewise.
910         (op_iter_init_phiuse): Likewise.
911         (link_use_stmts_after): Likewise.
912         (op_iter_init): Likewise.
913         * stmt.c (reset_out_edges_aux): Likewise.
914         (compute_cases_per_edge): Likewise.
915         * trans-mem.c (diagnose_tm_1): Likewise.
916         (lower_transaction): Likewise.
917         (tm_region_init): Likewise.
918         (generate_tm_state): Likewise.
919         (make_pass_lower_tm): Likewise.
920         (transaction_subcode_ior): Likewise.
921         (build_tm_load): Likewise.
922         (build_tm_store): Likewise.
923         (expand_transaction): Likewise.
924         (expand_block_edges): Likewise.
925         (dump_tm_memopt_transform): Likewise.
926         (tm_memopt_transform_blocks): Likewise.
927         (ipa_tm_insert_irr_call): Likewise.
928         (ipa_tm_transform_calls_redirect): Likewise.
929         (expand_call_tm): Likewise.
930         (ipa_tm_insert_gettmclone_call): Likewise.
931         * tree-call-cdce.c (check_target_format): Likewise.
932         (check_pow): Likewise.
933         (check_builtin_call): Likewise.
934         (gen_conditions_for_pow_int_base): Likewise.
935         (get_no_error_domain): Likewise.
936         (gen_shrink_wrap_conditions): Likewise.
937         (shrink_wrap_one_built_in_call): Likewise.
938         (shrink_wrap_conditional_dead_built_in_calls): Likewise.
939         (gen_one_condition): Likewise.
940         * tree-cfg.c (replace_uses_by): Likewise.
941         (reinstall_phi_args): Likewise.
942         (verify_gimple_in_cfg): Likewise.
943         (gimple_make_forwarder_block): Likewise.
944         (gimple_duplicate_bb): Likewise.
945         (add_phi_args_after_copy_edge): Likewise.
946         (gimple_duplicate_sese_tail): Likewise.
947         (gimple_lv_adjust_loop_header_phi): Likewise.
948         (move_stmt_r): Likewise.
949         (do_warn_unused_result): Likewise.
950         (verify_gimple_assign): Likewise.
951         (extract_true_false_edges_from_block): Likewise.
952         (verify_gimple_transaction): Likewise.
953         (verify_gimple_in_seq_2): Likewise.
954         (single_noncomplex_succ): Likewise.
955         (valid_fixed_convert_types_p): Likewise.
956         (make_gimple_asm_edges): Likewise.
957         (is_ctrl_altering_stmt): Likewise.
958         (need_fake_edge_p): Likewise.
959         (verify_gimple_comparison): Likewise.
960         (verify_gimple_assign_unary): Likewise.
961         (verify_gimple_assign_binary): Likewise.
962         (verify_gimple_assign_ternary): Likewise.
963         (verify_gimple_assign_single): Likewise.
964         (make_gimple_switch_edges): Likewise.
965         (find_case_label_for_value): Likewise.
966         (end_recording_case_labels): Likewise.
967         (get_cases_for_edge): Likewise.
968         (group_case_labels): Likewise.
969         (find_taken_edge): Likewise.
970         (find_taken_edge_cond_expr): Likewise.
971         (find_taken_edge_switch_expr): Likewise.
972         (verify_gimple_goto): Likewise.
973         (gimple_redirect_edge_and_branch): Likewise.
974         (make_edges): Likewise.
975         (gimple_can_merge_blocks_p): Likewise.
976         (gimple_merge_blocks): Likewise.
977         (remove_bb): Likewise.
978         (stmt_starts_bb_p): Likewise.
979         (verify_gimple_debug): Likewise.
980         (gimple_verify_flow_info): Likewise.
981         (gimple_block_label): Likewise.
982         (move_block_to_fn): Likewise.
983         (verify_gimple_return): Likewise.
984         (fold_cond_expr_cond): Likewise.
985         (make_cond_expr_edges): Likewise.
986         (cleanup_dead_labels): Likewise.
987         (verify_gimple_label): Likewise.
988         (verify_gimple_stmt): Likewise.
989         * tree-cfg.h (notice_special_calls): Likewise.
990         (group_case_labels_stmt): Likewise.
991         * tree-cfgcleanup.c (phi_alternatives_equal): Likewise.
992         (cleanup_control_expr_graph): Likewise.
993         (tree_forwarder_block_p): Likewise.
994         (remove_forwarder_block): Likewise.
995         (remove_forwarder_block_with_phi): Likewise.
996         * tree-complex.c (init_dont_simulate_again): Likewise.
997         (complex_visit_stmt): Likewise.
998         (update_phi_components): Likewise.
999         (expand_complex_move): Likewise.
1000         (expand_complex_libcall): Likewise.
1001         (expand_complex_asm): Likewise.
1002         (expand_complex_comparison): Likewise.
1003         * tree-data-ref.c (get_references_in_stmt): Likewise.
1004         * tree-dfa.c (collect_dfa_stats): Likewise.
1005         (dump_dfa_stats): Likewise.
1006         * tree-eh.c (lookup_stmt_eh_lp): Likewise.
1007         (record_in_finally_tree): Likewise.
1008         (collect_finally_tree_1): Likewise.
1009         (outside_finally_tree): Likewise.
1010         (eh_region_may_contain_throw): Likewise.
1011         (lower_try_finally_dup_block): Likewise.
1012         (cleanup_is_dead_in): Likewise.
1013         (lower_try_finally): Likewise.
1014         (lower_eh_filter): Likewise.
1015         (same_handler_p): Likewise.
1016         (cleanup_empty_eh_merge_phis): Likewise.
1017         (emit_eh_dispatch): Likewise.
1018         (make_pass_lower_eh): Likewise.
1019         (redirect_eh_edge): Likewise.
1020         (sink_clobbers): Likewise.
1021         (lower_eh_dispatch): Likewise.
1022         (verify_eh_edges): Likewise.
1023         (emit_resx): Likewise.
1024         (make_pass_refactor_eh): Likewise.
1025         (lower_resx): Likewise.
1026         (mark_reachable_handlers): Likewise.
1027         (lower_try_finally_fallthru_label): Likewise.
1028         (get_eh_else): Likewise.
1029         (lower_try_finally_nofallthru): Likewise.
1030         (lower_try_finally_copy): Likewise.
1031         (lower_try_finally_switch): Likewise.
1032         (decide_copy_try_finally): Likewise.
1033         (honor_protect_cleanup_actions): Likewise.
1034         (lower_eh_must_not_throw): Likewise.
1035         (replace_goto_queue_1): Likewise.
1036         (lower_catch): Likewise.
1037         (refactor_eh_r): Likewise.
1038         (stmt_could_throw_p): Likewise.
1039         (lower_eh_constructs_2): Likewise.
1040         (collect_finally_tree): Likewise.
1041         (emit_post_landing_pad): Likewise.
1042         (lower_try_finally_onedest): Likewise.
1043         (unsplit_eh): Likewise.
1044         (cleanup_empty_eh_unsplit): Likewise.
1045         (do_goto_redirection): Likewise.
1046         (maybe_record_in_goto_queue): Likewise.
1047         * tree-eh.h (make_eh_dispatch_edges): Likewise.
1048         (redirect_eh_dispatch_edge): Likewise.
1049         (verify_eh_dispatch_edge): Likewise.
1050         * tree-emutls.c (lower_emutls_function_body): Likewise.
1051         (lower_emutls_stmt): Likewise.
1052         (gen_emutls_addr): Likewise.
1053         * tree-if-conv.c (if_convertible_loop_p_1): Likewise.
1054         (bb_with_exit_edge_p): Likewise.
1055         (convert_scalar_cond_reduction): Likewise.
1056         (predicate_all_scalar_phis): Likewise.
1057         * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
1058         (copy_phis_for_bb): Likewise.
1059         (copy_edges_for_bb): Likewise.
1060         (remap_gimple_seq): Likewise.
1061         (replace_locals_stmt): Likewise.
1062         (copy_bb): Likewise.
1063         (inline_forbidden_p_stmt): Likewise.
1064         (expand_call_inline): Likewise.
1065         (estimate_num_insns): Likewise.
1066         (mark_local_labels_stmt): Likewise.
1067         (remap_gimple_stmt): Likewise.
1068         (maybe_move_debug_stmts_to_successors): Likewise.
1069         (copy_cfg_body): Likewise.
1070         (copy_debug_stmts): Likewise.
1071         * tree-inline.h (void): Likewise.
1072         * tree-into-ssa.c (node): Likewise.
1073         (find_def_blocks_for): Likewise.
1074         (mark_phi_for_rewrite): Likewise.
1075         (insert_phi_nodes_for): Likewise.
1076         (rewrite_add_phi_arguments): Likewise.
1077         (rewrite_update_phi_arguments): Likewise.
1078         (mark_use_interesting): Likewise.
1079         (prepare_block_for_update): Likewise.
1080         (prepare_use_sites_for): Likewise.
1081         (delete_update_ssa): Likewise.
1082         (mark_virtual_operand_for_renaming): Likewise.
1083         * tree-into-ssa.h (mark_virtual_phi_result_for_renaming): Likewise.
1084         * tree-loop-distribution.c (stmts_from_loop): Likewise.
1085         (destroy_loop): Likewise.
1086         (distribute_loop): Likewise.
1087         (generate_loops_for_partition): Likewise.
1088         * tree-nested.c (walk_function): Likewise.
1089         (convert_nonlocal_reference_stmt): Likewise.
1090         (convert_local_reference_stmt): Likewise.
1091         (finalize_nesting_tree_1): Likewise.
1092         (get_chain_field): Likewise.
1093         (convert_nl_goto_reference): Likewise.
1094         (convert_tramp_reference_op): Likewise.
1095         (convert_gimple_call): Likewise.
1096         (convert_nl_goto_receiver): Likewise.
1097         * tree-nrv.c (finalize_nrv_r): Likewise.
1098         (make_pass_nrv): Likewise.
1099         (dest_safe_for_nrv_p): Likewise.
1100         * tree-object-size.c (pass_through_call): Likewise.
1101         (addr_object_size): Likewise.
1102         (alloc_object_size): Likewise.
1103         (expr_object_size): Likewise.
1104         (collect_object_sizes_for): Likewise.
1105         (check_for_plus_in_loops_1): Likewise.
1106         (fini_object_sizes): Likewise.
1107         * tree-outof-ssa.c (eliminate_build): Likewise.
1108         (eliminate_phi): Likewise.
1109         (remove_gimple_phi_args): Likewise.
1110         (eliminate_useless_phis): Likewise.
1111         (rewrite_trees): Likewise.
1112         (insert_backedge_copies): Likewise.
1113         * tree-parloops.c (printf): Likewise.
1114         (create_phi_for_local_result): Likewise.
1115         (loop_has_vector_phi_nodes): Likewise.
1116         (gather_scalar_reductions): Likewise.
1117         (try_create_reduction_list): Likewise.
1118         (take_address_of): Likewise.
1119         (transform_to_exit_first_loop): Likewise.
1120         (create_parallel_loop): Likewise.
1121         * tree-phinodes.c (remove_phi_args): Likewise.
1122         (phinodes_print_statistics): Likewise.
1123         (release_phi_node): Likewise.
1124         (reserve_phi_args_for_new_edge): Likewise.
1125         (add_phi_node_to_bb): Likewise.
1126         (create_phi_node): Likewise.
1127         (add_phi_arg): Likewise.
1128         (remove_phi_nodes): Likewise.
1129         (allocate_phi_node): Likewise.
1130         (ideal_phi_node_len): Likewise.
1131         (make_phi_node): Likewise.
1132         (resize_phi_node): Likewise.
1133         * tree-phinodes.h (add_phi_node_to_bb): Likewise.
1134         (add_phi_arg): Likewise.
1135         (degenerate_phi_result): Likewise.
1136         * tree-predcom.c (valid_initializer_p): Likewise.
1137         (find_looparound_phi): Likewise.
1138         (add_looparound_copies): Likewise.
1139         (initialize_root_vars): Likewise.
1140         (eliminate_temp_copies): Likewise.
1141         (replace_ref_with): Likewise.
1142         (initialize_root_vars_lm): Likewise.
1143         (reassociate_to_the_same_stmt): Likewise.
1144         * tree-profile.c (gimple_gen_interval_profiler): Likewise.
1145         (gimple_gen_pow2_profiler): Likewise.
1146         (gimple_gen_one_value_profiler): Likewise.
1147         (gimple_gen_time_profiler): Likewise.
1148         (gimple_gen_average_profiler): Likewise.
1149         (gimple_gen_ior_profiler): Likewise.
1150         (gimple_gen_edge_profiler): Likewise.
1151         (gimple_gen_ic_profiler): Likewise.
1152         (gimple_gen_ic_func_profiler): Likewise.
1153         * tree-scalar-evolution.c (follow_ssa_edge_binary): Likewise.
1154         (follow_ssa_edge_expr): Likewise.
1155         (follow_ssa_edge_in_rhs): Likewise.
1156         (backedge_phi_arg_p): Likewise.
1157         (follow_ssa_edge_in_condition_phi_branch): Likewise.
1158         (follow_ssa_edge_in_condition_phi): Likewise.
1159         (follow_ssa_edge_inner_loop_phi): Likewise.
1160         (follow_ssa_edge): Likewise.
1161         (simplify_peeled_chrec): Likewise.
1162         (analyze_evolution_in_loop): Likewise.
1163         (analyze_initial_condition): Likewise.
1164         (interpret_loop_phi): Likewise.
1165         (analyze_scalar_evolution_1): Likewise.
1166         (loop_closed_phi_def): Likewise.
1167         (scev_const_prop): Likewise.
1168         (add_to_evolution): Likewise.
1169         (get_loop_exit_condition): Likewise.
1170         * tree-scalar-evolution.h (number_of_latch_executions): Likewise.
1171         * tree-sra.c (replace_removed_params_ssa_names): Likewise.
1172         (convert_callers): Likewise.
1173         (scan_function): Likewise.
1174         (sra_modify_function_body): Likewise.
1175         (ipa_sra_modify_function_body): Likewise.
1176         (build_ref_for_offset): Likewise.
1177         (generate_subtree_copies): Likewise.
1178         (init_subtree_with_zero): Likewise.
1179         (sra_modify_expr): Likewise.
1180         (load_assign_lhs_subreplacements): Likewise.
1181         (sra_modify_assign): Likewise.
1182         (sra_ipa_reset_debug_stmts): Likewise.
1183         * tree-ssa-alias.c (refs_output_dependent_p): Likewise.
1184         (ref_maybe_used_by_call_p_1): Likewise.
1185         (ref_maybe_used_by_stmt_p): Likewise.
1186         (call_may_clobber_ref_p_1): Likewise.
1187         (stmt_may_clobber_ref_p_1): Likewise.
1188         * tree-ssa-alias.h (call_may_clobber_ref_p): Likewise.
1189         (call_may_clobber_ref_p_1): Likewise.
1190         * tree-ssa-ccp.c (ccp_initialize): Likewise.
1191         (ccp_lattice_meet): Likewise.
1192         (insert_clobber_before_stack_restore): Likewise.
1193         (ccp_fold): Likewise.
1194         (evaluate_stmt): Likewise.
1195         (ccp_fold_stmt): Likewise.
1196         (optimize_unreachable): Likewise.
1197         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
1198         (coalesce_partitions): Likewise.
1199         (create_outofssa_var_map): Likewise.
1200         * tree-ssa-copy.c (copy_prop_visit_stmt): Likewise.
1201         (init_copy_prop): Likewise.
1202         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise.
1203         * tree-ssa-dce.c (remove_dead_phis): Likewise.
1204         (forward_edge_to_pdom): Likewise.
1205         (eliminate_unnecessary_stmts): Likewise.
1206         (propagate_necessity): Likewise.
1207         (remove_dead_stmt): Likewise.
1208         * tree-ssa-dom.c (record_equivalences_from_phis): Likewise.
1209         (cprop_into_successor_phis): Likewise.
1210         (get_rhs_or_phi_arg): Likewise.
1211         (eliminate_degenerate_phis_1): Likewise.
1212         (struct hashable_expr): Likewise.
1213         (add_hashable_expr): Likewise.
1214         (print_expr_hash_elt): Likewise.
1215         (record_equivalences_from_stmt): Likewise.
1216         (initialize_hash_element): Likewise.
1217         (record_edge_info): Likewise.
1218         (eliminate_redundant_computations): Likewise.
1219         (propagate_rhs_into_lhs): Likewise.
1220         (free_all_edge_infos): Likewise.
1221         (make_pass_dominator): Likewise.
1222         (optimize_stmt): Likewise.
1223         * tree-ssa-forwprop.c (remove_prop_source_from_use): Likewise.
1224         (simplify_bitwise_binary): Likewise.
1225         (simplify_rotate): Likewise.
1226         (simplify_not_neg_expr): Likewise.
1227         (simplify_gimple_switch_label_vec): Likewise.
1228         (forward_propagate_into_comparison): Likewise.
1229         (simplify_mult): Likewise.
1230         * tree-ssa-ifcombine.c (same_phi_args_p): Likewise.
1231         (get_name_for_bit_test): Likewise.
1232         (recognize_single_bit_test): Likewise.
1233         (ifcombine_ifandif): Likewise.
1234         * tree-ssa-live.c (remove_unused_locals): Likewise.
1235         (set_var_live_on_entry): Likewise.
1236         (calculate_live_on_exit): Likewise.
1237         (verify_live_on_entry): Likewise.
1238         * tree-ssa-loop-im.c (mem_ref_in_stmt): Likewise.
1239         (determine_max_movement): Likewise.
1240         (execute_sm_if_changed): Likewise.
1241         (rewrite_reciprocal): Likewise.
1242         (execute_sm): Likewise.
1243         (rewrite_bittest): Likewise.
1244         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling):
1245         Likewise.
1246         (unloop_loops): Likewise.
1247         (tree_estimate_loop_size): Likewise.
1248         (create_canonical_iv): Likewise.
1249         (remove_exits_and_undefined_stmts): Likewise.
1250         (remove_redundant_iv_tests): Likewise.
1251         (try_unroll_loop_completely): Likewise.
1252         * tree-ssa-loop-ivopts.c (get_iv): Likewise.
1253         (find_bivs): Likewise.
1254         (mark_bivs): Likewise.
1255         (find_interesting_uses_outside): Likewise.
1256         (determine_set_costs): Likewise.
1257         (rewrite_use_nonlinear_expr): Likewise.
1258         (remove_unused_ivs): Likewise.
1259         (extract_cond_operands): Likewise.
1260         (rewrite_use_compare): Likewise.
1261         * tree-ssa-loop-manip.c (tree_unroll_loop): Likewise.
1262         (rewrite_all_phi_nodes_with_iv): Likewise.
1263         (add_exit_phi): Likewise.
1264         (find_uses_to_rename_bb): Likewise.
1265         (verify_loop_closed_ssa): Likewise.
1266         (split_loop_exit_edge): Likewise.
1267         (create_iv): Likewise.
1268         (rewrite_phi_with_iv): Likewise.
1269         (tree_transform_and_unroll_loop): Likewise.
1270         (canonicalize_loop_ivs): Likewise.
1271         * tree-ssa-loop-niter.c (determine_value_range): Likewise.
1272         (finite_loop_p): Likewise.
1273         (chain_of_csts_start): Likewise.
1274         (get_base_for): Likewise.
1275         (loop_niter_by_eval): Likewise.
1276         (number_of_iterations_exit): Likewise.
1277         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Likewise.
1278         (emit_mfence_after_loop): Likewise.
1279         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Likewise.
1280         (tree_unswitch_single_loop): Likewise.
1281         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Likewise.
1282         (build_and_insert_call): Likewise.
1283         (insert_reciprocals): Likewise.
1284         (powi_as_mults_1): Likewise.
1285         (powi_as_mults): Likewise.
1286         (build_and_insert_binop): Likewise.
1287         (build_and_insert_cast): Likewise.
1288         (gimple_expand_builtin_cabs): Likewise.
1289         (convert_mult_to_fma): Likewise.
1290         * tree-ssa-operands.c (get_tmr_operands): Likewise.
1291         (maybe_add_call_vops): Likewise.
1292         (parse_ssa_operands): Likewise.
1293         * tree-ssa-phiopt.c (tree_ssa_cs_elim): Likewise.
1294         (single_non_singleton_phi_for_edges): Likewise.
1295         (tree_ssa_phiopt_worker): Likewise.
1296         (replace_phi_edge_with_variable): Likewise.
1297         (hoist_adjacent_loads): Likewise.
1298         (conditional_replacement): Likewise.
1299         (abs_replacement): Likewise.
1300         (cond_store_replacement): Likewise.
1301         (cond_if_else_store_replacement_1): Likewise.
1302         (minmax_replacement): Likewise.
1303         * tree-ssa-phiprop.c (propagate_with_phi): Likewise.
1304         (phivn_valid_p): Likewise.
1305         (phiprop_insert_phi): Likewise.
1306         * tree-ssa-pre.c (insert_into_preds_of_block): Likewise.
1307         (compute_avail): Likewise.
1308         (create_expression_by_pieces): Likewise.
1309         (do_regular_insertion): Likewise.
1310         (eliminate_insert): Likewise.
1311         * tree-ssa-propagate.c (simulate_stmt): Likewise.
1312         (replace_uses_in): Likewise.
1313         (replace_phi_args_in): Likewise.
1314         (update_gimple_call): Likewise.
1315         (update_call_from_tree): Likewise.
1316         (may_propagate_copy_into_stmt): Likewise.
1317         (propagate_tree_value_into_stmt): Likewise.
1318         * tree-ssa-propagate.h (prop_simulate_again_p): Likewise.
1319         * tree-ssa-reassoc.c (suitable_cond_bb): Likewise.
1320         (is_phi_for_stmt): Likewise.
1321         (build_and_add_sum): Likewise.
1322         (update_ops): Likewise.
1323         (get_reassociation_width): Likewise.
1324         (reassociate_bb): Likewise.
1325         (maybe_optimize_range_tests): Likewise.
1326         * tree-ssa-sccvn.c (DFS): Likewise.
1327         (ao_ref_init_from_vn_reference): Likewise.
1328         (valueize_shared_reference_ops_from_ref): Likewise.
1329         (vn_reference_lookup_3): Likewise.
1330         (vn_reference_lookup): Likewise.
1331         (visit_nary_op): Likewise.
1332         (simplify_binary_expression): Likewise.
1333         (simplify_unary_expression): Likewise.
1334         (visit_use): Likewise.
1335         (set_hashtable_value_ids): Likewise.
1336         * tree-ssa-sccvn.h (vn_constant_eq_with_type): Likewise.
1337         * tree-ssa-sink.c (find_bb_for_arg): Likewise.
1338         (nearest_common_dominator_of_uses): Likewise.
1339         (statement_sink_location): Likewise.
1340         * tree-ssa-strlen.c (do_invalidate): Likewise.
1341         * tree-ssa-structalias.c (new_var_info): Likewise.
1342         (get_call_vi): Likewise.
1343         (lookup_call_use_vi): Likewise.
1344         (lookup_call_clobber_vi): Likewise.
1345         (get_call_use_vi): Likewise.
1346         (get_function_part_constraint): Likewise.
1347         (handle_rhs_call): Likewise.
1348         (handle_lhs_call): Likewise.
1349         (handle_const_call): Likewise.
1350         (handle_pure_call): Likewise.
1351         (get_fi_for_callee): Likewise.
1352         (find_func_aliases_for_builtin_call): Likewise.
1353         (find_func_clobbers): Likewise.
1354         (compute_points_to_sets): Likewise.
1355         (ipa_pta_execute): Likewise.
1356         (find_func_aliases): Likewise.
1357         * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
1358         (release_last_vdef): Likewise.
1359         (same_phi_alternatives_1): Likewise.
1360         (find_clusters): Likewise.
1361         (vop_phi): Likewise.
1362         (replace_block_by): Likewise.
1363         * tree-ssa-ter.c (ter_is_replaceable_p): Likewise.
1364         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
1365         Likewise.
1366         (record_temporary_equivalences_from_stmts_at_dest): Likewise.
1367         (simplify_control_stmt_condition): Likewise.
1368         (dummy_simplify): Likewise.
1369         (propagate_threaded_block_debug_into): Likewise.
1370         (thread_around_empty_blocks): Likewise.
1371         (thread_through_normal_block): Likewise.
1372         * tree-ssa-threadedge.h (thread_across_edge): Likewise.
1373         * tree-ssa-threadupdate.c (copy_phi_arg_into_existing_phi): Likewise.
1374         (get_value_locus_in_path): Likewise.
1375         (copy_phi_args): Likewise.
1376         (phi_args_equal_on_edges): Likewise.
1377         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
1378         * tree-ssa-uninit.c (can_skip_redundant_opnd): Likewise.
1379         (find_predicates): Likewise.
1380         (collect_phi_def_edges): Likewise.
1381         (find_matching_predicate_in_rest_chains): Likewise.
1382         (prune_uninit_phi_opnds_in_unrealizable_paths): Likewise.
1383         (use_pred_not_overlap_with_undef_path_pred): Likewise.
1384         (normalize_preds): Likewise.
1385         (is_use_properly_guarded): Likewise.
1386         (find_uninit_use): Likewise.
1387         (gate_warn_uninitialized): Likewise.
1388         * tree-ssa.c (ssa_redirect_edge): Likewise.
1389         (flush_pending_stmts): Likewise.
1390         (verify_use): Likewise.
1391         (verify_ssa): Likewise.
1392         (execute_update_addresses_taken): Likewise.
1393         (insert_debug_temp_for_var_def): Likewise.
1394         * tree-stdarg.c (check_all_va_list_escapes): Likewise.
1395         * tree-switch-conversion.c (check_final_bb): Likewise.
1396         (build_constructors): Likewise.
1397         (build_arrays): Likewise.
1398         (gen_def_assigns): Likewise.
1399         (case_bit_test_cmp): Likewise.
1400         (emit_case_bit_tests): Likewise.
1401         (gather_default_values): Likewise.
1402         (constructor_contains_same_values_p): Likewise.
1403         (array_value_type): Likewise.
1404         (build_one_array): Likewise.
1405         (fix_phi_nodes): Likewise.
1406         (process_switch): Likewise.
1407         (hoist_edge_and_branch_if_true): Likewise.
1408         (gen_inbound_check): Likewise.
1409         * tree-tailcall.c (add_successor_phi_arg): Likewise.
1410         (propagate_through_phis): Likewise.
1411         (eliminate_tail_call): Likewise.
1412         (create_tailcall_accumulator): Likewise.
1413         (tree_optimize_tail_calls_1): Likewise.
1414         (adjust_return_value): Likewise.
1415         (optimize_tail_call): Likewise.
1416         (independent_of_stmt_p): Likewise.
1417         (find_tail_calls): Likewise.
1418         (adjust_return_value_with_ops): Likewise.
1419         (update_accumulator_with_ops): Likewise.
1420         * tree-vect-data-refs.c (bump_vector_ptr): Likewise.
1421         (vect_setup_realignment): Likewise.
1422         * tree-vect-generic.c (expand_vector_condition): Likewise.
1423         (optimize_vector_constructor): Likewise.
1424         (lower_vec_perm): Likewise.
1425         (expand_vector_operations_1): Likewise.
1426         * tree-vect-loop-manip.c (rename_variables_in_bb): Likewise.
1427         (vect_can_advance_ivs_p): Likewise.
1428         (slpeel_update_phi_nodes_for_guard1): Likewise.
1429         (slpeel_update_phi_nodes_for_guard2): Likewise.
1430         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1431         (slpeel_tree_peel_loop_to_edge): Likewise.
1432         (vect_update_ivs_after_vectorizer): Likewise.
1433         (vect_loop_versioning): Likewise.
1434         (slpeel_make_loop_iterate_ntimes): Likewise.
1435         (slpeel_add_loop_guard): Likewise.
1436         (slpeel_can_duplicate_loop_p): Likewise.
1437         (set_prologue_iterations): Likewise.
1438         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1439         (vect_analyze_scalar_cycles_1): Likewise.
1440         (vect_analyze_loop_operations): Likewise.
1441         (get_initial_def_for_induction): Likewise.
1442         (vectorizable_reduction): Likewise.
1443         (vect_transform_loop): Likewise.
1444         (vect_create_epilog_for_reduction): Likewise.
1445         (vect_analyze_scalar_cycles): Likewise.
1446         (vect_analyze_loop_form): Likewise.
1447         * tree-vect-patterns.c (vect_recog_pow_pattern): Likewise.
1448         * tree-vect-slp.c (vect_build_slp_tree_1): Likewise.
1449         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
1450         (vectorizable_load): Likewise.
1451         (vect_finish_stmt_generation): Likewise.
1452         (vectorizable_call): Likewise.
1453         (vectorizable_condition): Likewise.
1454         * tree-vectorizer.h (unlimited_cost_model): Likewise.
1455         * tree-vrp.c (find_assert_locations): Likewise.
1456         (vrp_initialize): Likewise.
1457         (vrp_meet): Likewise.
1458         (extract_range_from_unary_expr): Likewise.
1459         (extract_range_basic): Likewise.
1460         (build_assert_expr_for): Likewise.
1461         (vrp_visit_assignment_or_call): Likewise.
1462         (simplify_truth_ops_using_ranges): Likewise.
1463         (simplify_float_conversion_using_ranges): Likewise.
1464         (live_on_edge): Likewise.
1465         (compare_case_labels): Likewise.
1466         (vrp_visit_cond_stmt): Likewise.
1467         (find_case_label_index): Likewise.
1468         (find_case_label_range): Likewise.
1469         (find_case_label_ranges): Likewise.
1470         (simplify_cond_using_ranges): Likewise.
1471         (register_edge_assert_for): Likewise.
1472         (find_assert_locations_1): Likewise.
1473         (vrp_evaluate_conditional): Likewise.
1474         (vrp_visit_stmt): Likewise.
1475         (range_fits_type_p): Likewise.
1476         (simplify_stmt_using_ranges): Likewise.
1477         (fold_predicate_in): Likewise.
1478         (simplify_stmt_for_jump_threading): Likewise.
1479         (identify_jump_threads): Likewise.
1480         * tree.c (find_decls_types_in_node): Likewise.
1481         * ubsan.c (instrument_nonnull_return): Likewise.
1482         (instrument_mem_ref): Likewise.
1483         * value-prof.c (find_func_by_profile_id): Likewise.
1484         (check_ic_target): Likewise.
1485         (gimple_ic_transform): Likewise.
1486         (interesting_stringop_to_profile_p): Likewise.
1487         (gimple_stringops_transform): Likewise.
1488         (gimple_stringops_values_to_profile): Likewise.
1489         (gimple_value_profile_transformations): Likewise.
1490         (gimple_divmod_fixed_value_transform): Likewise.
1491         (gimple_mod_pow2_value_transform): Likewise.
1492         (gimple_mod_subtract_transform): Likewise.
1493         (gimple_divmod_fixed_value): Likewise.
1494         (gimple_mod_pow2): Likewise.
1495         (gimple_mod_subtract): Likewise.
1496         (gimple_ic): Likewise.
1497         (gimple_stringop_fixed_value): Likewise.
1498         * value-prof.h (stringop_block_profile): Likewise.
1499         (gimple_ic): Likewise.
1500         * vtable-verify.c (verify_bb_vtables): Likewise.
1502 2014-10-27  David Malcolm  <dmalcolm@redhat.com>
1504         * coretypes.h (gimple_cond): Drop this typedef.
1505         (const_gimple_cond): Likewise.
1506         (gimple_debug): Likewise.
1507         (const_gimple_debug): Likewise.
1508         (gimple_goto): Likewise.
1509         (const_gimple_goto): Likewise.
1510         (gimple_label): Likewise.
1511         (const_gimple_label): Likewise.
1512         (gimple_switch): Likewise.
1513         (const_gimple_switch): Likewise.
1514         (gimple_assign): Likewise.
1515         (const_gimple_assign): Likewise.
1516         (gimple_asm): Likewise.
1517         (const_gimple_asm): Likewise.
1518         (gimple_call): Likewise.
1519         (const_gimple_call): Likewise.
1520         (gimple_transaction): Likewise.
1521         (const_gimple_transaction): Likewise.
1522         (gimple_return): Likewise.
1523         (const_gimple_return): Likewise.
1524         (gimple_bind): Likewise.
1525         (const_gimple_bind): Likewise.
1526         (gimple_catch): Likewise.
1527         (const_gimple_catch): Likewise.
1528         (gimple_eh_filter): Likewise.
1529         (const_gimple_eh_filter): Likewise.
1530         (gimple_eh_must_not_throw;): Likewise.
1531         (const_gimple_eh_must_not_throw): Likewise.
1532         (gimple_eh_else): Likewise.
1533         (const_gimple_eh_else): Likewise.
1534         (gimple_resx): Likewise.
1535         (const_gimple_resx): Likewise.
1536         (gimple_eh_dispatch): Likewise.
1537         (const_gimple_eh_dispatch): Likewise.
1538         (gimple_phi): Likewise.
1539         (const_gimple_phi): Likewise.
1540         (gimple_try): Likewise.
1541         (const_gimple_try): Likewise.
1542         (gimple_omp_atomic_load): Likewise.
1543         (const_gimple_omp_atomic_load): Likewise.
1544         (gimple_omp_atomic_store): Likewise.
1545         (const_gimple_omp_atomic_store): Likewise.
1546         (gimple_omp_continue): Likewise.
1547         (const_gimple_omp_continue): Likewise.
1548         (gimple_omp_critical): Likewise.
1549         (const_gimple_omp_critical): Likewise.
1550         (gimple_omp_for): Likewise.
1551         (const_gimple_omp_for): Likewise.
1552         (gimple_omp_parallel): Likewise.
1553         (const_gimple_omp_parallel): Likewise.
1554         (gimple_omp_task): Likewise.
1555         (const_gimple_omp_task): Likewise.
1556         (gimple_omp_sections): Likewise.
1557         (const_gimple_omp_sections): Likewise.
1558         (gimple_omp_single): Likewise.
1559         (const_gimple_omp_single): Likewise.
1560         (gimple_omp_target): Likewise.
1561         (const_gimple_omp_target): Likewise.
1562         (gimple_omp_teams): Likewise.
1563         (const_gimple_omp_teams): Likewise.
1565 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1567         * tree-inline.h (struct copy_body_data): Rename field
1568         "gimple_call" to "call_stmt".
1570         * gimplify.c (gimplify_bind_expr): Rename local "gimple_bind" to
1571         "bind_stmt".
1572         (gimplify_switch_expr): Rename local "gimple_switch" to
1573         "switch_stmt".
1574         (gimplify_cond_expr): Rename local "gimple_cond" to "cond_stmt".
1575         * tree-eh.c (lower_catch): Rename local "gcatch" to "catch_stmt".
1576         * tree-inline.c (copy_bb): Update for renaming of field within
1577         struct copy_body_data from "gimple_call" to "call_stmt".
1578         (copy_cfg_body): Likewise.
1579         (copy_debug_stmt): Likewise.
1580         (expand_call_inline): Likewise.
1582 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1584         Convert various gimple to gimple_phi within ssa-iterators.h
1586         * ssa-iterators.h (FOR_EACH_PHI_OR_STMT_USE): Add checked cast to
1587         gimple_phi.
1588         (FOR_EACH_PHI_OR_STMT_DEF): Likewise.
1590         * ssa-iterators.h (single_phi_def): Require a gimple_phi.
1591         (op_iter_init_phiuse): Likewise.
1592         (op_iter_init_phidef): Likewise.
1593         * tree-ssa-loop-im.c (extract_true_false_args_from_phi): Likewise.
1595         * tree-ssa-loop-im.c (link_use_stmts_after): Replace check against
1596         GIMPLE_PHI with add a dyn_cast to gimple_phi, using result as needed.
1597         (determine_max_movement): Likewise.
1598         * tree-ssa-reassoc.c (is_phi_for_stmt): Likewise.
1599         * tree-ssa-sccvn.c (start_over:): Likewise.
1601         * tree-ssa-loop-im.c
1602         (move_computations_dom_walker::before_dom_children): Split iterator
1603         into gimple_stmt_iterator and a gimple_phi_iterator so that a local
1604         can become a gimple_phi.
1606 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1608         Use gimple_phi in many more places.
1610         * gimple-ssa-strength-reduction.c (slsr_process_phi): Require a
1611         gimple_phi.
1612         * ipa-inline-analysis.c (predicate_for_phi_result): Likewise.
1613         * tree-emutls.c (lower_emutls_phi_arg): Likewise.
1614         * tree-if-conv.c (predicate_scalar_phi): Likewise.
1615         * tree-into-ssa.c (mark_virtual_phi_result_for_renaming): Likewise.
1616         * tree-into-ssa.h (mark_virtual_phi_result_for_renaming): Likewise.
1617         * tree-phinodes.c (degenerate_phi_result): Likewise.
1618         * tree-phinodes.h (degenerate_phi_result): Likewise.
1619         * tree-ssa.c (verify_use): Likewise.
1620         * tree-switch-conversion.c (array_value_type): Likewise.
1622         * graphite-scop-detection.c (same_close_phi_node): Require a pair
1623         of gimple_phi.
1624         (remove_duplicate_close_phi): Require a gimple_phi and a
1625         gimple_phi_iterator.
1626         (make_close_phi_nodes_unique): Convert a local into a
1627         gimple_phi_iterator.
1629         * gimple-pretty-print.c (gimple_dump_bb_for_graph): Split iterator
1630         into gimple_stmt_iterator and gimple_phi_iterator, converting local
1631         from gimple to gimple_phi.
1632         * gimple-ssa-strength-reduction.c
1633         (find_candidates_dom_walker::before_dom_children): Likewise.
1634         * ipa-inline-analysis.c (estimate_function_body_sizes): Likewise.
1635         * ipa-split.c (verify_non_ssa_vars): Likewise.
1636         (visit_bb): Likewise.
1637         (split_function): Likewise.
1638         * lto-streamer-out.c (output_function): Likewise.
1639         * sese.c (sese_build_liveouts_bb): Likewise.
1640         * tree-cfg.c (gimple_can_merge_blocks_p): Likewise.
1641         * tree-complex.c (init_dont_simulate_again): Likewise.
1642         * tree-dfa.c (collect_dfa_stats): Likewise.
1643         * tree-eh.c (sink_clobbers): Likewise.
1644         * tree-emutls.c (lower_emutls_function_body): Likewise.
1645         * tree-into-ssa.c (rewrite_dom_walker::before_dom_children):
1646         Likewise.
1647         (rewrite_update_dom_walker::before_dom_children): Likewise.
1648         (prepare_block_for_update): Likewise.
1649         * tree-loop-distribution.c (stmts_from_loop): Likewise.
1650         (generate_loops_for_partition): Likewise.
1651         (destroy_loop): Likewise.
1652         (tree_loop_distribution): Likewise.
1653         * tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
1654         * tree-ssa-copy.c (init_copy_prop): Likewise.
1655         * tree-ssa-copyrename.c (rename_ssa_copies): Likewise.
1656         * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Likewise.
1657         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): Likewise.
1658         (verify_loop_closed_ssa): Likewise.
1659         * tree-ssa-math-opts.c (execute_cse_reciprocals): Likewise.
1660         * tree-ssa-pre.c (compute_avail): Likewise.
1661         (eliminate_dom_walker::before_dom_children): Likewise.
1662         * tree-ssa-strlen.c (strlen_dom_walker::before_dom_children): Likewise.
1663         * tree-ssa-structalias.c (compute_points_to_sets): Likewise.
1664         (ipa_pta_execute): Likewise.
1665         * tree-ssa-tail-merge.c (same_succ_hash): Likewise.
1666         (release_last_vdef): Likewise.
1667         * tree-ssa.c (verify_ssa): Likewise.
1668         (execute_update_addresses_taken): Likewise.
1669         * tree-stdarg.c (check_all_va_list_escapes): Likewise.
1670         (execute_optimize_stdarg): Likewise.
1671         * tree-switch-conversion.c (build_arrays): Likewise.
1672         * tree-vect-loop-manip.c (rename_variables_in_bb): Likewise.
1673         * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise.
1674         (vect_analyze_loop_operations): Likewise.
1675         (vect_transform_loop): Likewise.
1676         * tree-vrp.c (find_assert_locations_1): Likewise.
1677         (vrp_initialize): Likewise.
1679         * graphite-sese-to-poly.c (gsi_for_phi_node): Convert psi to a
1680         gimple_phi_iterator.
1681         (rewrite_degenerate_phi): Require a gimple_phi_iterator; strengthen
1682         local "phi" from gimple to gimple-phi.
1684         * ipa-split.c (consider_split): Convert local psi to a
1685         gimple_phi_iterator.
1686         * tree-cfg.c (gimple_merge_blocks): Likewise.
1688         * tree-eh.c (unsplit_eh): Replace reuse of gsi with a new
1689         gimple_phi_iterator gpi, using it to convert statement from gimple
1690         to a gimple_phi.
1691         (cleanup_empty_eh_merge_phis): Strengthen ophi from gimple to
1692         gimple_phi.
1693         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Replace reuse of
1694         gsi with a new gimple_phi_iterator gpi, using it to convert
1695         expressions from gimple to gimple_phi; add a checked cast to
1696         gimple_phi.
1698         * tree-if-conv.c (predicate_all_scalar_phis): Convert local phi_gsi
1699         to be a gimple_phi_iterator; convert "phi" to be a gimple_phi.
1700         * tree-parloops.c (loop_has_vector_phi_nodes): Convert local to be a
1701         gimple_phi_iterator.
1702         * tree-ssa-ccp.c (ccp_initialize): Likewise.
1704         * tree-scalar-evolution.c (analyze_initial_condition): Add checked cast
1705         to a gimple_phi.
1706         * tree-ssa.c (insert_debug_temp_for_var_def): Likewise.
1707         * tree-ssa-dom.c (get_rhs_or_phi_arg): Likewise.
1709 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1711         Use gimple_call in some places within tree-ssa-dom.c
1713         * tree-ssa-dom.c (struct hashable_expr): Strengthen field
1714         call.fn_from from gimple to gimple_call.
1715         (initialize_hash_element): Replace check against GIMPLE_CALL
1716         with dyn_cast<gimple_call> and update gimple_call_ uses to use
1717         new gimple_call local, along with fn_from initializer.
1718         (iterative_hash_hashable_expr): Strengthen type of local "fn_from"
1719         from gimple to gimple_call.
1720         (print_expr_hash_elt): Likewise.
1722 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1724         Concretize gimple_call_copy_flags and ipa_modify_call_arguments
1726         * gimple.h (gimple_call_copy_flags): Require gimple_calls.
1728         * ipa-prop.c (ipa_modify_call_arguments): Require a gimple_call.
1729         * ipa-prop.h (ipa_modify_call_arguments): Likewise.
1731         * tree-inline.c (copy_bb): Replace is_gimple_call with new local
1732         and call to dyn_cast<gimple_call>, updating gimple_call_ uses to
1733         use the type-checked local.
1735         * tree-sra.c (convert_callers): Replace check for GIMPLE_CALL with
1736         a dyn_cast.
1738 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1740         Concretize gimple_assign_nontemporal_move_p
1742         * gimple.h (gimple_assign_nontemporal_move_p): Require a
1743         const_gimple_assign rather than a const_gimple.
1745         * cfgexpand.c (expand_gimple_stmt_1): Add local assign_stmt and
1746         checked cast within "case GIMPLE_ASSIGN".
1748         * gimple-streamer-out.c (output_gimple_stmt): Add checked cast to
1749         gimple_assign.
1751 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1753         Concretize gimple_call_arg_flags
1755         * gimple.h (gimple_call_arg_flags): Require a const_gimple_call
1756         rather than a const_gimple.
1758         * gimple.c (gimple_call_fnspec): Likewise.
1759         (gimple_call_arg_flags): Likewise.
1761         * tree-inline.c (remap_gimple_stmt): Use a dyn_cast rather than a
1762         is_gimple_call and repeated checked casts.
1764 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1766         Concretize gimple_call_set_tail and gimple_call_tail_p
1768         * gimple.h (gimple_call_set_tail): Require a gimple_call.
1769         (gimple_call_tail_p): Likewise.
1771         * cfgexpand.c (expand_gimple_tailcall): Likewise.
1772         (expand_gimple_basic_block): Convert calls to is_gimple_call to a
1773         dyn_cast, introducing a new "call_stmt" local.
1775         * trans-mem.c (expand_block_edges): Likewise, for comparison against
1776         GIMPLE_CALL.
1778         * tree-inline.c (remap_gimple_stmt): Add checked casts to
1779         gimple_call in region guarded by is_gimple_call.
1781         * tree-tailcall.c (optimize_tail_call): Add checked cast to gimple_call
1782         for t->call_gsi.
1784 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1786         Concretize gimple_call_set_fntype
1788         * gimple-fold.c (gimple_fold_builtin_sprintf_chk): Strengthen
1789         local "stmt" from gimple to gimple_call.
1791         * gimple.h (gimple_call_set_fntype): Require a gimple_call.
1793         * omp-low.c (lower_omp_1): Add a new local gimple_call "call_stmt",
1794         from a checked cast to gimple_call within the "case GIMPLE_CALL",
1795         for the regions where "stmt" is not subsequently overwritten.
1797 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1799         Concretize gimple_call_set_fn
1801         * gimple.h (gimple_call_set_fn): Require a gimple_call.
1803         * trans-mem.c (dump_tm_memopt_transform): Likewise.
1804         (tm_memopt_transform_blocks): Add checked casts to gimple_call in
1805         suites guarded by is_tm_simple_{load|store}, which enforce that
1806         the statement must be a GIMPLE_CALL; use this when invoking
1807         dump_tm_memopt_transform.
1809 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1811         Tweak to gimplify_modify_expr
1813         * gimplify.c (gimplify_modify_expr): Introduce local "call_stmt".
1815 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1817         Concretize gimple_call_nothrow_p
1819         * gimple.h (gimple_call_nothrow_p): Require a gimple_call.
1821         * tree-eh.c (stmt_could_throw_p): Add checked cast to gimple_call.
1823         * tree-vect-slp.c (vect_build_slp_tree_1): Replace call to
1824         is_gimple_call with dyn_cast<gimple_call>, introducing a local.
1826 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1828         Concretize gimple_call_set_nothrow
1830         * gimple.h (gimple_call_set_nothrow): Require a gimple_call.
1832         * trans-mem.c (ipa_tm_insert_gettmclone_call): Likewise.
1833         (ipa_tm_transform_calls_redirect): Add checked cast to gimple call; this
1834         is only called for gsi on a GIMPLE_CALL statement.
1836 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1838         Concretize various expressions from gimple to gimple_cond
1840         * ipa-split.c (check_forbidden_calls): Replace check against
1841         GIMPLE_COND with a dyn_cast<gimple_cond>, introducing a
1842         gimple_cond local.
1843         * predict.c (predict_extra_loop_exits): Likewise.
1844         * tree-vrp.c (fold_predicate_in): Likewise.
1845         (simplify_stmt_for_jump_threading): Likewise.
1847         * predict.c (is_comparison_with_loop_invariant_p): Require a
1848         gimple_cond.
1849         (predict_iv_comparison): Add checked cast to gimple_cond once we
1850         know the code is GIMPLE_COND.
1851         (predict_loops): Change type of "stmt" to gimple_cond,
1852         adding checked casts to its assignments (which are both guarded by
1853         checks against GIMPLE_COND).
1855         * tree-vrp.c (find_conditional_asserts): Require a gimple_cond.
1856         (vrp_evaluate_conditional): Likewise.
1857         (find_assert_locations_1): Add checked cast to gimple_cond.
1858         (vrp_visit_stmt): Likewise.
1860 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1862         Concretize gimple_cond_{lhs|rhs}_ptr
1864         * gimple.h (gimple_cond_lhs_ptr): Require a const_gimple_cond
1865         rather than just a const_gimple_cond.
1866         (gimple_cond_rhs_ptr): Likewise.
1868         * gimplify-me.c (gimple_regimplify_operands): Add a checked cast
1869         to gimple_cond within "case GIMPLE_COND".
1870         * omp-low.c (lower_omp_1): Likewise.
1872         * omp-low.c (expand_omp_simd): Introduce a new local cond_stmt
1873         to express that the conditional is indeed a gimple_cond.
1875         * tree-ssa-loop-ivopts.c (extract_cond_operands): Add a checked
1876         cast to gimple_cond within a region where the code is known to
1877         be GIMPLE_COND.
1879 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1881         Concretize gimple_cond_set_{lhs|rhs}
1883         * gimple.h (gimple_cond_set_lhs): Require a gimple_cond.
1884         (gimple_cond_set_rhs): Likewise.
1886         * tree-parloops.c (transform_to_exit_first_loop): Convert locals
1887         "cond_stmt" and "cond_nit" to gimple_cond, adding checked casts,
1888         since the existing code assumes that code is GIMPLE_COND.  Convert
1889         "stmt" to a gimple_assign.
1890         (create_parallel_loop): Likewise for "cond_stmt".
1892         * tree-ssa-loop-im.c (rewrite_bittest): Replace check for code
1893         GIMPLE_COND with a dyn_cast, adding new local "cond_stmt".
1895 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1897         Concretize gimple_cond_set_code
1899         * gimple.h (gimple_cond_set_code): Require a gimple_cond.
1901         * tree-complex.c (expand_complex_comparison): Add a checked cast to
1902         gimple_cond within "case GIMPLE_COND".
1904         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Convert local "cond"
1905         to a gimple_cond, adding a checked cast.  The existing code requires
1906         that the last statement before the exit edge have code GIMPLE_COND,
1907         though it's not clear to me where this is verified.
1909         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Add a checked cast
1910         to gimple_cond on "use->stmt".
1912         * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Convert
1913         local "exit_if" to gimple_cond, adding a checked cast.  It's not
1914         clear to me exactly where the GIMPLE_COND-ness of this is
1915         established, but the existing code requires it.
1916         (canonicalize_loop_ivs): Similarly for "stmt".
1918         * tree-ssa-propagate.c (propagate_tree_value_into_stmt): Replace
1919         a check against GIMPLE_COND with a dyn_cast<gimple_cond>.
1921 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1923         Concretize gimple_cond_{true|false}_label
1925         * gimple.h (gimple_cond_true_label): Require a const_gimple_cond
1926         rather than just a const_gimple.
1927         (gimple_cond_false_label): Likewise.
1929         * omp-low.c (diagnose_sb_2): Add checked cast to gimple_cond within
1930         case GIMPLE_COND.
1931         * tree-eh.c (maybe_record_in_goto_queue): Likewise.
1933         * tree-cfg.c (verify_gimple_stmt): Add a checked cast to gimple_cond
1934         within "case GIMPLE_COND", splitting it out into...
1935         (verify_gimple_label): New.
1937 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1939         Concretize gimple_switch_index and gimple_switch_index_ptr
1941         * gimple.h (gimple_switch_index): Require a const_gimple_switch rather
1942         than a plain const_gimple.
1943         (gimple_switch_index_ptr): Likewise.
1945         * gimplify-me.c (gimple_regimplify_operands): Add checked cast to
1946         gimple_switch within "case GIMPLE_SWITCH".
1947         * tree-cfgcleanup.c (cleanup_control_expr_graph): Likewise.
1948         * tree-ssa-ccp.c (ccp_fold): Likewise.
1949         * tree-ssa-dom.c (optimize_stmt): Likewise.
1951         * tree-ssa-ccp.c (evaluate_stmt): Add checked cast to
1952         gimple_switch within region guarded by check for GIMPLE_SWITCH.
1953         * tree-ssa-dom.c (record_edge_info): Likewise.
1954         (eliminate_redundant_computations): Likewise.
1955         * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.
1956         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
1958         * tree-ssa-dom.c (initialize_hash_element): Replace check for
1959         code GIMPLE_SWITCH with a dyn_cast<gimple_switch>.
1960         (propagate_rhs_into_lhs): Likewise.
1961         * tree-ssa-propagate.c (may_propagate_copy_into_stmt): Likewise.
1962         (propagate_tree_value_into_stmt): Likewise.
1964 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
1966         Concretize gimple_cond_make_{false|true}
1968         * gimple.h (gimple_cond_make_false): Require a gimple_cond.
1969         (gimple_cond_make_true): Likewise.
1971         * tree-cfg.c (fold_cond_expr_cond): Add a checked cast to
1972         gimple_cond within region guarded by check for GIMPLE_COND.
1973         * tree-ssa-ccp.c (ccp_fold_stmt): Likewise.
1975         * tree-loop-distribution.c (generate_loops_for_partition): Replace
1976         a check for GIMPLE_COND with a dyn_cast<gimple_cond>.
1977         * tree-ssa-ccp.c (optimize_unreachable): Likewise.
1978         * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise.
1979         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
1980         Likewise.
1982         * tree-vrp.c (fold_predicate_in): Add a checked cast to
1983         gimple_cond.  We must be dealing with a GIMPLE_COND since logic
1984         at top of the function ensures we only act on GIMPLE_ASSIGN and
1985         GIMPLE_COND statements, and we're now within a "not a GIMPLE_ASSIGN"
1986         clause.
1988         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Add
1989         checked cast of elt->stmt to gimple_cond.  The existing code requires
1990         this to be a GIMPLE_COND, though it's not clear to me how this
1991         requirement is enforced.
1992         (remove_redundant_iv_tests): Likewise.
1993         (try_unroll_loop_completely): Likewise, for the last_stmt of the
1994         preceding bb along edge_to_cancel.
1995         * tree-ssa-reassoc.c (maybe_optimize_range_tests): Likewise, for the
1996         last_stmt of bb.
1998 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2000         Concretize locals within expand_omp_for_init_counts
2002         * omp-low.c (expand_omp_for_init_counts): Eliminate local "stmt"
2003         in favor of new locals "cond_stmt" and "assign_stmt" with more
2004         concrete types.
2006 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2008         Make gimple_cond_set_{true|false}_label require gimple_cond.
2010         * gimple.h (gimple_cond_set_true_label): Require a gimple_cond.
2011         (gimple_cond_set_false_label): Likewise.
2013         * tree-cfg.c (make_cond_expr_edges): Convert "entry" from gimple to
2014         a gimple_cond.
2015         (cleanup_dead_labels): Introduce a checked cast to a gimple_cond within
2016         the GIMPLE_COND case.
2018 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2020         Concretize three gimple_return_ accessors
2022         * gimple.h (gimple_return_retval_ptr): Require a const_gimple_return
2023         rather than a const_gimple.
2024         (gimple_return_retval): Likewise.
2025         (gimple_return_set_retval): Require a gimple_return.
2027         * cfgexpand.c (expand_gimple_stmt_1): Add a checked cast to
2028         gimple_return.
2029         (expand_gimple_basic_block): Likewise.
2030         * tree-complex.c (expand_complex_move): Likewise.
2031         (expand_complex_comparison): Likewise.
2032         * tree-inline.c (remap_gimple_stmt): Likewise.
2033         * tree-sra.c (scan_function): Likewise.
2034         (sra_modify_function_body): Likewise.
2035         (ipa_sra_modify_function_body): Likewise.
2036         * tree-ssa-structalias.c (find_func_aliases): Likewise.
2038         * gimple-ssa-isolate-paths.c (isolate_path): Strengthen local
2039         "ret" from gimple to gimple_return.
2040         (find_implicit_erroneous_behaviour): Replace a check for code
2041         GIMPLE_RETURN with a dyn_cast and a new local.
2042         (find_explicit_erroneous_behaviour): Likewise.
2043         * gimple-walk.c (walk_stmt_load_store_addr_ops): Likewise.
2044         * gimple.c (infer_nonnull_range): Likewise.
2045         * ipa-split.c (find_return_bb): Likewise.
2046         (find_retval): Likewise.
2047         (split_function): Likewise.
2048         * omp-low.c (ipa_simd_modify_function_body): Likewise.
2049         * tree-cfg.c (pass_warn_function_return::execute): Likewise.
2050         * tree-nrv.c (tree_nrv): Likewise.
2051         * tree-ssa-alias.c (ref_maybe_used_by_stmt_p): Likewise.
2052         * tree-ssa-dce.c (propagate_necessity): Likewise.
2053         * tree-ssa-structalias.c (find_func_clobbers): Likewise.
2054         * tree-tailcall.c (find_tail_calls): Likewise.
2056         * predict.c (apply_return_prediction): Rework the search for
2057         return_stmt so that the latter can have type gimple_return.
2059 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2061         Make gimple_phi_arg_location require a gimple_phi.
2063         * gimple.h (gimple_phi_arg_location): Require a gimple_phi.
2065         * tree-into-ssa.c (rewrite_update_phi_arguments): Replace a check
2066         for code GIMPLE_PHI with a dyn_cast and a new local.
2067         * tree-ssa-ter.c (ter_is_replaceable_p): Likewise.
2069         * tree-ssa-live.c (remove_unused_locals): Replace a
2070         gimple_stmt_iterator with a gimple_phi_iterator, using it to make
2071         local "phi" be a gimple_phi.
2072         * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Likewise.
2074         * tree-ssa-phiopt.c (conditional_replacement): Require a gimple_phi.
2075         (single_non_singleton_phi_for_edges): Return a gimple_phi; update
2076         local to be a gimple_phi, adding checked casts since we're working
2077         on a sequence of gimple_phi.
2078         (conditional_replacement): Require a gimple_phi.
2080         * tree-ssa-threadupdate.c (get_value_locus_in_path): Strengthen
2081         type of local "def_phi" to gimple_phi by replacing a check of the
2082         code for GIMPLE_PHI with a dyn_cast<gimple_phi>.
2084 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2086         Make gimple_phi_arg_location_from_edge require a gimple_phi
2088         * gimple.h (gimple_phi_arg_location_from_edge): Require a
2089         gimple_phi.
2091         * tree-parloops.c (create_parallel_loop): Split up local variable
2092         "stmt", introducing other locals for the various statements created
2093         by this function.  Reuse "stmt" within the phi-handling code, and
2094         change to type gimple_phi, since this is the only remaining
2095         "non-phi" user of gimple_phi_arg_location_from_edge.
2097 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2099         Concretize three gimple_try_set_ accessors
2101         * gimple.c (gimple_copy): Add checked casts to gimple_try.
2103         * gimple.h (gimple_try_set_kind): Require a gimple_try.
2104         (gimple_try_set_eval): Likewise.
2105         (gimple_try_set_cleanup): Likewise.
2107         * tree-eh.c (optimize_double_finally): Require a pair of gimple_try
2108         statements.
2109         (refactor_eh_r): Convert code comparisons to dynamic casts.
2111 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2113         Concretize gimple_try_set_catch_is_cleanup
2115         * gimple.h (gimple_try_set_catch_is_cleanup): Require a gimple_try.
2117         * gimplify.c (gimplify_expr): Convert local "try_" from a gimple
2118         to a gimple_try.
2120 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2122         Concretize gimple_eh_filter_set_types and gimple_eh_filter_set_failure
2124         * gimple.h (gimple_eh_filter_set_types): Require a gimple_eh_filter.
2125         (gimple_eh_filter_set_failure): Likewise.
2126         * gimple.c (gimple_copy): Add checked casts to gimple_eh_filter
2127         within GIMPLE_EH_FILTER case.
2129 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2131         Concretize gimple_label_label
2133         * gimple.h (gimple_label_label): Require a const_gimple_label
2134         rather than just a const_gimple.
2136         * cfgexpand.c (label_rtx_for_bb): Convert local from gimple to
2137         gimple_label, replacing a check against GIMPLE_LABEL with a
2138         dyn_cast<gimple_label>.
2139         * predict.c (tree_estimate_probability_bb): Likewise.
2140         * tree-cfg.c (make_edges): Likewise.
2141         (cleanup_dead_labels): Likewise (twice).
2142         (gimple_can_merge_blocks_p): Likewise.
2143         (gimple_block_label): Likewise.
2144         * tree-eh.c (unsplit_eh): Likewise.
2145         (cleanup_empty_eh_unsplit): Likewise.
2146         * tree-inline.c (mark_local_labels_stmt): Likewise.
2147         * tree-nested.c (convert_nl_goto_receiver): Likewise.
2149         * cfgexpand.c (expand_gimple_stmt_1): Add a checked cast to
2150         gimple_label when invoking gimple_label_label in a region where
2151         we've checked the code is GIMPLE_LABEL.
2152         * gimple-pretty-print.c (pp_cfg_jump): Likewise.
2153         * gimple.c (gimple_set_bb): Likewise.
2154         * ipa-pure-const.c (check_stmt): Likewise.
2155         * omp-low.c (diagnose_sb_1): Likewise.
2156         * tree-cfg.c (gimple_verify_flow_info): Likewise.
2157         * tree-cfgcleanup.c (tree_forwarder_block_p): Likewise.
2158         (remove_forwarder_block): Likewise.
2159         * tree-eh.c (collect_finally_tree): Likewise.
2161         * ipa-split.c (verify_non_ssa_vars): Replace a check against
2162         GIMPLE_LABEL with a dyn_cast<gimple_label>, introducing a
2163         gimple_label local.
2164         * tree-cfg.c (gimple_can_merge_blocks_p): Likewise.
2165         (gimple_merge_blocks): Likewise.
2166         (remove_bb): Likewise.
2167         (stmt_starts_bb_p): Likewise.
2168         (gimple_verify_flow_info): Likewise.
2169         (move_block_to_fn): Likewise.
2170         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2171         (remove_forwarder_block_with_phi): Likewise.
2172         * tree-ssa-ccp.c (optimize_unreachable): Likewise.
2174 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2176         Concretize gimple_call_use_set and gimple_call_clobber_set
2178         * gimple.h (gimple_call_use_set): Require a gimple_call.
2179         (gimple_call_clobber_set): Likewise.
2181 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2183         Concretize gimple_catch_types
2185         * gimple.h (gimple_catch_types): Require a const_gimple_catch
2186         rather than a const_gimple.
2188 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2190         Make gimple_goto_set_dest require a gimple_goto
2192         * gimple.h (gimple_goto_set_dest): Require a gimple_goto.
2194         * tree-cfg.c (factor_computed_gotos): Add checked cast to
2195         gimple_goto.
2196         (cleanup_dead_labels): Likewise.
2198 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2200         Make gimple_label_set_label require a gimple_label
2202         * gimple.h (gimple_label_set_label): Require a gimple_label.
2204 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2206         Concretize parameter to gimple_call_copy_skip_args
2208         * gimple.c (gimple_call_copy_skip_args): Require a gimple_call.
2209         * gimple.h (gimple_call_copy_skip_args): Likewise.
2211 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2213         Various gimple to gimple_call conversions in IPA
2215         * ipa-prop.c (detect_type_change_from_memory_writes): Require a
2216         gimple_call rather than a plain gimple.
2217         (detect_type_change): Likewise.
2218         (detect_type_change_ssa): Likewise.
2219         (compute_complex_assign_jump_func): Likewise.
2220         (compute_complex_ancestor_jump_func): Likewise.
2221         (compute_known_type_jump_func): Likewise.
2222         (determine_locally_known_aggregate_parts): Likewise.
2223         (ipa_compute_jump_functions_for_edge): Strengthen local "call" to
2224         a gimple_call; add checked cast to gimple_phi.
2225         (ipa_note_param_call): Require a gimple_call rather than a plain
2226         gimple.
2227         (ipa_analyze_indirect_call_uses): Likewise.
2228         (ipa_analyze_virtual_call_uses): Likewise.
2229         (ipa_analyze_call_uses): Likewise.
2230         (ipa_analyze_stmt_uses):Add checked cast to gimple_call.
2232         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
2233         Replace use of is_gimple_call with dyn_cast<gimple_call> and a
2234         new local "call_stmt".
2236 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2238         Use gimple_call for callgraph edges
2240         * cgraph.h (cgraph_edge::call_stmt): Strengthen field from plain
2241         gimple to a gimple_call.
2242         (cgraph_node::set_call_stmt_including_clones): Likewise for param
2243         "new_stmt".
2244         (cgraph_node::create_edge): Likewise for param "call_stmt".
2245         (cgraph_node::create_indirect_edge): Likewise.
2246         (cgraph_node::create_edge_including_clones): Likewise for param
2247         "stmt".
2248         (cgraph_edge::set_call_stmt): Likewise for param "new_stmt".
2249         (cgraph_edge::clone): Likewise for param "call_stmt".
2250         (symbol_table::create_edge): Likewise.
2252         * cgraph.c (cgraph_edge::set_call_stmt): Require a gimple_call
2253         rather than a plain gimple.
2254         (symbol_table::create_edge): Likewise.
2255         (cgraph_node::create_edge): Likewise.
2256         (cgraph_node::create_indirect_edge): Likewise.
2257         (cgraph_edge::redirect_call_stmt_to_callee): Strengthen local
2258         "new_stmt" from gimple to gimple_call.
2259         (cgraph_update_edges_for_call_stmt_node): Add checked casts to
2260         gimple_call.
2262         * cgraphbuild.c (pass_build_cgraph_edges::execute): Replace
2263         is_gimple_call with dyn_cast<gimple_call> and new local
2264         "call_stmt".
2265         (cgraph_edge::rebuild_edges): Likewise.
2267         * cgraphclones.c (cgraph_edge::clone): Require a gimple_call
2268         rather than a plain gimple.
2269         (cgraph_node::set_call_stmt_including_clones): Likewise.
2270         (cgraph_node::create_edge_including_clones): Likewise.
2272         * lto-streamer-in.c (fixup_call_stmt_edges_1): Add checked casts
2273         to gimple_call.
2275         * omp-low.c (simd_clone_adjust): Strengthen local "call" from
2276         gimple to gimple_call.
2278         * trans-mem.c (ipa_tm_insert_irr_call): Likewise for "g".
2279         (ipa_tm_insert_gettmclone_call): Likewise; also strengthen "g2"
2280         to gimple_assign.
2282         * tree-emutls.c (gen_emutls_addr): Strengthen local "x" from
2283         gimple to gimple_call.
2285         * tree-inline.c (copy_bb): Replace is_gimple_call with
2286         dyn_cast<gimple_call> and new local "call_stmt".
2288         * value-prof.c (gimple_ic): Require and return a gimple_call,
2289         rather than a plain gimple.
2290         * value-prof.h (gimple_ic): Likewise.
2292 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2294         Make gimple_call_return_slot_opt_p require a gimple_call.
2296         * gimple.h (gimple_call_return_slot_opt_p): Require a gimple_call
2297         rather than a plain gimple.
2299         * gimple-walk.c (walk_stmt_load_store_addr_ops): Convert usage of
2300         is_gimple_call to dyn_cast<gimple_call>, introducing a new local
2301         "call_stmt".
2303         * trans-mem.c (expand_call_tm): Split local "stmt", strengthening
2304         from plain gimple to a gimple_call, and introducing new local
2305         gimple_assign "assign_stmt".
2307         * tree-inline.c (expand_call_inline):  Convert check of code against
2308         GIMPLE_CALL to dyn_cast<gimple_call>, introducing a new local
2309         "call_stmt".
2311 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2313         More gimple_phi
2315         * gimple.h (gimple_phi_set_result): Require a gimple_phi rather
2316         than a plain gimple.
2317         (gimple_phi_set_arg): Likewise.
2319         * tree-outof-ssa.c (remove_gimple_phi_args): Likewise; add a checked
2320         cast to gimple_phi.
2322         * tree-sra.c (replace_removed_params_ssa_names): Add a checked
2323         cast to gimple_phi.
2325 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2327         Make gimple_phi_arg_edge require a gimple_phi
2329         * gimple.h (gimple_phi_arg_edge): Require a gimple_phi rather
2330         than a plain gimple.
2332         * gimple-ssa-strength-reduction.c (ncd_with_phi): Strengthen
2333         param "phi" from gimple to gimple_phi.  Add a checked cast.
2334         (ncd_of_cand_and_phis): Add a checked cast.
2336         * graphite-sese-to-poly.c (rewrite_phi_out_of_ssa): Require a
2337         gimple_phi_iterator; strengthen local "phi" from gimple to a
2338         gimple_phi.
2339         (rewrite_cross_bb_scalar_deps): Strengthen local "psi" from
2340         a gimple_stmt_iterator to a gimple_phi_iterator.
2341         (edge_initial_value_for_loop_phi): Require a gimple phi.
2342         (initial_value_for_loop_phi): Likewise.
2344         * ipa-split.c (consider_split): Convert "bsi" to a
2345         gimple_phi_iterator and "stmt" to a gimple_phi.
2347         * predict.c (predict_extra_loop_exits): Convert "phi_stmt" to be
2348         a gimple_phi; introduce "lhs_def_stmt" as plain gimple.
2349         (apply_return_prediction): Convert "phi" to be a gimple_phi.
2351         * tree-cfg.c (replace_uses_by): Add checked cast to gimple_phi.
2352         (verify_gimple_in_cfg): Introduce gimple_phi_iterator "gpi" and use
2353         it to convert "phi" to a gimple_phi.
2355         * tree-eh.c (cleanup_empty_eh_merge_phis): Convert "ngsi", "ogsi"
2356         to be gimple_phi_iterators.  Convert "ophi", "nphi" to be
2357         gimple_phi.
2359         * tree-into-ssa.c (prepare_use_sites_for): Add checked cast to
2360         gimple_phi.
2362         * tree-ssa-coalesce.c (create_outofssa_var_map): Introduce
2363         gimple_phi_iterator "gpi" and use it to convert "phi" to a
2364         gimple_phi.
2366         * tree-ssa-dce.c (propagate_necessity): Introduce local "phi",
2367         from checked cast to gimple_phi.
2369         * tree-ssa-live.c (set_var_live_on_entry): Add checked cast to
2370         gimple_phi.
2372         * tree-ssa-propagate.c (replace_phi_args_in): Require a gimple_phi
2373         rather than a plain gimple.
2374         (substitute_and_fold_dom_walker::before_dom_children): Introduce
2375         gimple_phi_iterator "gpi".
2377         * tree-ssa-sink.c (find_bb_for_arg): Require a gimple_phi rather
2378         than a plain gimple.
2379         (nearest_common_dominator_of_uses): Replace check of code against
2380         GIMPLE_PHI with a dyn_cast<gimple_phi>, introducing a new local.
2381         (statement_sink_location): Add checked cast to gimple_phi.
2383         * tree-ssa-uninit.c (compute_uninit_opnds_pos): Require a
2384         gimple_phi rather than a plain gimple.
2385         (collect_phi_def_edges): Likewise.  Add a checked cast.
2386         (find_def_preds): Strengthen param "phi" from gimple to
2387         gimple_phi.
2388         (prune_uninit_phi_opnds_in_unrealizable_paths): Likewise for
2389         params "phi" and "flag_def".  Strenghen param "visited_phis" from
2390         hash_set<gimple> * to hash_set<gimple_phi> *.  Convert
2391         "flag_arg_def", "phi_arg_def" to gimple_phi using
2392         dyn_cast<gimple_phi>.  Similarly, introduce new local
2393         "opnd_def_phi".
2394         (use_pred_not_overlap_with_undef_path_pred): Strengthen param
2395         "phi" from gimple to gimple_phi, and param "visited_phis" from
2396         hash_set<gimple> * to hash_set<gimple_phi> *.  Add a checked cast.
2397         (is_use_properly_guarded): Likewise for params.
2398         (find_uninit_use): Replace check of code against GIMPLE_PHI with
2399         a dyn_cast<gimple_phi>, introducing a new local "use_phi".
2400         Strengthen local "visited_phis" from hash_set<gimple> to
2401         hash_set<gimple_phi>.
2403 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2405         Update GRAPHITE to use more concrete gimple statement classes
2407         * graphite-scop-detection.c (canonicalize_loop_closed_ssa):
2408         Strengthen local "psi" to be a gimple_phi_iterator and "phi" to
2409         a gimple_phi.
2411         * graphite-sese-to-poly.c (phi_arg_in_outermost_loop): Require
2412         a gimple_phi rathen than a plain gimple.
2413         (remove_simple_copy_phi): Require a gimple_phi_iterator;
2414         strengthen local "phi" to be a gimple_phi and "stmt" to be a
2415         gimple_assign.
2416         (remove_invariant_phi): Likewise.
2417         (simple_copy_phi_p): Require a gimple_phi.
2418         (reduction_phi_p): Require a gimple_phi_iterator; strengthen
2419         local "phi" to be a gimple_phi.
2420         (add_condition_to_pbb): Require a gimple_cond rather than a
2421         plain gimple.
2422         (add_conditions_to_domain): Add checked cast to gimple_cond
2423         within GIMPLE_COND case of switch statement.
2424         (single_pred_cond_non_loop_exit): Return a gimple_cond rather
2425         than a plain gimple, via a checked cast.
2426         (sese_dom_walker::before_dom_children): Strengthen local "stmt"
2427         from gimple to gimple_cond.
2428         (gsi_for_phi_node): Require a gimple_phi, and return a
2429         gimple_phi_iterator.
2430         (insert_out_of_ssa_copy): Strengthen local "stmt" from gimple to
2431         gimple_assign.
2432         (rewrite_reductions_out_of_ssa): Strengthen "psi" to be a
2433         gimple_phi_iterator, and "phi" to be a gimple_phi.
2434         (phi_contains_arg): Require a gimple_phi.
2435         (follow_ssa_with_commutative_ops): Strengthen return type from
2436         gimple to gimple_phi, by converting a check for code GIMPLE_PHI to
2437         a dyn_cast<gimple_phi>, and strengthening local "res" from gimple
2438         to gimple_phi.
2439         (detect_commutative_reduction_arg): Strengthen return type from
2440         gimple to gimple_phi, and strengthen local "phi" to be a
2441         gimple_phi.
2442         (detect_commutative_reduction_assign): Strengthen return type from
2443         gimple to gimple_phi, and strengthen local "res" to be a
2444         gimple_phi.
2445         (follow_inital_value_to_phi): Strengthen return type from
2446         gimple to gimple_phi.  Replace check for code GIMPLE_PHI with
2447         a dyn_cast<gimple_phi>.
2448         (detect_commutative_reduction): Strengthen return type and locals
2449         "loop_phi", "phi", "close_phi" from gimple to gimple_phi,
2450         introducing a checked cast of "stmt" in region guarded by
2451         scalar_close_phi_node_p (stmt).
2452         (translate_scalar_reduction_to_array_for_stmt): Require param
2453         "loop_phi" to be a gimple_phi.  Strengthen local "assign" from
2454         gimple to gimple_assign.
2455         (remove_phi): Require a gimple_phi.
2456         (close_phi_written_to_memory): Likewise.
2457         (translate_scalar_reduction_to_array): We expect the first element
2458         in each vector to be an arbitrary statement, but all of the
2459         subsequent elements to be phi nodes.  Hence the decls of gimple
2460         locals "loop_phi" and "close_phi" are replaced with decls of gimple
2461         "loop_stmt" and "close_stmt", with decls of the more-strongly typed
2462         gimple_phi "loop_phi" and "close_phi" occurring lower down, within
2463         the region where we're dealing with i > 0 and hence where we can
2464         safely assign them using the checked cast as_a <gimple_phi>.
2465         This allows many of the strengthenings from gimple to gimple_phi
2466         above.  We eliminate the local "stmt", since we can simply use
2467         "loop_stmt".
2468         (rewrite_commutative_reductions_out_of_ssa_close_phi): Strengthen
2469         param "close_phi" from gimple to gimple_phi, and local "gsi" from
2470         gimple_stmt_iterator to gimple_phi_iterator, converting uses of
2471         gsi_stmt to gsi.phi for type-safety.
2472         (scop_ivs_can_be_represented): Strengthen local "gsi" from
2473         gimple_stmt_iterator to gimple_phi_iterator, and "phi" from gimple
2474         to gimple_phi.
2476 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2478         Make gimple_phi_arg_set_location require a gimple_phi
2480         * gimple.h (gimple_phi_arg_set_location): Require a gimple_phi
2481         rather than a plain gimple.
2483 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2485         Make add_phi_arg require a gimple_phi
2487         * tree-phinodes.h (add_phi_arg): Require a gimple_phi rather than
2488         a plain gimple.
2489         * tree-phinodes.c (add_phi_arg): Likewise.
2491         * gimple-ssa-strength-reduction.c (create_phi_basis): Strengthen
2492         local "phi" from plain gimple to gimple_phi.
2494         * graphite-scop-detection.c (canonicalize_loop_closed_ssa):
2495         Likewise for "close_phi".
2497         * ipa-split.c (split_function): Convert "psi" to
2498         gimple_phi_iterator.
2500         * omp-low.c (expand_omp_for_static_nochunk): Introduce
2501         gimple_phi_iterator gpi, using it to strengthen "phi" to be a
2502         gimple_phi.
2503         (expand_omp_for_static_chunk): Likewise.
2505         * tree-cfg.c (gimple_duplicate_bb): Make topmost "gsi" decl more
2506         tightly-scoped, and eliminate decls "phis", "phi", "stmt", "copy"
2507         in favor of more tightly-scoped gimple_phi_iterator gpi and
2508         gimple_phi decls "phi" and "copy", and gimple decls "stmt" and
2509         "copy".
2511         * tree-parloops.c (create_parallel_loop): Introduce
2512         gimple_phi_iterator gpi, using it to strengthen "phi" to be a
2513         gimple_phi.
2515         * tree-ssa-loop-im.c (execute_sm_if_changed): Likewise.
2517         * tree-ssa-loop-manip.c (create_iv): Split out new gimple_phi
2518         local "phi" from "stmt", and convert the latter into being a
2519         gimple_assign.
2521         * tree-ssa-pre.c (insert_into_preds_of_block): Strengthen local
2522         "phi" to be a gimple_phi.
2524         * tree-ssa-tail-merge.c (vop_phi): Require a gimple_phi rather
2525         than a plain gimple.
2526         (replace_block_by): Strengthen local "bb2_phi" to be a gimple_phi.
2528         * tree-tailcall.c (add_successor_phi_arg): Use gsi.phi when
2529         invoking add_phi_arg.
2530         (eliminate_tail_call): Introduce gimple_phi_iterator gpi, using it
2531         to strengthen "phi" to be a gimple_phi.
2532         (create_tailcall_accumulator): Strengthen local "phi" to be a
2533         gimple_phi.
2534         (tree_optimize_tail_calls_1): Likewise.
2536         * tree-vect-data-refs.c (vect_setup_realignment): Strengthen
2537         local "phi_stmt" to be a gimple_phi.
2539         * tree-vect-loop-manip.c (slpeel_tree_duplicate_loop_to_edge_cfg):
2540         Strengthen "gsi", "gsi_orig", "gsi_new" to be
2541         gimple_phi_iterators, and "phi" "orig_phi", "new_phi" to be
2542         gimple_phi instances.
2543         (slpeel_tree_peel_loop_to_edge): Strengthen local "new_phi" to be
2544         a gimple_phi.
2546         * tree-vect-loop.c (get_initial_def_for_induction): Likewise for
2547         "induction_phi".
2548         (vect_create_epilog_for_reduction): Add checked casts to
2549         gimple_phi; strengthen local "outer_phi" to gimple_phi and
2550         "new_vec_stmt" to gimple_assign.
2551         (vect_finalize_reduction): Strengthen local "vect_phi" to
2552         gimple_phi.
2553         (vectorizable_reduction): Likewise for "new_phi".
2555         * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
2556         (vectorizable_load): Likewise for "phi".
2558 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2560         Make gimple_phi_arg_def_ptr and gimple_phi_arg_has_location require a gimple_phi
2562         * gimple.h (gimple_phi_arg_def_ptr): Require a gimple_phi rather
2563         than a plain gimple.
2564         (gimple_phi_arg_has_location): Likewise.
2566         * gimple-streamer-in.c (input_phi): Return a gimple_phi rather
2567         than a plain gimple.
2568         * gimple-streamer-out.c (output_phi): Require a gimple_phi rather
2569         than a plain gimple.
2570         (output_bb): Convert iteration to a gimple_phi_iterator, and local
2571         "phi" to gimple_phi.
2573         * omp-low.c (expand_omp_for_static_chunk): Convert iterator "psi"
2574         to a gimple_phi_iterator; convert locals "phi" and "nphi" to be
2575         gimple_phi.
2577         * tree-cfg.c (gimple_duplicate_sese_tail): Likewise for "psi" and
2578         "phi".
2579         (move_block_to_fn): Introduce new gimple_phi_iterator "psi", using
2580         it in place of "gsi" where necessary.  Convert "phi" to be a
2581         gimple_phi.
2583         * tree-cfgcleanup.c (remove_forwarder_block): Likewise.
2585         * tree-vect-loop-manip.c (vect_loop_versioning): Convert "gsi" to
2586         a gimple_phi_iterator, and "orig_phi" and "new_phi" to be
2587         gimple_phi.
2589         * tree.c (find_decls_types_in_node): Introduce new
2590         gimple_phi_iterator "psi", using it in place of "si" where
2591         necessary.  Convert "phi" to be a gimple_phi.
2593 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2595         omp-low.c: Use more concrete types of gimple statement for various locals
2597         * omp-low.c (finalize_task_copyfn): Strengthen local "bind" from
2598         plain gimple to gimple_bind.
2599         (lower_rec_input_clauses): Strengthen local "g" from
2600         plain gimple to gimple_assign.
2601         (lower_lastprivate_clauses): Likewise for "stmt" to gimple_cond
2602         and "g" to gimple_call.
2603         (expand_omp_for_init_vars): Likewise, for two decls of "stmt" to
2604         gimple_assign.
2605         (expand_omp_atomic_pipeline): Likewise for one decl of "stmt".
2606         (expand_omp_atomic_mutex): Likewise.
2607         (lower_omp_master): Likewise for "x" to gimple_call.
2608         (lower_omp_ordered): Likewise.
2610 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2612         tree-parloops.c: Use gimple_phi in various places
2614         * tree-parloops.c (reduction_info::keep_res): Strengthen field
2615         from plain gimple to gimple_phi.
2616         (transform_to_exit_first_loop): Strengthen locals "phi", "nphi"
2617         to gimple_phi.  Eliminate early decl of gimple_stmt_iterator gsi
2618         in favor of more tightly scoped gimple_phi_iterators, and a final
2619         later decl as a gimple_stmt_iterator.
2621 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2623         Introduce gimple_omp_sections
2625         * coretypes.h (gimple_omp_sections): New typedef.
2626         (const_gimple_omp_sections): New typedef.
2628         * gimple-pretty-print.c (dump_gimple_omp_sections): Require a
2629         gimple_omp_sections rather than a plain gimple.
2630         (pp_gimple_stmt_1): Add checked cast to gimple_omp_sections within
2631         GIMPLE_OMP_SECTIONS case of switch statement.
2633         * gimple.c (gimple_build_omp_sections): Return a
2634         gimple_omp_sections rather than a plain gimple.
2636         * gimple.h (gimple_build_omp_sections): Return a
2637         gimple_omp_sections rather than a plain gimple.
2639         * omp-low.c (scan_omp_sections): Require a gimple_omp_sections
2640         rather than a plain gimple.
2641         (scan_omp_1_stmt): Add checked cast to gimple_omp_sections within
2642         GIMPLE_OMP_SECTIONS case of switch statement.
2643         (expand_omp_sections): Strengthen local "sections_stmt" from gimple
2644         to gimple_omp_sections.
2645         (lower_omp_sections): Likewise for "stmt".
2647 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2649         Introduce gimple_omp_teams
2651         * coretypes.h (gimple_omp_teams): New typedef.
2652         (const_gimple_omp_teams): New typedef.
2654         * gimple.h (gimple_build_omp_teams): Return a gimple_omp_teams
2655         rather than a plain gimple.
2656         (gimple_omp_teams_set_clauses): Require a gimple_omp_teams rather
2657         than a plain gimple.
2659         * gimple-pretty-print.c (dump_gimple_omp_teams): Require a
2660         gimple_omp_teams rather than a plain gimple.
2661         (pp_gimple_stmt_1): Add checked cast to gimple_omp_teams within
2662         GIMPLE_OMP_TEAMS case of switch statement.
2664         * gimple.c (gimple_build_omp_teams): Return a gimple_omp_teams
2665         rather than a plain gimple.
2667         * omp-low.c (scan_omp_teams): Likewise.
2668         (scan_omp_1_stmt): Add checked cast to gimple_omp_teams within
2669         GIMPLE_OMP_TEAMS case of switch statement.
2670         (lower_omp_teams): Strengthen local "teams_stmt" from gimple to
2671         gimple_omp_teams.
2673 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2675         Introduce gimple_omp_target
2677         * coretypes.h (gimple_omp_target): New typedef.
2678         (const_gimple_omp_target): New typedef.
2680         * gimple.h (gimple_build_omp_target): Return a gimple_omp_target
2681         rather than a plain gimple.
2682         (gimple_omp_target_set_clauses): Require a gimple_omp_target
2683         rather than a plain gimple.
2684         (gimple_omp_target_set_kind): Likewise.
2685         (gimple_omp_target_child_fn_ptr): Likewise.
2686         (gimple_omp_target_set_child_fn): Likewise.
2687         (gimple_omp_target_data_arg_ptr): Likewise.
2688         (gimple_omp_target_set_data_arg): Likewise.
2689         (gimple_omp_target_child_fn): Require a const_gimple_omp_target
2690         rather than a plain const_gimple.
2691         (gimple_omp_target_data_arg): Likewise.
2693         * gimple-pretty-print.c (dump_gimple_omp_target): Require a
2694         gimple_omp_target rather than a plain gimple.
2695         (pp_gimple_stmt_1): Add checked cast to gimple_omp_target within
2696         GIMPLE_OMP_TARGET case of switch statement.
2698         * gimple.c (gimple_build_omp_target): Return a gimple_omp_target
2699         rather than a plain gimple.
2701         * gimplify.c (gimplify_omp_target_update): Strengthen local "stmt"
2702         from gimple to gimple_omp_target.
2704         * omp-low.c (scan_omp_target): Require a gimple_omp_target rather
2705         than a plain gimple.
2706         (scan_omp_1_stmt): Add checked cast to gimple_omp_target within
2707         GIMPLE_OMP_TARGET case of switch statement.
2708         (expand_omp_target): Strengthen local "entry_stmt" from gimple to
2709         gimple_omp_target.
2710         (lower_omp_target): Likewise for "stmt".
2712         * tree-nested.c (convert_nonlocal_reference_stmt): Add checked
2713         cast to gimple_omp_target.
2714         (convert_local_reference_stmt): Likewise.
2715         (convert_gimple_call): Likewise.
2717 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2719         Introduce gimple_omp_single
2721         * coretypes.h (gimple_omp_single): New typedef.
2722         (const_gimple_omp_single): New typedef.
2724         * gimple.h (gimple_build_omp_single): Return a gimple_omp_single
2725         rather than a plain gimple.
2726         (gimple_omp_single_set_clauses): Require a gimple_omp_single
2727         rather than a plain gimple.
2729         * gimple-pretty-print.c (dump_gimple_omp_single): Require a
2730         gimple_omp_single rather than a plain gimple.
2731         (pp_gimple_stmt_1): Add checked cast to gimple_omp_single within
2732         GIMPLE_OMP_SINGLE case of switch statement.
2734         * gimple.c (gimple_build_omp_single): Return a gimple_omp_single
2735         rather than a plain gimple.
2737         * omp-low.c (scan_omp_single): Require a gimple_omp_single rather
2738         than a plain gimple.
2739         (scan_omp_1_stmt): Add checked cast to gimple_omp_single within
2740         GIMPLE_OMP_SINGLE case of switch statement.
2741         (lower_omp_single_simple): Require a gimple_omp_single rather
2742         than a plain gimple.
2743         (lower_omp_single_copy): Likewise.
2744         (lower_omp_single): Strengthen local "single_stmt" from gimple to
2745         gimple_omp_single.
2747 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2749         Introduce gimple_omp_task
2751         * coretypes.h (gimple_omp_task): New typedef.
2752         (const_gimple_omp_task): New typedef.
2754         * gimple.h (gimple_build_omp_task): Return a gimple_omp_task
2755         rather than a plain gimple.
2757         * gimple-pretty-print.c (dump_gimple_omp_task): Require a
2758         gimple_omp_task rather than a plain gimple.
2759         (pp_gimple_stmt_1): Add checked cast to gimple_omp_task within
2760         GIMPLE_OMP_TASK case of switch statement.
2762         * gimple.c (gimple_build_omp_task): Return a gimple_omp_task
2763         rather than a plain gimple.
2765         * omp-low.c (finalize_task_copyfn): Require a gimple_omp_task
2766         rather than a plain gimple.
2767         (delete_omp_context): Add checked cast to gimple_omp_task.
2768         (scan_omp_task): Strengthen local "stmt" from gimple to
2769         gimple_omp_task.
2770         (expand_task_call): Require a gimple_omp_task rather than a plain
2771         gimple.
2772         (expand_omp_taskreg): Add checked cast to gimple_omp_task.
2773         (create_task_copyfn): Require a gimple_omp_task rather than a
2774         plain gimple.
2775         (lower_omp_taskreg): Add checked cast to gimple_omp_task.
2777 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2779         tree-cfg.c: Make verify_gimple_call require a gimple_call
2781         * tree-cfg.c (verify_gimple_call): Require a gimple_call rather
2782         than a plain gimple.
2783         (verify_gimple_stmt): Add checked cast to gimple_call within
2784         GIMPLE_CALL case of switch statement.
2786 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2788         Introduce gimple_omp_parallel
2790         * coretypes.h (gimple_omp_parallel): New typedef.
2791         (const_gimple_omp_parallel): New typedef.
2793         * cgraphbuild.c (build_cgraph_edges): Convert check of code
2794         against GIMPLE_OMP_PARALLEL to a dyn_cast <gimple_omp_parallel>
2795         and new local.
2797         * gimple-pretty-print.c (dump_gimple_omp_parallel): Require a
2798         gimple_omp_parallel rather than a plain gimple.
2799         (pp_gimple_stmt_1): Add a checked cast to gimple_omp_parallel
2800         within GIMPLE_OMP_PARALLEL case of switch statement.
2802         * gimple-walk.c (walk_gimple_op): Likewise, introducing a local.
2804         * gimple.c (gimple_build_omp_parallel): Return a
2805         gimple_omp_parallel rather than a plain gimple.
2806         (gimple_copy): Add checked casts to gimple_omp_parallel within
2807         GIMPLE_OMP_PARALLEL case of switch statement, introducing locals.
2809         * gimple.h (gimple_build_omp_parallel): Return a
2810         gimple_omp_parallel rather than a plain gimple.
2811         (gimple_omp_parallel_clauses_ptr): Require a gimple_omp_parallel
2812         rather than a plain gimple.
2813         (gimple_omp_parallel_set_clauses): Likewise.
2814         (gimple_omp_parallel_data_arg_ptr): Likewise.
2815         (gimple_omp_parallel_set_data_arg): Likewise.
2816         (gimple_omp_parallel_child_fn_ptr): Likewise.
2817         (gimple_omp_parallel_set_child_fn): Likewise.
2818         (gimple_omp_parallel_child_fn): Require a
2819         const_gimple_omp_parallel rather than a plain const_gimple.
2820         (gimple_omp_parallel_data_arg): Likewise.
2822         * omp-low.c (scan_omp_parallel): Strengthen local "stmt" from
2823         gimple to gimple_omp_parallel.
2824         (expand_parallel_call): Require a gimple_omp_parallel for
2825         "entry_stmt" rather than a plain gimple.
2826         (remove_exit_barrier):  Strengthen local "parallel_stmt" from
2827         gimple to gimple_omp_parallel.
2828         (expand_omp_taskreg): Add checked casts to gimple_omp_parallel.
2830         * tree-inline.c (remap_gimple_stmt): Add a checked cast to
2831         gimple_omp_parallel within GIMPLE_OMP_PARALLEL case of switch
2832         statement, introducing local.
2834 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2836         Introduce gimple_omp_for
2838         * coretypes.h (gimple_omp_for): New.
2839         (const_gimple_omp_for): New.
2841         * gimple.h (gimple_build_omp_for): Return a gimple_omp_for rather
2842         than a plain gimple.
2843         (gimple_omp_for_set_kind): Require a gimple_omp_for rather than a
2844         plain gimple.
2845         (gimple_omp_for_set_combined_p): Likewise.
2846         (gimple_omp_for_set_combined_into_p): Likewise.
2848         * gimple-pretty-print.c (dump_gimple_omp_for): Require a
2849         gimple_omp_for rather than a plain gimple.
2850         (pp_gimple_stmt_1): Add a checked cast to gimple_omp_for in
2851         GIMPLE_OMP_FOR case of switch statement.
2853         * gimple.c (gimple_build_omp_for): Return a gimple_omp_for rather
2854         than a plain gimple.
2855         (gimple_copy): Add a checked cast to gimple_omp_for and a new local.
2857         * gimplify.c (gimplify_omp_for): Strengthen local "gfor" from
2858         gimple to gimple_omp_for.
2860         * omp-low.c (omp_for_data::for_stmt): Strengthen field from gimple
2861         to gimple_omp_for.
2862         (extract_omp_for_data): Require a gimple_omp_for rather than a
2863         plain gimple.
2864         (workshare_safe_to_combine_p): Add a checked cast to
2865         gimple_omp_for.
2866         (get_ws_args_for): Convert check of code against GIMPLE_OMP_FOR
2867         with a dyn_cast<gimple_omp_for> and a new local.
2868         (scan_omp_parallel): Add a checked cast to gimple_omp_for and a
2869         new local.
2870         (scan_omp_for): Require a gimple_omp_for rather than a plain
2871         gimple.
2872         (scan_omp_1_stmt): Add a checked cast to gimple_omp_for in
2873         GIMPLE_OMP_FOR case of switch statement.
2874         (expand_omp_for): Add a checked cast to gimple_omp_for.
2875         (lower_omp_for): Strengthen local "stmt" from gimple to
2876         gimple_omp_for.
2878         * tree-nested.c (walk_gimple_omp_for): Require a gimple_omp_for
2879         rather than a plain gimple.
2880         (convert_nonlocal_reference_stmt): Add a checked cast to
2881         gimple_omp_for in GIMPLE_OMP_FOR case of switch statement.
2882         (convert_local_reference_stmt): Likewise.
2884         * tree-parloops.c (create_parallel_loop): Strengthen local
2885         "for_stmt" from gimple to gimple_omp_for.
2887 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2889         Introduce gimple_omp_critical
2891         * coretypes.h (gimple_omp_critical): New typedef.
2892         (const_gimple_omp_critical): New typedef.
2894         * gimple-pretty-print.c (dump_gimple_omp_critical): Require a
2895         gimple_omp_critical rather than a plain gimple.
2896         (pp_gimple_stmt_1): Add a checked cast to gimple_omp_critical
2897         within GIMPLE_OMP_CRITICAL case of switch statement.
2899         * gimple-walk.c (walk_gimple_op): Likewise.
2901         * gimple.c (gimple_build_omp_critical): Return a gimple_omp_critical
2902         rather than a plain gimple.
2903         (gimple_copy): Add checked casts to gimple_omp_critical
2904         within GIMPLE_OMP_CRITICAL case of switch statement.
2906         * gimple.h (gimple_debug): Likewise.
2907         (gimple_build_omp_critical): Return a gimple_omp_critical rather
2908         than a plain gimple.
2909         (gimple_omp_critical_name): Require a const_gimple_omp_critical
2910         rather than a plain const_gimple.
2911         (gimple_omp_critical_name_ptr): Require a gimple_omp_critical
2912         rather than a plain gimple.
2913         (gimple_omp_critical_set_name): Likewise.
2915         * omp-low.c (check_omp_nesting_restrictions): Add a checked cast
2916         to gimple_omp_critical within GIMPLE_OMP_CRITICAL case of switch
2917         statement, introducing a new local "other_crit" for type-safety.
2918         (lower_omp_critical): Strengthen local "stmt" to
2919         gimple_omp_critical.
2921         * tree-inline.c (remap_gimple_stmt): Add a checked cast to
2922         gimple_omp_critical within GIMPLE_OMP_CRITICAL case of switch
2923         statement.
2925 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2927         Introduce gimple_omp_continue
2929         * coretypes.h (gimple_omp_continue): New typedef.
2930         (const_gimple_omp_continue): New typedef.
2932         * gimple.h (gimple_build_omp_continue): Return a
2933         gimple_omp_continue rather than a plain gimple.
2934         (gimple_omp_continue_control_def): Require a
2935         const_gimple_omp_continue rather than a plain const_gimple.
2936         (gimple_omp_continue_control_use): Likewise.
2937         (gimple_omp_continue_control_def_ptr): Require a gimple_omp_continue
2938         rather than a plain gimple.
2939         (gimple_omp_continue_set_control_def): Likewise.
2940         (gimple_omp_continue_control_use_ptr): Likewise.
2941         (gimple_omp_continue_set_control_use): Likewise.
2943         * gimple-pretty-print.c (dump_gimple_omp_continue): Require a
2944         gimple_omp_continue rather than a plain gimple.
2945         (pp_gimple_stmt_1): Add a checked cast to gimple_omp_continue
2946         within GIMPLE_OMP_CONTINUE case of switch statement.
2948         * gimple-walk.c (walk_gimple_op): Likewise, adding a new local.
2950         * gimple.c (gimple_build_omp_continue): Return a
2951         gimple_omp_continue rather than a plain gimple.
2953         * omp-low.c (gimple_build_cond_empty): Return a gimple_cond
2954         rather than a plain gimple.
2955         (expand_omp_for_generic): Split local "stmt" into "assign_stmt",
2956         "cont_stmt", "cond_stmt", "call_stmt" of types gimple_assign,
2957         gimple_omp_continue, gimple_cond, gimple_call respectively.
2958         (expand_omp_for_static_nochunk): Likewise, splitting into two
2959         "cond_stmt" decls. "assign_stmt", "cont_stmt"
2960         (expand_omp_for_static_chunk): Likewise, splitting into
2961         "cond_stmt", "assign_stmt", "cont_stmt".
2962         (expand_omp_sections): Strengthen local "cont" from gimple to
2963         gimple_omp_continue.
2965 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2967         Introduce gimple_omp_atomic_store
2969         * coretypes.h (gimple_omp_atomic_store): New typedef.
2970         (const_gimple_omp_atomic_store): New typedef.
2972         * gimple-pretty-print.c (dump_gimple_omp_atomic_store): Require
2973         a gimple_omp_atomic_store rather than a plain gimple.
2974         (pp_gimple_stmt_1): Add checked cast to gimple_omp_atomic_store
2975         within GIMPLE_OMP_ATOMIC_STORE case of switch statement.
2976         * gimple-walk.c (walk_gimple_op): Likewise.
2978         * gimple.c (gimple_build_omp_atomic_store): Return a
2979         gimple_omp_atomic_store rather than a plain gimple.
2981         * gimple.h (gimple_build_omp_atomic_store): Return a
2982         gimple_omp_atomic_store rather than a plain gimple.
2983         (gimple_omp_atomic_store_set_val): Require a gimple_omp_atomic_store
2984         rather than a plain gimple.
2985         (gimple_omp_atomic_store_val_ptr): Likewise.
2986         (gimple_omp_atomic_store_val): Require a
2987         const_gimple_omp_atomic_store rather than a plain const_gimple.
2989         * gimplify.c (gimplify_omp_atomic): Strengthen locals "loadstmt" and
2990         "storestmt" from gimple to gimple_omp_atomic_load loadstmt and
2991         gimple_omp_atomic_store storestmt respectively.
2993         * omp-low.c (expand_omp_atomic): Strengthen local "store" from
2994         gimple to gimple_omp_atomic_store.
2996 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
2998         Introduce gimple_omp_atomic_load
3000         * coretypes.h (gimple_omp_atomic_load): New typedef.
3001         (const_gimple_omp_atomic_load): New typedef.
3003         * gimple-pretty-print.c (dump_gimple_omp_atomic_load): Require a
3004         gimple_omp_atomic_load rather than a plain gimple.
3005         (pp_gimple_stmt_1): Add a checked cast to gimple_omp_atomic_load
3006         within GIMPLE_OMP_ATOMIC_LOAD case of switch statement.
3008         * gimple-walk.c (walk_gimple_op): Likewise, introducing a new local.
3010         * gimple.c (gimple_build_omp_atomic_load): Return a
3011         gimple_omp_atomic_load rather than a plain gimple.
3013         * gimple.h (gimple_build_omp_atomic_load): Return a
3014         gimple_omp_atomic_load rather than a plain gimple.
3015         (gimple_omp_atomic_load_set_lhs): Require a
3016         gimple_omp_atomic_load rather than a plain gimple.
3017         (gimple_omp_atomic_load_lhs_ptr): Likewise.
3018         (gimple_omp_atomic_load_set_rhs): Likewise.
3019         (gimple_omp_atomic_load_rhs_ptr): Likewise.
3020         (gimple_omp_atomic_load_lhs): Require a
3021         const_gimple_omp_atomic_load rather than a plain const_gimple.
3022         (gimple_omp_atomic_load_rhs): Likewise.
3024         * gimplify-me.c (gimple_regimplify_operands): Add a checked cast
3025         to gimple_omp_atomic_load within GIMPLE_OMP_ATOMIC_LOAD case of
3026         switch statement.
3028         * omp-low.c (expand_omp_atomic): Strengthen type of local "load"
3029         from gimple to gimple_omp_atomic_load.
3030         (lower_omp_1): Add a checked cast to gimple_omp_atomic_load within
3031         GIMPLE_OMP_ATOMIC_LOAD case of switch statement.
3033 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3035         Use more concrete types for various gimple statements
3037         * cgraphunit.c (thunk_adjust): Strengthen local "stmt" from gimple
3038         to gimple_assign.
3040         * gimple-ssa-isolate-paths.c
3041         (insert_trap_and_remove_trailing_statements): Strengthen local
3042         "new_stmt" from gimple to gimple_call.
3044         * gimple-ssa-strength-reduction.c (replace_mult_candidate):
3045         Strengthen local "copy_stmt" from gimple to gimple_assign.
3046         (create_add_on_incoming_edge): Likewise, for "new_stmt".
3047         (insert_initializers): Likewise, for "init_stmt".
3048         (introduce_cast_before_cand): Likewise, for "cast_stmt".
3049         (replace_one_candidate): Likewise, for "copy_stmt" and
3050         "cast_stmt".
3052         * gimplify.c (build_stack_save_restore): Require gimple_calls
3053         rather than plain gimples.
3054         (gimplify_bind_expr): Strengthen locals "stack_save" and
3055         "stack_restore" from gimple to gimple_call.  Strengthen "gs"
3056         to gimple_try.
3057         (gimplify_switch_expr): Strengthen local "gimple_switch" from
3058         gimple to gimple_switch, and "new_default" to gimple_label.
3059         (gimplify_cond_expr): Strengthen local "gimple_cond" from gimple
3060         to gimple_cond.
3061         (gimplify_init_constructor): Strengthen local "init" from gimple
3062         to gimple_assign.
3063         (gimplify_cleanup_point_expr): Strengthen local "gtry" from gimple
3064         to gimple_try.
3065         (gimple_push_cleanup): Strengthen locals "ffalse" and "ftrue" from
3066         gimple to gimple_assign.
3068         * tree-eh.c (do_goto_redirection): Strengthen local to gimple_goto.
3069         (emit_post_landing_pad): Strengthen local to gimple_label.
3071         * tree-outof-ssa.c (insert_backedge_copies): Strengthen local
3072         "stmt" from gimple to gimple_assign.
3074         * tree-parloops.c (take_address_of): Likewise.
3076         * tree-predcom.c (replace_ref_with): Likewise, for "new_stmt".
3077         (initialize_root_vars_lm): Likewise, for "init_stmt".
3078         (reassociate_to_the_same_stmt): Likewise, for "new_stmt" and "tmp_stmt".
3080         * tree-profile.c (gimple_gen_edge_profiler): Likewise, for "stmt1",
3081         "stmt2", "stmt3".
3082         (gimple_gen_ic_profiler): Likewise.
3083         (gimple_gen_ic_func_profiler): Strengthen local "stmt1" from
3084         gimple to gimple_call, and "stmt2" to gimple_assign.
3086         * tree-scalar-evolution.c (scev_const_prop): Strengthen local
3087         "ass" from gimple to gimple_assign.
3089         * tree-sra.c (build_ref_for_offset): Likewise for "stmt".
3090         (generate_subtree_copies): Likewise; also strengthen "ds" to
3091         gimple_debug.
3092         (init_subtree_with_zero): Likewise.
3093         (sra_modify_expr): Likewise.
3094         (load_assign_lhs_subreplacements): Likewise.
3095         (sra_modify_assign): Strengthen "ds" to gimple_debug.
3096         (sra_ipa_reset_debug_stmts): Likewise for "def_temp".
3098         * tree-ssa-ccp.c (insert_clobber_before_stack_restore):
3099         Strengthen local "clobber_stmt" from gimple to gimple_assign.
3101         * tree-ssa-dce.c (remove_dead_stmt): Strengthen "note" to
3102         gimple_debug.
3104         * tree-ssa-dom.c (record_equivalences_from_stmt): Strengthen
3105         local "new_stmt" from gimple to gimple_assign.
3106         (optimize_stmt): Likewise.
3108         * tree-ssa-forwprop.c (simplify_bitwise_binary): Likewise for
3109         4 declarations of "newop".
3110         (simplify_rotate): Likewise for "g".
3112         * tree-ssa-loop-im.c (rewrite_reciprocal): Likewise for 3 locals.
3113         (rewrite_bittest): Likewise for "stmt" and "stmt2".
3114         (move_computations_dom_walker::before_dom_children): Likewise for
3115         "new_stmt".
3116         (execute_sm): Likewise for "load" and "store".
3118         * tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts):
3119         Strengthen local "stmt" from gimple to gimple_call.
3120         (unloop_loops): Likewise.
3122         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Strengthen
3123         local "ass" from gimple to gimple_assign.
3124         (remove_unused_ivs): Strengthen "def_temp" to gimple_debug.
3126         * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Strengthen local "stmt"
3127         from gimple to gimple_assign.
3129         * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Strengthen local
3130         "prefetch" from gimple to gimple_call.
3132         * tree-ssa-math-opts.c (insert_reciprocals): Strengthen local
3133         "new_stmt" from gimple to gimple_assign.
3134         (powi_as_mults_1): Likewise for "mult_stmt".
3135         (powi_as_mults): Likewise for "div_stmt".
3136         (build_and_insert_binop): Likewise for "stmt".
3137         (build_and_insert_cast): Likewise.
3138         (pass_cse_sincos::execute): Likewise for "stmt" and various decls
3139         of "new_stmt".
3140         (convert_mult_to_fma): Likewise for "fma_stmt".
3142         * tree-ssa-phiopt.c (conditional_replacement): Likewise for "new_stmt".
3143         (abs_replacement): Likewise.
3145         * tree-ssa-phiprop.c (phiprop_insert_phi): Likewise for "tmp".
3147         * tree-ssa-pre.c (create_expression_by_pieces): Likewise for "newstmt".
3148         (eliminate_insert): Likewise for "tem".
3150         * tree-ssa-propagate.c (update_gimple_call): Strengthen locals
3151         "new_stmt" and "stmt" from gimple to gimple_call.
3152         (update_call_from_tree): Likewise for "new_stmt".
3154         * tree-ssa-reassoc.c (build_and_add_sum): Likewise for "sum".
3155         (update_ops): Likewise for "g".
3156         (maybe_optimize_range_tests): Likewise.
3157         (rewrite_expr_tree_parallel): Require a gimple_assign rather than
3158         a plain gimple.
3159         (reassociate_bb): Add a checked cast to gimple_assign.
3161         * tree-ssa.c (insert_debug_temp_for_var_def): Strengthen local
3162         "def_temp" from gimple to gimple_debug.
3164         * tree-switch-conversion.c (emit_case_bit_tests): Strengthen local
3165         "shift_stmt" from gimple to gimple_assign.
3167         * tree-tailcall.c (adjust_return_value_with_ops): Likewise for
3168         "stmt".
3169         (update_accumulator_with_ops): Likewise.
3171         * tree-vect-data-refs.c (bump_vector_ptr): Likewise for
3172         "incr_stmt".
3174         * tree-vect-stmts.c (vectorizable_condition): Likewise for
3175         "new_stmt".
3177         * tree-vrp.c (build_assert_expr_for): Likewise for "assertion".
3178         (simplify_truth_ops_using_ranges): Likewise for "newop".
3179         (simplify_float_conversion_using_ranges): Likewise for "conv".
3181         * ubsan.c (instrument_mem_ref): Strengthen local "g" from gimple
3182         to gimple_call.
3184         * value-prof.c (gimple_divmod_fixed_value): Require a
3185         gimple_assign rather than a plain gimple; strengthen types of locals.
3186         (gimple_mod_pow2): Likewise.
3187         (gimple_mod_subtract): Likewise.
3188         (gimple_divmod_fixed_value_transform): Strengthen local
3189         "stmt" from gimple to gimple_assign.
3190         (gimple_mod_pow2_value_transform): Likewise.
3191         (gimple_mod_subtract_transform): Likewise.
3192         (gimple_ic): Strengthen types of locals.
3194 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3196         Introduce gimple_try
3198         * coretypes.h (gimple_try): New typedef.
3199         (const_gimple_try): New typedef.
3201         * gimple-low.c (gimple_try_catch_may_fallthru): Require a
3202         gimple_try rather than a plain gimple.
3203         (gimple_stmt_may_fallthru): Add checked cast to gimple_try.
3205         * gimple-pretty-print.c (dump_gimple_try): Require a gimple_try
3206         rather than a plain gimple.
3207         (pp_gimple_stmt_1): Add checked cast to gimple_try within
3208         GIMPLE_TRY case of switch statement.
3210         * tree-eh.c (finally_tree_node::parent): Strengthen field from
3211         gimple to gimple_try.
3212         (record_in_finally_tree): Require a gimple_try rather than a plain
3213         gimple.
3214         (collect_finally_tree): Likewise.
3215         (collect_finally_tree_1): Likewise.
3216         (struct leh_tf_state::try_finally_expr): Strengthen field from
3217         gimple to gimple_try.
3218         (struct leh_tf_state::top_p): Likewise.
3219         (lower_eh_must_not_throw): Require a gimple_try rather than a
3220         plain gimple.
3221         (frob_into_branch_around): Likewise.
3222         (lower_try_finally_dup_block): Strengthen local from gimple to
3223         gimple_try.
3224         (honor_protect_cleanup_actions): Split out uses of "x" into new
3225         locals "eh_mnt" and "try_stmt" with stronger types.
3226         (lower_try_finally): Require a gimple_try rather than a plain
3227         gimple.
3228         (lower_catch): Likewise.
3229         (lower_eh_filter): Likewise.
3230         (lower_eh_must_not_throw): Likewise.
3231         (lower_cleanup): Likewise.
3232         (lower_eh_constructs_2): Add checked cast to gimple_try within
3233         GIMPLE_TRY case of switch statement, introducing new local
3234         "try_stmt", using it for type-safety.
3236 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3238         Use subclasses of gimple in various places
3240         * asan.c (insert_if_then_before_iter): Require a gimple cond
3241         rathern than a plain gimple.
3242         (asan_expand_check_ifn): Add a checked cast to gimple_cond.
3244         * cfgloopmanip.c (create_empty_if_region_on_edge): Likewise.
3246         * omp-low.c (simd_clone_adjust): Strengthen local from gimple
3247         to gimple_phi.
3249         * sese.c (set_ifsese_condition): Strengthen local from gimple to
3250         gimple_cond.
3252         * tree-call-cdce.c (gen_one_condition): Strengthen locals from
3253         gimple to gimple_assign and gimple_cond.
3255         * tree-ssa-phiopt.c (minmax_replacement): Likewise.
3256         (cond_store_replacement): Strengthen locals from gimple to
3257         gimple_phi and gimple_assign.
3258         (cond_if_else_store_replacement_1): Likewise.
3260         * tree-ssa-pre.c (do_regular_insertion): Strengthen local from
3261         gimple to gimple_assign.
3263         * tree-switch-conversion.c (hoist_edge_and_branch_if_true):
3264         Strengthen local from gimple to gimple_cond.
3265         (gen_def_assigns): Return a gimple_assign rather than a plain
3266         gimple.
3267         (gen_inbound_check): Strengthen locals from gimple to gimple_cond
3268         and gimple_assign.
3270         * tree-vect-loop-manip.c (slpeel_add_loop_guard): Strengthen local
3271         from gimple to gimple_cond.
3272         (set_prologue_iterations): Strengthen locals from gimple to
3273         gimple_phi and gimple_cond.
3275         * value-prof.c (gimple_ic): Strengthen local from gimple to
3276         gimple_phi.
3277         (gimple_stringop_fixed_value): Strengthen locals from gimple to
3278         gimple_assign, gimple_cond, gimple_call, and gimple_phi.
3280 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3282         Introduce gimple_eh_dispatch
3284         * coretypes.h (gimple_eh_dispatch): New typedef.
3285         (const_gimple_eh_dispatch): New typedef.
3287         * gimple-pretty-print.c (dump_gimple_eh_dispatch): Require a
3288         gimple_eh_dispatch rather than a plain gimple.
3289         (pp_gimple_stmt_1): Add a checked cast to gimple_eh_dispatch
3290         within GIMPLE_EH_DISPATCH case of switch statement.
3292         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3294         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3296         * gimple.c (gimple_build_eh_dispatch): Return a gimple_eh_dispatch
3297         rather than a plain gimple.
3299         * gimple.h (gimple_build_eh_dispatch): Return a gimple_eh_dispatch
3300         rather than a plain gimple.
3301         (gimple_eh_dispatch_region): Require a const_gimple_eh_dispatch
3302         rather than a plain const_gimple.
3303         (gimple_eh_dispatch_set_region): Require a gimple_eh_dispatch
3304         rather than a plain gimple.
3306         * tree-cfg.c (make_edges): Add a checked cast to gimple_eh_dispatch
3307         within GIMPLE_EH_DISPATCH case of switch statement.
3308         (gimple_verify_flow_info): Likewise.
3309         (gimple_redirect_edge_and_branch): Likewise.
3310         (move_stmt_r): Likewise, adding a local.
3312         * tree-eh.c (emit_eh_dispatch): Convert local from gimple to
3313         gimple_eh_dispatch.
3314         (make_eh_dispatch_edges): Require a gimple_eh_dispatch rather than
3315         a plain gimple.
3316         (redirect_eh_dispatch_edge): Likewise.
3317         (lower_eh_dispatch): Likewise.
3318         (execute_lower_eh_dispatch): Add a checked cast to
3319         gimple_eh_dispatch.
3320         (mark_reachable_handlers): Likewise.
3321         (verify_eh_dispatch_edge): Require a gimple_eh_dispatch rather
3322         than a plain gimple.
3324         * tree-eh.h (make_eh_dispatch_edges): Likewise.
3325         (redirect_eh_dispatch_edge): Likewise.
3326         (verify_eh_dispatch_edge): Likewise.
3328         * tree-inline.c (remap_gimple_stmt): Add a checked cast to
3329         gimple_eh_dispatch within GIMPLE_EH_DISPATCH case of switch
3330         statement, adding a local.
3331         (copy_edges_for_bb): Add a checked cast to gimple_eh_dispatch.
3333 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3335         Introduce gimple_resx
3337         * coretypes.h (gimple_resx): New typedef.
3338         (const_gimple_resx): New typedef.
3340         * gimple.h (gimple_build_resx): Return a gimple_resx rather than a
3341         plain gimple.
3342         (gimple_resx_region): Require a const_gimple_resx rather than a
3343         plain const_gimple.
3344         (gimple_resx_set_region): Require a gimple_resx rather than a
3345         plain gimple.
3347         * gimple-pretty-print.c (dump_gimple_resx): Require a gimple_resx
3348         rather than a plain gimple.
3349         (pp_gimple_stmt_1): Add a checked cast to gimple_resx within
3350         GIMPLE_RESX case of switch statement.
3352         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3354         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3356         * gimple.c (gimple_build_resx): Return a gimple_resx rather than
3357         a plain gimple.
3359         * tree-cfg.c (move_stmt_r): Add a checked cast to gimple_resx
3360         within GIMPLE_RESX case of switch statement, adding a new local.
3362         * tree-eh.c (emit_resx): Convert local "x" from gimple to
3363         gimple_resx.
3364         (lower_resx): Require a gimple_resx rather than a plain gimple.
3365         (pass_lower_resx::execute): Add a checked cast to gimple_resx.
3366         (mark_reachable_handlers): Likewise.
3368         * tree-inline.c (remap_gimple_stmt): Add a checked cast to
3369         gimple_resx within GIMPLE_RESX case of switch statement, adding
3370         a new local.
3372 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3374         Introduce gimple_eh_else
3376         * coretypes.h (gimple_eh_else): New typedef.
3377         (const_gimple_eh_else): New typedef.
3379         * gimple.h (gimple_build_eh_else): Return a gimple_eh_else rather
3380         than a plain gimple.
3381         (gimple_eh_else_n_body_ptr): Require a gimple_eh_else rather than
3382         a plain gimple.
3383         (gimple_eh_else_n_body): Likewise.
3384         (gimple_eh_else_e_body_ptr): Likewise.
3385         (gimple_eh_else_e_body): Likewise.
3386         (gimple_eh_else_set_n_body): Likewise.
3387         (gimple_eh_else_set_e_body): Likewise.
3389         * gimple-low.c (lower_stmt): Add checked cast to gimple_eh_else
3390         within GIMPLE_EH_ELSE case of switch statement, introducing a new
3391         local.
3392         (gimple_stmt_may_fallthru): Likewise.
3394         * gimple-pretty-print.c (dump_gimple_eh_else): Require a
3395         gimple_eh_else rather than a plain gimple.
3396         (pp_gimple_stmt_1): Add checked cast to gimple_eh_else within
3397         GIMPLE_EH_ELSE case of switch statement
3399         * gimple-walk.c (walk_gimple_stmt): Add checked cast to
3400         gimple_eh_else within GIMPLE_EH_ELSE case of switch statement,
3401         introducing a new local.
3403         * gimple.c (gimple_build_eh_else): Return a gimple_eh_else
3404         rather than a plain gimple.
3405         (gimple_copy): Add checked casts to gimple_eh_else within
3406         GIMPLE_EH_ELSE case of switch statement, introducing new locals.
3408         * tree-cfg.c (verify_gimple_in_seq_2): Add checked cast to
3409         gimple_eh_else within GIMPLE_EH_ELSE case of switch statement,
3410         introducing a new local.
3412         * tree-eh.c (collect_finally_tree): Likewise.
3413         (replace_goto_queue_1): Likewise.
3414         (get_eh_else): Return a gimple_eh_else rather than a plain gimple.
3415         (honor_protect_cleanup_actions): Convert local "eh_else" from
3416         gimple to gimple_eh_else.
3417         (lower_try_finally_nofallthru): Likewise.
3418         (lower_try_finally_onedest): Introduce locals "eh_else" and
3419         "label_stmt", using them in favor of "x" for the gimple_eh_else
3420         and the gimple_label.
3421         (lower_try_finally_copy): Convert local "eh_else" from gimple to
3422         gimple_eh_else.
3423         (lower_try_finally_switch): Likewise.
3424         (decide_copy_try_finally): Likewise.
3425         (refactor_eh_r): Add checked cast to gimple_eh_else within
3426         GIMPLE_EH_ELSE case of switch statement, introducing a new local.
3428 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3430         Introduce gimple_eh_must_not_throw
3432         * coretypes.h (gimple_eh_must_not_throw): New typedef.
3433         (const_gimple_eh_must_not_throw): New typedef.
3435         * gimple-pretty-print.c (dump_gimple_eh_must_not_throw): Require
3436         a gimple_eh_must_not_throw rather than a plain gimple.
3437         (pp_gimple_stmt_1): Add a checked cast to gimple_eh_must_not_throw
3438         within GIMPLE_EH_MUST_NOT_THROW case of switch statement.
3440         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3442         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3444         * gimple.c (gimple_build_eh_must_not_throw): Return a
3445         gimple_eh_must_not_throw rather than a plain gimple.
3447         * gimple.h (gimple_build_eh_must_not_throw): Return a
3448         gimple_eh_must_not_throw rather than a plain gimple.
3449         (gimple_eh_must_not_throw_fndecl): Require a
3450         gimple_eh_must_not_throw rather than a plain gimple.
3451         (gimple_eh_must_not_throw_set_fndecl): Likewise.
3453         * tree-eh.c (lower_eh_must_not_throw): Add checked cast.
3455 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3457         Introduce gimple_eh_filter
3459         * coretypes.h (gimple_eh_filter): New typedef.
3460         (const_gimple_eh_filter): New typedef.
3462         * gimple.h (gimple_build_eh_filter): Return a gimple_eh_filter
3463         rather than a plain gimple.
3465         * gimple-pretty-print.c (dump_gimple_eh_filter): Require a
3466         gimple_eh_filter rather than a plain gimple.
3467         (pp_gimple_stmt_1): Add checked cast to gimple_eh_filter within
3468         GIMPLE_EH_FILTER case of switch statement.
3470         * gimple.c (gimple_build_eh_filter): Return a gimple_eh_filter
3471         rather than a plain gimple.
3473 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3475         Introduce gimple_catch
3477         * coretypes.h (gimple_catch): New typedef.
3478         (const_gimple_catch): New typedef.
3480         * gimple-low.c (lower_try_catch): Add checked cast to gimple_catch.
3481         (gimple_try_catch_may_fallthru): Likewise.
3483         * gimple-pretty-print.c (dump_gimple_catch): Require a gimple_catch
3484         rather than a plain gimple.
3485         (pp_gimple_stmt_1): Add checked cast to gimple_catch within
3486         GIMPLE_CATCH case of switch statement.
3488         * gimple-walk.c (walk_gimple_op): Likewise.
3489         (walk_gimple_stmt): Likewise.
3491         * gimple.c (gimple_build_catch): Return a gimple_catch rather than
3492         a plain gimple.
3493         (gimple_copy): Add checked casts to gimple_catch within
3494         GIMPLE_CATCH case of switch statement, introducing new locals.
3496         * gimple.h (gimple_build_catch): Return a gimple_catch rather than
3497         a plain gimple.
3498         (gimple_catch_types_ptr): Require a gimple_catch rather than a
3499         plain gimple.
3500         (gimple_catch_handler_ptr): Likewise.
3501         (gimple_catch_handler): Likewise.
3502         (gimple_catch_set_types): Likewise.
3503         (gimple_catch_set_handler): Likewise.
3505         * omp-low.c (lower_omp_1): Add checked cast to gimple_catch within
3506         GIMPLE_CATCH case of switch statement.
3508         * tree-cfg.c (verify_gimple_in_seq_2): Likewise.
3509         (do_warn_unused_result): Likewise.
3511         * tree-eh.c (collect_finally_tree): Likewise.
3512         (replace_goto_queue_1): Likewise.
3513         (lower_catch): Convert local from gimple to gimple_catch.
3514         (refactor_eh_r): Add checked cast to gimple_catch within
3515         GIMPLE_CATCH case of switch statement.
3517         * tree-inline.c (remap_gimple_stmt): Likewise.
3518         (estimate_num_insns): Add checked cast to gimple_catch within
3519         GIMPLE_CATCH case of switch statement, introducing new local.
3521 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3523         Introduce gimple_transaction
3525         * coretypes.h (gimple_transaction): New typedef.
3526         (const_gimple_transaction): New typedef.
3528         * gimple.h (gimple_build_transaction): Return a gimple_transaction
3529         rather than a plain gimple.
3530         (gimple_transaction_body_ptr): Require a gimple_transaction rather
3531         than a plain gimple.
3532         (gimple_transaction_body): Likewise.
3533         (gimple_transaction_label_ptr): Likewise.
3534         (gimple_transaction_set_body): Likewise.
3535         (gimple_transaction_set_label): Likewise.
3536         (gimple_transaction_set_subcode): Likewise.
3537         (gimple_transaction_label): Require a const_gimple_transaction
3538         rather than a plain const_gimple.
3539         (gimple_transaction_subcode): Likewise.
3541         * gimple-low.c (lower_stmt): Add checked cast to
3542         gimple_transaction within GIMPLE_TRANSACTION case of switch
3543         statement.
3545         * gimple-pretty-print.c (dump_gimple_transaction): Require a
3546         gimple_transaction rather than a plain gimple.
3547         (pp_gimple_stmt_1): Add checked cast to gimple_transaction within
3548         GIMPLE_TRANSACTION case of switch statement.
3549         * gimple-streamer-in.c (input_gimple_stmt): Likewise.
3550         * gimple-streamer-out.c (output_gimple_stmt): Likewise.
3551         * gimple-walk.c (walk_gimple_op): Likewise.
3552         (walk_gimple_stmt): Likewise.
3554         * gimple.c (gimple_build_transaction): Return a gimple_transaction
3555         rather than a plain gimple.
3556         (gimple_copy): Add checked casts to gimple_transaction within
3557         GIMPLE_TRANSACTION case of switch statement.
3559         * gimplify.c (gimplify_transaction): Split local "g" into
3560         "body_stmt" and "trans_stmt", strengthening the type of the latter
3561         from gimple to gimple_transaction.
3563         * omp-low.c (lower_omp_1): Add checked cast to gimple_transaction
3564         within GIMPLE_TRANSACTION case of switch statement.
3566         * trans-mem.c (diagnose_tm_1): Add checked cast within
3567         GIMPLE_TRANSACTION case of switch statement, introducing a new
3568         local "trans_stmt".  Use it in place of "stmt".
3569         (examine_call_tm): Convert local from gimple to gimple_transaction.
3570         (tm_region::get_transaction_stmt): New method.
3571         (tm_region::transaction_stmt): Add clarification of type to the
3572         comment.
3573         (tm_region_init_0): Require a gimple_transaction rather than a
3574         plain gimple.
3575         (tm_region_init): Convert a check against GIMPLE_TRANSACTION to a
3576         dyn_cast<gimple_transaction> and new local.
3577         (transaction_subcode_ior): Add a new local, using the new
3578         get_transaction_stmt method to perform a checked cast.
3579         (propagate_tm_flags_out): Likewise.
3580         (expand_transaction): Add a checked cast using the new
3581         get_transaction_stmt method.
3582         (generate_tm_state): Likewise.
3583         (execute_tm_mark): Likewise.
3584         (ipa_tm_diagnose_transaction): Likewise.
3586         * tree-cfg.c (verify_gimple_transaction): Require a
3587         gimple_transaction rather than a plain gimple.
3588         (make_edges): Add checked cast within GIMPLE_TRANSACTION case of
3589         switch statement
3590         (cleanup_dead_labels): Likewise.
3591         (verify_gimple_stmt): Likewise.
3592         (verify_gimple_in_seq_2): Likewise.
3593         (verify_gimple_in_seq_2): Likewise.
3594         (gimple_redirect_edge_and_branch): Add checked cast.
3596         * tree-inline.c (remap_gimple_stmt): Add checked cast within
3597         GIMPLE_TRANSACTION case of switch statement, introducing a new
3598         local "old_trans_stmt".  Use it in place of "stmt".  Add new
3599         local "new_trans_stmt", using it to initialize "copy", and for
3600         type-safe operations as a transaction.
3601         (estimate_num_insns): Add checked cast within GIMPLE_TRANSACTION
3602         case of switch statement.
3604 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3606         Introduce gimple_asm
3608         * coretypes.h (gimple_asm): New typedef.
3609         (const_gimple_asm): New typedef.
3611         * gimple.h (gimple_build_asm_vec): Return a gimple_asm rather than
3612         just a gimple.
3613         (gimple_asm_clobbers_memory_p): Require a const_gimple_asm rather
3614         than just a const_gimple.
3615         (gimple_asm_ninputs): Likewise.
3616         (gimple_asm_noutputs): Likewise.
3617         (gimple_asm_nclobbers): Likewise.
3618         (gimple_asm_nlabels): Likewise.
3619         (gimple_asm_input_op): Likewise.
3620         (gimple_asm_input_op_ptr): Likewise.
3621         (gimple_asm_output_op): Likewise.
3622         (gimple_asm_output_op_ptr): Likewise.
3623         (gimple_asm_clobber_op): Likewise.
3624         (gimple_asm_label_op): Likewise.
3625         (gimple_asm_string): Likewise.
3626         (gimple_asm_volatile_p): Likewise.
3627         (gimple_asm_input_p): Likewise.
3628         (gimple_asm_set_input_op): Require a gimple_asm rather than a plain
3629         gimple.
3630         (gimple_asm_set_output_op): Likewise.
3631         (gimple_asm_set_clobber_op): Likewise.
3632         (gimple_asm_set_label_op): Likewise.
3633         (gimple_asm_set_volatile): Likewise.
3634         (gimple_asm_set_input): Likewise.
3636         * cfgexpand.c (expand_asm_stmt): Require a gimple_asm rather than
3637         a plain gimple.
3638         (expand_gimple_stmt_1): Add checked cast to gimple_asm within
3639         GIMPLE_ASM case of switch statement.
3641         * gimple-fold.c (fold_stmt_1): Add new local from checked cast to
3642         gimple_asm within case GIMPLE_ASM.
3644         * gimple-pretty-print.c (dump_gimple_asm): Require a gimple_asm
3645         rather than a plain gimple.
3646         (pp_gimple_stmt_1): Add checked cast to gimple_asm within
3647         GIMPLE_ASM case of switch statement.
3649         * gimple-streamer-in.c (input_gimple_stmt): Rework existing
3650         checked cast to gimple_asm; add a new one.
3652         * gimple-streamer-out.c (output_gimple_stmt): Add new local from
3653         checked cast to gimple_asm within case GIMPLE_ASM.
3655         * gimple-walk.c (walk_gimple_asm): Require a gimple_asm rather
3656         than a plain gimple.
3657         (walk_gimple_op): Add checked cast to gimple_asm within GIMPLE_ASM
3658         case of switch statement.
3659         (walk_stmt_load_store_addr_ops): Use dyn_cast<gimple_asm> in place
3660         of a code check against GIMPLE_ASM to introduce a new gimple_asm
3661         local.
3663         * gimple.c (gimple_build_asm_1): Return a gimple_asm rather than
3664         a plain gimple.
3665         (gimple_build_asm_vec): Likewise.
3666         (gimple_has_side_effects): Add a checked cast to gimple_asm.
3667         (gimple_could_trap_p_1): Likewise.
3668         (gimple_call_builtin_p): Require a const_gimple_asm rather then
3669         a const_gimple.
3671         * gimplify-me.c (gimple_regimplify_operands): Add a checked cast
3672         and a new local of type gimple_asm within GIMPLE_ASM case.
3674         * gimplify.c (gimplify_asm_expr): Convert a local from gimple to
3675         gimple_asm.
3677         * ipa-pure-const.c (check_stmt): Add checked casts within
3678         GIMPLE_ASM case.
3680         * ssa-iterators.h (op_iter_init): Likewise.
3682         * tree-cfg.c (make_goto_expr_edges): Convert a local from gimple
3683         to gimple_asm.
3684         (cleanup_dead_labels): Add a checked cast and a new local of type
3685         gimple_asm within GIMPLE_ASM case.
3686         (gimple_redirect_edge_and_branch): Likewise.
3687         (is_ctrl_altering_stmt): Add a checked cast.
3688         (need_fake_edge_p): Replace a code check against GIMPLE_ASM with a
3689         dyn_cast<gimple_asm>.
3691         * tree-complex.c (expand_complex_comparison): Convert a local from
3692         gimple to gimple_asm.
3694         * tree-data-ref.c (get_references_in_stmt): Add a checked cast to
3695         gimple_asm.
3697         * tree-eh.c (stmt_could_throw_p): Likewise.
3699         * tree-inline.c (estimate_num_insns): Likewise.
3701         * tree-sra.c (scan_function): Add a checked cast and a new local
3702         of type gimple_asm within GIMPLE_ASM case.
3703         (sra_modify_function_body): Likewise.
3704         (ipa_sra_modify_function_body): Likewise.
3706         * tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
3708         * tree-ssa-dce.c (propagate_necessity): Replace a code check
3709         against GIMPLE_ASM with a dyn_cast<gimple_asm>.
3711         * tree-ssa-operands.c (maybe_add_call_vops): Require a gimple_asm
3712         rather than a plain gimple.
3713         (parse_ssa_operands): Add a checked cast to gimple_asm.
3715         * tree-ssa-structalias.c (find_func_aliases): Replace a check for
3716         GIMPLE_ASM with a dyn_cast<gimple_asm>, introducing  a new local
3717         "asm_stmt", using it in place of "t" for typesafety.
3719         * tree-ssa-threadedge.c
3720         (record_temporary_equivalences_from_stmts_at_dest): Add a checked
3721         cast to gimple_asm.
3723         * tree-ssa.c (execute_update_addresses_taken): Add checked casts
3724         and new locals of type gimple_asm within clauses guarded by code
3725         check.
3727 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3729         Introduce gimple_goto
3731         * coretypes.h (gimple_goto): New typedef.
3732         (const_gimple_goto): New typedef.
3734         * gimple.h (gimple_statement_goto): New subclass of
3735         gimple_statement_with_ops, adding the invariant that
3736         stmt->code == GIMPLE_GOTO.
3737         (is_a_helper <gimple_statement_goto>::test): New.
3738         (gimple_build_goto): Return a gimple_goto rather than a
3739         plain gimple.
3741         * gimple-pretty-print.c (dump_gimple_goto): Require a gimple_goto
3742         rather than a plain gimple.
3743         (pp_gimple_stmt_1): Add a checked cast to gimple_goto within
3744         GIMPLE_GOTO case of switch statement.
3746         * gimple.c (gimple_build_goto): Return a gimple_goto rather than a
3747         plain gimple.
3749         * tree-cfg.c (verify_gimple_goto): Require a gimple_goto rather
3750         than a plain gimple.
3751         (verify_gimple_stmt): Add a checked cast to gimple_goto within
3752         GIMPLE_GOTO case of switch statement.
3754 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3756         Introduce gimple_return
3758         * coretypes.h (gimple_return): New typedef.
3759         (const_gimple_return): New typedef.
3761         * gimple.h (gimple_statement_return): New subclass of
3762         gimple_statement_with_memory_ops, adding the invariant that
3763         stmt->code == GIMPLE_RETURN.
3764         (is_a_helper <gimple_statement_return>::test): New.
3765         (gimple_build_return): Return a gimple_return rather
3766         than a plain gimple.
3768         * gimple.c (gimple_build_return): Return a gimple_return rather
3769         than a plain gimple.
3771         * cgraphunit.c (expand_thunk): Convert local from a gimple to
3772         a gimple_return.
3774         * gimple-low.c (struct return_statements_t): Convert field "stmt"
3775         from a gimple to a gimple_return.
3776         (lower_gimple_return): Convert local from a gimple to a
3777         gimple_return.
3779         * gimple-pretty-print.c (dump_gimple_return): Require a
3780         gimple_return rather than a plain gimple.
3781         (pp_gimple_stmt_1): Add a checked cast to gimple_return within
3782         case GIMPLE_RETURN of switch statement.
3784         * gimplify.c (gimplify_return_expr): Convert locals from
3785         gimple to gimple_return.
3787         * ipa-split.c (split_function): Likewise.
3789         * tree-cfg.c (verify_gimple_assign): Require a gimple_return
3790         rather than a plain gimple.
3791         (verify_gimple_stmt): Add checked cast to gimple_return within
3792         case GIMPLE_RETURN of switch statement.
3794         * tree-tailcall.c (adjust_return_value): Convert local from
3795         gimple to gimple_return.
3797 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
3799         Introduce gimple_call
3801         * coretypes.h (gimple_call): New typedef.
3802         (const_gimple_call): New typedef.
3804         * asan.c (get_mem_refs_of_builtin_call): Require a
3805         const_gimple_call rather than a const gimple.
3806         (has_stmt_been_instrumented_p): Add a checked cast to
3807         gimple_call.
3808         (instrument_strlen_call): Likewise.
3809         (instrument_builtin_call): Likewise.
3810         * builtins.c (validate_gimple_arglist): Require a
3811         const_gimple_call rather than a const gimple.
3812         (fold_call_stmt): Require a gimple_call rather than a gimple.
3813         * builtins.h (validate_gimple_arglist): Require a
3814         const_gimple_call rather than a const gimple.
3815         (fold_call_stmt): Require a gimple_call rather than a gimple.
3816         * cfgexpand.c (expand_call_stmt): Likewise.
3817         (expand_gimple_stmt_1): Add a checked cast to gimple_call within
3818         GIMPLE_CALL case.
3819         * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Strengthen
3820         local "new_stmt" from gimple to gimple_call, adding a checked
3821         cast.
3822         * cgraphunit.c (cgraph_node::expand_thunk): Likewise for local
3823         "call".
3824         * gimple-fold.c (gimple_fold_builtin_snprintf_chk): Likewise for
3825         local "stmt".
3826         (gimple_fold_builtin_snprintf): Likewise.
3827         (gimple_fold_builtin): Likewise.
3828         (gimple_fold_call): Likewise.
3829         (gimple_fold_stmt_to_constant_1): Introduce local "call_stmt" via
3830         checked cast of "stmt" to gimple_call, using it in various places
3831         for typesafety.
3832         * gimple-pretty-print.c (dump_gimple_call_args): Strengthen param
3833         2 from gimple to gimple_call.
3834         (dump_gimple_call): Likewise.
3835         (pp_gimple_stmt_1): Add a checked cast to gimple_call within
3836         GIMPLE_CALL case.
3837         * gimple-streamer-in.c (input_gimple_stmt): Replace is_gimple_call
3838         with a dyn_cast<gimple_call>, introducing local "call_stmt", and
3839         using it in place of "stmt" for typesafety.  Add a checked cast
3840         in statement guarded by check for GIMPLE_CALL.
3841         * gimple-walk.c (walk_gimple_op): Add a checked cast to
3842         gimple_call.
3843         * gimple.c (gimple_call_reset_alias_info): Strengthen param from
3844         gimple to gimple_call.
3845         (gimple_build_call_1): Strengthen return type and local from
3846         gimple to gimple_call.
3847         (gimple_build_call_vec): Likewise.
3848         (gimple_build_call): Likewise.
3849         (gimple_build_call_valist): Likewise.
3850         (gimple_build_call_internal_1): Likewise.
3851         (gimple_build_call_internal): Likewise.
3852         (gimple_build_call_internal_vec): Likewise.
3853         (gimple_build_call_from_tree): Likewise.
3854         (gimple_call_return_flags): Strengthen param from
3855         const_gimple to const_gimple_call.
3856         (gimple_call_copy_skip_args): Strengthen return type and local from
3857         gimple to gimple_call.
3858         * gimple.h (gimple_call_reset_alias_info): Strengthen param from
3859         gimple to gimple_call.
3860         (gimple_build_call_vec): Strengthen return type from gimple to
3861         gimple_call.
3862         (gimple_build_call): Likewise.
3863         (gimple_build_call_valist): Likewise.
3864         (gimple_build_call_internal): Likewise.
3865         (gimple_build_call_internal_vec): Likewise.
3866         (gimple_build_call_from_tree): Likewise.
3867         (gimple_call_return_flags): Strengthen param from const_gimple to
3868         const_gimple_call.
3869         (gimple_call_copy_skip_args): Strengthen return type from gimple
3870         to gimple_call.
3871         (gimple_call_set_internal_fn): Strengthen param "call_stmt" from
3872         gimple to gimple_call.
3873         (gimple_call_return_type): Strengthen param from const_gimple to
3874         const_gimple_call.
3875         (gimple_call_chain_ptr): Likewise.
3876         (gimple_call_set_chain): Strengthen param from gimple to
3877         gimple_call.
3878         (gimple_call_set_return_slot_opt): Likewise.
3879         (gimple_call_set_from_thunk): Likewise.
3880         (gimple_call_from_thunk_p): Likewise.
3881         (gimple_call_set_va_arg_pack): Likewise.
3882         (gimple_call_va_arg_pack_p): Likewise.
3883         (gimple_call_set_alloca_for_var): Likewise.
3884         (gimple_call_alloca_for_var_p): Likewise.
3885         (gimple_expr_type): Introduce local "call_stmt" via a checked cast
3886         and use it for typesafety.
3887         * gimplify.c (gimplify_call_expr): Strengthen local "call" from
3888         gimple to gimple_call.
3889         (gimplify_modify_expr_to_memcpy): Likewise for local "gs".
3890         (gimplify_modify_expr_to_memset): Likewise.
3891         (gimplify_modify_expr): Add a checked cast to gimple_call.
3892         (gimplify_expr): Strengthen local "call" from gimple to
3893         gimple_call.
3894         (gimplify_function_tree): Likewise.
3895         * internal-fn.c (expand_LOAD_LANES): Strengthen param from gimple
3896         to gimple_call.
3897         (expand_STORE_LANES): Likewise.
3898         (expand_ANNOTATE): Likewise.
3899         (expand_GOMP_SIMD_LANE): Likewise.
3900         (expand_GOMP_SIMD_VF): Likewise.
3901         (expand_GOMP_SIMD_LAST_LANE): Likewise.
3902         (expand_UBSAN_NULL): Likewise.
3903         (expand_UBSAN_BOUNDS): Likewise.
3904         (expand_UBSAN_OBJECT_SIZE): Likewise.
3905         (expand_ASAN_CHECK): Likewise.
3906         (ubsan_expand_si_overflow_addsub_check): Likewise.
3907         (ubsan_expand_si_overflow_neg_check): Likewise.
3908         (ubsan_expand_si_overflow_mul_check): Likewise.
3909         (expand_UBSAN_CHECK_ADD): Likewise.
3910         (expand_UBSAN_CHECK_SUB): Likewise.
3911         (expand_UBSAN_CHECK_MUL): Likewise.
3912         (expand_LOOP_VECTORIZED): Likewise.
3913         (expand_MASK_LOAD): Likewise.
3914         (expand_MASK_STORE): Likewise.
3915         (expand_ABNORMAL_DISPATCHER): Likewise.
3916         (expand_BUILTIN_EXPECT): Likewise.
3917         (internal_fn_expanders): Likewise for entries in this table.
3918         (expand_internal_call): Likewise.
3919         * internal-fn.def: Update comment to reflect strengthening of
3920         param of expanders.
3921         * internal-fn.h (expand_internal_call): Strengthen param from
3922         gimple to gimple_call.
3923         * ipa-prop.c (ipa_modify_call_arguments): Likewise for local
3924         "new_stmt".
3925         * ipa-pure-const.c (check_call): Likewise for param "call".
3926         (check_stmt): Add a checked cast to gimple_call within GIMPLE_CALL
3927         case.
3928         * ipa-split.c (split_function): Strengthen local "call" from
3929         gimple to gimple_call.
3930         * omp-low.c (build_omp_barrier): Likewise for local "g".
3931         (lower_rec_input_clauses): Likewise for local "stmt".
3932         * trans-mem.c (build_tm_load): Likewise for return type and local
3933         "gcall".
3934         (build_tm_store): Likewise.
3935         (expand_transaction): Likewise for local "call".
3936         * tree-call-cdce.c (check_pow): Likewise for param.
3937         (check_builtin_call): Likewise.
3938         (is_call_dce_candidate): Likewise.
3939         (gen_conditions_for_pow): Likewise.
3940         (gen_shrink_wrap_conditions): Likewise.
3941         (shrink_wrap_one_built_in_call): Likewise.
3942         (shrink_wrap_conditional_dead_built_in_calls): Strengthen param
3943         from vec<gimple> to vec<gimple_call>, and local "bi_call" from
3944         gimple to gimple_call.
3945         (pass_call_cdce::execute): Strengthen local
3946         "cond_dead_built_in_calls" from auto_vec<gimple> to
3947         auto_vec<gimple_call> and local "stmt" from gimple to gimple_call,
3948         * tree-cfg.c (notice_special_calls): Strengthen param from gimple
3949         to gimple_call.
3950         * tree-cfg.h (notice_special_calls): Likewise.
3951         * tree-complex.c (expand_complex_libcall): Likewise for local
3952         "stmt".
3953         * tree-inline.c (remap_gimple_stmt): Add checked cast to
3954         gimple_call.
3955         (copy_bb): Likewise.  Strengthen local "new_call" from gimple to
3956         gimple_call.
3957         (inline_forbidden_p_stmt): Add checked cast to gimple_call.
3958         * tree-nested.c (init_tmp_var_with_call): Strengthen param "call"
3959         from gimple to gimple_call.
3960         (convert_nl_goto_reference): Likewise for local "call".
3961         (convert_tramp_reference_op): Likewise.
3962         (convert_gimple_call): Add checked cast to gimple_call.
3963         * tree-nrv.c (dest_safe_for_nrv_p): Strengthen param "call" from
3964         gimple to gimple_call.
3965         (pass_return_slot::execute): Likewise for local "stmt", using a
3966         dyn_cast<gimple_call> rather than an is_gimple_call call.
3967         * tree-object-size.c (alloc_object_size): Strengthen param "call"
3968         from const_gimple to const_gimple_call.
3969         (pass_through_call): Likewise.
3970         (call_object_size): Strengthen param "call" from gimple to
3971         gimple_call.
3972         (collect_object_sizes_for): Introduce local "call_stmt" via a
3973         checked cast, using it for typesafety.
3974         (check_for_plus_in_loops_1): Likewise.
3975         (pass_object_sizes::execute): Add a checked cast to gimple_call.
3976         * tree-profile.c (gimple_gen_interval_profiler): Strengthen local
3977         "call" from gimple to gimple_call.
3978         (gimple_gen_pow2_profiler): Likewise.
3979         (gimple_gen_one_value_profiler): Likewise.
3980         (gimple_gen_time_profiler): Likewise.
3981         (gimple_gen_average_profiler): Likewise.
3982         (gimple_gen_ior_profiler): Likewise.
3983         * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise for
3984         param "call".
3985         (ref_maybe_used_by_call_p): Likewise.
3986         (ref_maybe_used_by_stmt_p): Add a checked cast to gimple_call.
3987         (call_may_clobber_ref_p_1): Strengthen param "call" from gimple to
3988         gimple_call.
3989         (call_may_clobber_ref_p): Likewise.
3990         (stmt_may_clobber_ref_p_1): Add a checked cast to gimple_call.
3991         * tree-ssa-alias.h (call_may_clobber_ref_p): Strengthen param 1
3992         from gimple to gimple_call.
3993         (call_may_clobber_ref_p_1): Likewise.
3994         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Add a checked cast
3995         to gimple_call.
3996         * tree-ssa-loop-prefetch.c (emit_mfence_after_loop): Strengthen
3997         local "call" from gimple to gimple_call.
3998         * tree-ssa-math-opts.c (build_and_insert_call): Likewise for local
3999         "call_stmt".
4000         * tree-ssa-operands.c (maybe_add_call_vops): Likewise for param
4001         "stmt".
4002         (parse_ssa_operands): Add a checked cast to gimple_call within
4003         GIMPLE_CALL case.
4004         * tree-ssa-pre.c (compute_avail): Add a checked cast to
4005         gimple_call.
4006         * tree-ssa-sccvn.c (copy_reference_ops_from_call): Strengthen
4007         param "call" from gimple to gimple_call.
4008         (valueize_shared_reference_ops_from_call): Likewise.
4009         (vn_reference_lookup_3): Add a checked cast to gimple_call.
4010         (vn_reference_lookup_call): Strengthen param "call" from gimple to
4011         gimple_call.
4012         (visit_reference_op_call): Likewise for param "stmt".
4013         (visit_use): Replace is_gimple_call with a dyn_cast, introducing
4014         local "call_stmt", using it in place of "stmt" for type-safety.
4015         * tree-ssa-sccvn.h (vn_reference_lookup_call): Strengthen param 1
4016         from gimple to gimple_call.
4017         * tree-ssa-structalias.c (get_call_vi): Likewise.
4018         (lookup_call_use_vi): Likewise.
4019         (lookup_call_clobber_vi): Likewise.
4020         (get_call_use_vi): Likewise.
4021         (get_call_clobber_vi): Likewise.
4022         (handle_rhs_call): Likewise.
4023         (handle_lhs_call): Likewise.
4024         (handle_const_call): Likewise.
4025         (handle_pure_call): Likewise.
4026         (get_fi_for_callee): Likewise.
4027         (find_func_aliases_for_builtin_call): Likewise for param 2.
4028         (find_func_aliases_for_call): Likewise.
4029         (find_func_aliases): Add a checked cast to gimple_call.
4030         (find_func_clobbers): Replace is_gimple_call with a dyn_cast,
4031         introducing local "call_stmt", using it in place of "stmt" for
4032         type-safety.
4033         (compute_points_to_sets): Strengthen local "stmt" from gimple to
4034         gimple_call, replacing is_gimple_call with a
4035         dyn_cast <gimple_call>.
4036         (ipa_pta_execute): Likewise.
4037         * tree-ssa-threadedge.c
4038         (record_temporary_equivalences_from_stmts_at_dest): Add checked
4039         cast to gimple_call.
4040         * tree-tailcall.c (find_tail_calls): Strengthen local "call" from
4041         gimple to gimple_call, adding a checked cast.
4042         * tree-vect-data-refs.c (vect_setup_realignment): Eliminate
4043         top-level local "new_stmt" in favor of more tightly-scoped locals
4044         "new_stmt" of type gimple_assign and gimple_call.
4045         * tree-vect-patterns.c (vect_recog_pow_pattern): Strenghthen local
4046         "stmt" from gimple to gimple_call.
4047         * tree-vect-stmts.c (vectorizable_function): Likewise for param
4048         "call".
4049         (vectorizable_call): Rename param 1 from "stmt" to "gs",
4050         reintroducing "stmt" as a gimple_call once we've established that
4051         we're working with a GIMPLE_CALL.
4052         * tree-vectorizer.h (vectorizable_function): Strengthen param 1
4053         from gimple to gimple_call.
4054         * value-prof.c (check_ic_target): Likewise.
4055         (gimple_ic_transform): Likewise for local "stmt", replacing a
4056         check for GIMPLE_CALL with a dyn_cast.
4057         (interesting_stringop_to_profile_p): Strengthen param "call"
4058         from gimple to gimple_call.
4059         (gimple_stringop_fixed_value): Likewise for param "vcall_stmt".
4060         (gimple_stringops_transform): Likewise for local "stmt",
4061         replacing a check for GIMPLE_CALL with a dyn_cast.
4062         (gimple_stringops_values_to_profile): Rename param 1 from "stmt"
4063         to "gs", reintroducing "stmt" as a gimple_call once we've
4064         established that we're working with a GIMPLE_CALL.
4065         * vtable-verify.c (verify_bb_vtables): Strengthen local
4066         "call_stmt" from gimple to gimple_call.
4068 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4070         Concretize get_loop_exit_condition et al to working on gimple_cond
4072         * tree-scalar-evolution.h (get_loop_exit_condition): Return a
4073         gimple_cond.
4074         * tree-scalar-evolution.c (get_loop_exit_condition): Likewise, also
4075         concretizing local "res" from gimple to gimple_cond.
4076         * tree-vect-loop-manip.c (slpeel_make_loop_iterate_ntimes): Convert
4077         locals from gimple to gimple_cond.
4078         (slpeel_can_duplicate_loop_p): Likewise.
4079         * tree-vect-loop.c (vect_get_loop_niters): Return a gimple_cond.
4080         (vect_analyze_loop_form): Convert local from gimple to gimple_cond.
4082 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4084         Update various expressions within tree-scalar-evolution.c to be gimple_phi
4086         * tree-scalar-evolution.c (follow_ssa_edge): Require a gimple_phi,
4087         rather than a gimple.
4088         (follow_ssa_edge_binary): Likewise.
4089         (follow_ssa_edge_expr): Likewise.
4090         (follow_ssa_edge_in_rhs): Likewise.
4091         (backedge_phi_arg_p): Likewise.
4092         (follow_ssa_edge_in_condition_phi_branch): Likewise.
4093         (follow_ssa_edge_in_condition_phi): Likewise.
4094         (follow_ssa_edge_inner_loop_phi): Likewise.
4095         (analyze_evolution_in_loop): Likewise.
4096         (analyze_initial_condition): Likewise.
4097         (interpret_loop_phi): Likewise.
4098         (interpret_condition_phi): Likewise.
4099         (follow_ssa_edge): Likewise; also, add checked casts to gimple_phi.
4101         (analyze_scalar_evolution_1): Add checked casts to gimple_phi
4102         within "case GIMPLE_PHI".
4104 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4106         tree-ssa-loop-ivopts.c: use gimple_phi in a few places
4108         * tree-ssa-loop-ivopts.c (determine_biv_step): Require a gimple_phi.
4109         (find_bivs): Convert local "phi" into a gimple_phi.
4110         (mark_bivs): Likewise.
4112 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4114         tree-ssa-loop-manip.c: use gimple_phi in three places
4116         * tree-ssa-loop-manip.c (add_exit_phi): Convert local "phi" to be a
4117         gimple_phi.
4118         (split_loop_exit_edge): Likewise for "phi" and "new_phi".
4120 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4122         tree-ssa-loop-niter.c: use gimple_phi in a few places
4124         * tree-ssa-loop-niter.c (chain_of_csts_start): Return a gimple_phi
4125         rather than a gimple.
4126         (get_base_for): Likewise; convert local "phi" to be a gimple_phi.
4127         (loop_niter_by_eval): Convert local "phi" to be a gimple_phi.
4129 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4131         tree-ssa-phiprop.c: use gimple_phi
4133         * tree-ssa-phiprop.c (phiprop_insert_phi): Strengthen types of
4134         parameter "phi" and local "new_phi" from gimple to gimple_phi.
4136 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4138         tree-predcom.c: use gimple_phi in various places
4140         * tree-predcom.c (find_looparound_phi): Return a gimple_phi rather
4141         than just a gimple.
4142         (insert_looparound_copy): Require a gimple_phi rather than just a
4143         gimple.
4144         (add_looparound_copies): Convert local "phi" to be a gimple_phi.
4145         (initialize_root_vars): Likewise.
4146         (initialize_root_vars_lm): Likewise.
4148 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4150         tree-parloops.c: use gimple_phi in various places
4152         * tree-parloops.c (struct reduction_info): Strengthen field "new_phi"
4153         from gimple to gimple_phi.
4154         (create_phi_for_local_result): Convert local "new_phi" to gimple_phi.
4155         (loop_has_vector_phi_nodes): Require a gimple_phi rather than a gimple.
4156         (gather_scalar_reductions): Convert to a gimple_phi_iterator and
4157         gimple_phi.
4158         (try_create_reduction_list): Likewise.
4160 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4162         Update ssa_prop_visit_phi_fn callbacks to take a gimple_phi
4164         * tree-ssa-propagate.h (typedef ssa_prop_visit_phi_fn): Strengthen
4165         type of parameter from gimple to gimple_phi.
4167         * tree-complex.c (complex_visit_phi): Update signature of callback
4168         implementation accordingly.
4169         * tree-ssa-ccp.c (ccp_visit_phi_node): Likewise.
4170         * tree-ssa-copy.c (copy_prop_visit_phi_node): Likewise.
4171         * tree-vrp.c (vrp_visit_phi_node): Likewise.
4173         * tree-ssa-propagate.c (simulate_stmt): Add a checked cast to
4174         gimple_phi when invoking the ssa_prop_visit_phi callback.
4176 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4178         Introduce gimple_phi_iterator
4180         * gimple-iterator.h (struct gimple_phi_iterator): New subclass of
4181         gimple_stmt_iterator with identical layout, but adding...
4182         (gimple_phi_iterator::phi): ...new method, equivalent to
4183         gsi_stmt (), but casting the underlying gimple to gimple_phi,
4184         checking that code == GIMPLE_PHI in a checked build.
4185         (gsi_start_phis): Return a gimple_phi_iterator, rather than just a
4186         gimple_stmt_iterator.
4188         * tree-if-conv.c (bb_with_exit_edge_p): Require a gimple_phi rather
4189         than just a gimple.
4190         (if_convertible_phi_p): Likewise.
4191         * tree-phinodes.h (add_phi_node_to_bb): Likewise.
4192         * tree-ssa-phiprop.c (propagate_with_phi): Likewise.
4194         * tree-ssa-uninit.c (warn_uninitialized_phi): Require a gimple_phi
4195         and a vec<gimple_phi> *, rather than just a gimple and
4196         vec<gimple> *, and a hash_set<gimple_phi> * rather than a
4197         hash_set<gimple> *.
4198         (find_uninit_use): Likewise; add checked cast to gimple_phi when
4199         adding to worklist.
4200         (pass_late_warn_uninitialized::execute): Strengthen types of
4201         various locals, "worklist" from vec<gimple> to vec<gimple_phi>,
4202         "gsi" to a gimple_phi_iterator, "phi" and "cur_phi" to a
4203         gimple_phi, "added_to_worklist" from hash_set<gimple> to
4204         hash_set<gimple_phi>.
4206         * tree-ssa-loop-manip.c (rewrite_phi_with_iv): Require a
4207         gimple_phi_iterator * rather than a gimple_stmt_iterator *;
4208         use it to strengthen local from a gimple to a gimple_phi.
4210         * cfgloop.c (find_subloop_latch_edge_by_ivs): Convert local from a
4211         gimple_stmt_iterator to a gimple_phi_iterator.  Use the iterator's
4212         "phi" method rather than gsi_stmt.  Use this checked cast to convert
4213         the type of related local from a plain gimple to a gimple_phi.
4214         * gimple-pretty-print.c (dump_phi_nodes): Likewise.
4215         * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behaviour):
4216         Likewise.
4217         * sese.c (sese_add_exit_phis_edge): Likewise.
4218         * tree-cfg.c (reinstall_phi_args): Likewise.
4219         (gimple_make_forwarder_block): Likewise.
4220         (add_phi_args_after_copy_edge): Likewise.
4221         (gimple_lv_adjust_loop_header_phi): Likewise.
4222         * tree-cfgcleanup.c (phi_alternatives_equal): Likewise.
4223         (remove_forwarder_block_with_phi): Likewise.
4224         (merge_phi_nodes): Likewise.
4225         * tree-complex.c (update_phi_components): Likewise.
4226         * tree-if-conv.c (if_convertible_loop_p_1): Likewise.
4227         * tree-inline.c (update_ssa_across_abnormal_edges): Likewise.
4228         (copy_phis_for_bb): Likewise.
4229         * tree-into-ssa.c (rewrite_add_phi_arguments): Likewise.
4230         * tree-outof-ssa.c (eliminate_build): Likewise.
4231         (eliminate_useless_phis): Likewise.
4232         (rewrite_trees): Likewise.
4233         (insert_backedge_copies): Likewise.
4234         * tree-phinodes.c (reserve_phi_args_for_new_edge): Likewise.
4235         (remove_phi_args): Likewise.
4236         (remove_phi_nodes): Likewise.
4237         * tree-predcom.c (find_looparound_phi): Likewise.
4238         (eliminate_temp_copies): Likewise.
4239         * tree-scalar-evolution.c (loop_closed_phi_def): Likewise.
4240         (scev_const_prop): Likewise; also, add checked cast to phi.
4241         * tree-ssa-coalesce.c (coalesce_partitions): Likewise.
4242         * tree-ssa-dce.c (remove_dead_phis): Likewise.
4243         (forward_edge_to_pdom): Likewise.
4244         * tree-ssa-dom.c (record_equivalences_from_phis): Likewise.
4245         (cprop_into_successor_phis): Likewise.
4246         (propagate_rhs_into_lhs): Likewise.
4247         (eliminate_degenerate_phis_1): Likewise.
4248         * tree-ssa-ifcombine.c (same_phi_args_p): Likewise.
4249         * tree-ssa-live.c (calculate_live_on_exit): Likewise.
4250         (verify_live_on_entry): Likewise.
4251         * tree-ssa-loop-im.c
4252         (move_computations_dom_walker::before_dom_children): Likewise.
4253         * tree-ssa-loop-ivopts.c (find_bivs): Likewise.
4254         (mark_bivs): Likewise.
4255         (find_interesting_uses_outside): Likewise.
4256         (determine_set_costs): Likewise.
4257         * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise.
4258         (tree_transform_and_unroll_loop): Likewise.
4259         (rewrite_all_phi_nodes_with_iv): Likewise.
4260         (canonicalize_loop_ivs): Likewise.
4261         * tree-ssa-loop-niter.c (determine_value_range): Likewise.
4262         * tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
4263         * tree-ssa-phiprop.c (tree_ssa_phiprop): Likewise.
4264         * tree-ssa-reassoc.c (suitable_cond_bb): Likewise.
4265         * tree-ssa-tail-merge.c (same_phi_alternatives_1): Likewise.
4266         (vop_phi): Likewise.
4267         * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
4268         Likewise.
4269         * tree-ssa-threadupdate.c (copy_phi_arg_into_existing_phi): Likewise.
4270         (copy_phi_args): Likewise.
4271         (phi_args_equal_on_edges): Likewise.
4272         * tree-ssa.c (ssa_redirect_edge): Likewise.
4273         (flush_pending_stmts): Likewise.
4274         * tree-switch-conversion.c (check_final_bb): Likewise.
4275         (gather_default_values): Likewise.
4276         (build_constructors): Likewise.
4277         (fix_phi_nodes): Likewise.
4278         * tree-tailcall.c (propagate_through_phis): Likewise.
4279         (add_successor_phi_arg): Likewise.
4280         * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard1):
4281         Likewise.
4282         (slpeel_update_phi_nodes_for_guard2): Likewise.
4283         (slpeel_tree_peel_loop_to_edge): Likewise.
4284         (vect_can_advance_ivs_p): Likewise.
4285         (vect_update_ivs_after_vectorizer): Likewise.
4286         * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise.
4287         * tree-vrp.c (find_assert_locations): Likewise.
4288         * value-prof.c (gimple_ic): Likewise.
4290         * omp-low.c (expand_parallel_call): Convert local to a gimple_phi.
4292 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4294         Introduce gimple_phi and use it in various places
4296         * coretypes.h (gimple_phi): New typedef.
4297         (const_gimple_phi): New typedef.
4299         * gdbhooks.py (build_pretty_printer): Add gimple_phi and its
4300         variants, using the gimple printer.
4302         * gimple.h (gimple_vec): Eliminate thie typedef in the hope of using
4303         vecs of more concrete gimple subclasses as appropriate; also the
4304         comment is about to become misleading.
4306         * gimple.h (gimple_phi_capacity): Use const_gimple_phi typedef
4307         rather than spelling out the full type.
4308         (gimple_phi_num_args): Likewise.
4309         (gimple_phi_result): Likewise.
4310         (gimple_phi_result_ptr): Use gimple_phi typedef.
4311         (gimple_phi_set_result): Likewise.
4312         (gimple_phi_arg): Likewise.
4313         (gimple_phi_set_arg): Likewise.
4314         * tree-phinodes.c (allocate_phi_node): Likewise.
4315         (resize_phi_node): Likewise.
4316         (reserve_phi_args_for_new_edge): Likewise.
4317         (remove_phi_arg_num): Likewise.
4319         * gimple-pretty-print.c (dump_gimple_phi): Require a gimple_phi
4320         rather than just a gimple.
4321         * tree-into-ssa.c (mark_phi_for_rewrite): Likewise.
4323         * tree-phinodes.c (make_phi_node): Return a gimple_phi rather than
4324         just a gimple.
4325         (create_phi_node): Likewise.
4326         * tree-phinodes.h (create_phi_node): Likewise.
4328         * trans-mem.c (struct struct tm_log_entry): Replace use of
4329         now-removed gimple_vec with a plain vec<gimple>.
4331         * tree-into-ssa.c (phis_to_rewrite): Strengthen from a
4332         vec<gimple_vec> to a vec< vec<gimple_phi> >.
4334         * tree-into-ssa.c (insert_phi_nodes_for): Update local to be a
4335         gimple_phi.
4336         * tree-into-ssa.c (rewrite_update_phi_arguments): Strengthen local
4337         "phis" from a gimple_vec to a vec<gimple_phi>, and local "phi" to
4338         a gimple_phi.
4339         * tree-into-ssa.c (delete_update_ssa): Strengthen local
4340         "phis" from a gimple_vec to a vec<gimple_phi>.
4342         * gimple-pretty-print.c (pp_gimple_stmt_1): Add checked cast to
4343         gimple_phi in regions where a stmt is known to have code
4344         GIMPLE_PHI.
4345         * tree-into-ssa.c (mark_use_interesting): Likewise.
4347 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4349         Introduce gimple_debug and use it in a few places
4351         * coretypes.h (gimple_debug): New typedef.
4352         (const_gimple_debug): New typedef.
4354         * gimple.h (struct gimple_statement_debug): New subclass of
4355         gimple_statement_with_ops, adding the invariant that
4356         stmt->code == GIMPLE_DEBUG.
4357         (is_a_helper <gimple_statement_debug>::test): New.
4359         * gdbhooks.py (build_pretty_printer): Add gimple_debug and its
4360         variants, using the gimple printer.
4362         * gimple-pretty-print.c (dump_gimple_debug): Require a gimple_debug
4363         rather than just a gimple.
4364         * tree-inline.c (copy_debug_stmt): Likewise.
4366         * tree-inline.h (struct copy_body_data): Strengthen field
4367         "debug_stmts" from a vec<gimple> to a vec<gimple_debug>.
4369         * gimple.c (gimple_build_debug_bind_stat): Return a gimple_debug
4370         rather than just a gimple.
4371         (gimple_build_debug_source_bind_stat): Likewise.
4372         * gimple.h (gimple_build_debug_bind_stat): Likewise.
4373         (gimple_build_debug_source_bind_stat): Likewise.
4375         * tree-inline.c (remap_gimple_stmt): Update locals to be a
4376         gimple_debug.
4377         (maybe_move_debug_stmts_to_successors): Likewise.
4378         (copy_debug_stmts): Likewise.
4380         * gimple-pretty-print.c (pp_gimple_stmt_1): Add checked cast to
4381         gimple_debug in regions where a stmt is known to have code
4382         GIMPLE_DEBUG.
4384 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4386         Introduce gimple_label and use it in a few places
4388         * coretypes.h (gimple_label): New typedef.
4389         (const_gimple_label): New typedef.
4391         * gimple.h (struct gimple_statement_label): New subclass of
4392         gimple_statement_with_ops, adding the invariant that
4393         stmt->code == GIMPLE_LABEL.
4394         (is_a_helper <gimple_statement_label>::test): New.
4396         * gdbhooks.py (build_pretty_printer): Add gimple_label and its
4397         variants, reusing the gimple printer.
4399         * gimple-pretty-print.c (dump_gimple_label): Require a gimple_label
4400         rather than just a gimple.
4401         * tree-cfg.c (verify_gimple_label): Likewise.
4403         * gimple.c (gimple_build_label): Return a gimple_label rather than
4404         just a gimple.
4405         * gimple.h (gimple_build_label): Likewise.
4407         * gimplify.c (gimplify_case_label_expr): Update local to be a
4408         gimple_label.
4409         * tree-switch-conversion.c (gen_inbound_check): Likewise.
4411         * gimple-pretty-print.c (pp_gimple_stmt_1): Add checked cast to
4412         gimple_label in regions where a stmt is known to have code
4413         GIMPLE_LABEL.
4414         * tree-cfg.c (verify_gimple_stmt): Likewise.
4416 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4418         Introduce gimple_assign and use it in various places
4420         * coretypes.h (gimple_assign): New typedef.
4421         (const_gimple_assign): New typedef.
4423         * gimple.h (struct gimple_statement_assign): New subclass of
4424         gimple_statement_with_memory_ops, adding the invariant that
4425         stmt->code == GIMPLE_ASSIGN.
4426         (is_a_helper <gimple_statement_assign>::test): New.
4428         * gdbhooks.py (build_pretty_printer): Add gimple_assign and its
4429         variants, using the gimple printer.
4431         * gimple-builder.c (build_assign): Return a gimple_assign rather
4432         than just a gimple from each of the overloaded variants.
4433         (build_type_cast): Likewise.
4434         * gimple-builder.h (build_assign): Likewise.
4435         (build_type_cast): Likewise.
4436         * gimple.c (gimple_build_assign_stat): Likewise.
4437         (gimple_build_assign_with_ops): Likewise.
4438         * gimple.h (gimple_build_assign_stat): Likewise.
4439         (gimple_build_assign_with_ops): Likewise.
4441         * asan.c (get_mem_ref_of_assignment): Require a const_gimple_assign
4442         rather than just a "const gimple" (the latter is not a
4443         "const_gimple").
4444         * gimple-pretty-print.c (dump_unary_rhs): Require a gimple_assign
4445         rather than just a gimple.
4446         (dump_binary_rhs): Likewise.
4447         (dump_ternary_rhs): Likewise.
4448         * tree-cfg.c (verify_gimple_assign_unary): Likewise.
4449         (verify_gimple_assign_binary): Likewise.
4450         (verify_gimple_assign_ternary): Likewise.
4451         (verify_gimple_assign_single): Likewise.
4452         (verify_gimple_assign): Likewise.
4453         * tree-ssa-sccvn.c (simplify_unary_expression): Likewise.
4454         (try_to_simplify): Likewise.
4455         * tree-tailcall.c (process_assignment): Likewise.
4456         * tree-vect-generic.c (expand_vector_operation): Likewise.
4457         * tree-vrp.c (extract_range_from_cond_expr): Likewise.
4458         (extract_range_from_assignment): Likewise.
4460         * asan.c (has_stmt_been_instrumented_p): Add checked cast to
4461         gimple_assign in regions where a stmt is known to have code
4462         GIMPLE_ASSIGN.
4463         * gimple-pretty-print.c (pp_gimple_stmt_1): Likewise.
4464         * tree-cfg.c (verify_gimple_stmt): Likewise.
4465         * tree-ssa-sccvn.c (visit_use): Likewise.
4466         * tree-tailcall.c (find_tail_calls): Likewise.
4467         * tree-vrp.c (vrp_visit_assignment_or_call): Likewise.
4469         * tree-vrp.c (simplify_stmt_for_jump_threading): Replace a check
4470         against GIMPLE_ASSIGN with a dyn_cast<gimple_assign>, introducing
4471         a gimple_assign local.
4473         * tree-vect-generic.c (expand_vector_condition): Convert local to a
4474         gimple_assign, adding a checked cast when extracting from gsi, since
4475         this is only called when  underlying stmt has code GIMPLE_ASSIGN.
4476         (optimize_vector_constructor): Likewise.
4477         (lower_vec_perm): Likewise.
4478         (expand_vector_operations_1): Convert local to a gimple_assign,
4479         introducing a dyn_cast.
4481 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4483         Introduce gimple_cond and use it in various places
4485         * coretypes.h (gimple_cond): New typedef.
4486         (const_gimple_cond): Likewise.
4488         * gimple.h (struct gimple_statement_cond): New subclass of
4489         gimple_statement_with_ops, adding the invariant that
4490         stmt->code == GIMPLE_COND.
4491         (is_a_helper <gimple_statement_cond>::test): New.
4492         (gimple_build_cond): Return a gimple_cond, rather than just
4493         a gimple.
4494         (gimple_build_cond_from_tree): Likewise.
4496         * gdbhooks.py (build_pretty_printer): Add gimple_cond and its
4497         variants, using the gimple printer.
4499         * cfgexpand.c (expand_gimple_cond): Require a gimple_cond rather
4500         than just a gimple.
4501         * gimple.h (gimple_cond_set_condition_from_tree): Likewise.
4502         (gimple_cond_true_p): Likewise.
4503         (gimple_cond_false_p): Likewise.
4504         (gimple_cond_set_condition): Likewise.
4505         * gimple.c (gimple_cond_set_condition_from_tree): Likewise.
4506         * gimple-fold.c (fold_gimple_cond): Likewise.
4507         * gimple-pretty-print.c (dump_gimple_cond): Likewise.
4508         * tree-ssa-dom.c (canonicalize_comparison): Likewise.
4509         * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Likewise.
4510         * tree-ssa-ifcombine.c (recognize_single_bit_test): Likewise.
4511         (recognize_bits_test): Likewise.
4512         * tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
4513         (thread_around_empty_blocks): Likewise.
4514         (thread_through_normal_block): Likewise.
4515         (thread_across_edge): Likewise.
4516         * tree-ssa-threadedge.h (thread_across_edge): Likewise.
4517         * tree-vrp.c (range_fits_type_p): Likewise.
4519         * cfgexpand.c (expand_gimple_basic_block): Add checked cast to
4520         gimple_cond in regions where a stmt is known to have code GIMPLE_COND.
4521         * gimple-fold.c (fold_stmt_1): Likewise.
4522         * gimple-pretty-print.c (pp_gimple_stmt_1): Likewise.
4523         * tree-ssa-dom.c (optimize_stmt): Likewise.
4524         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
4525         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
4526         * tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
4527         Likewise.
4528         * tree-vrp.c (simplify_stmt_using_ranges): Likewise.
4530         * cfgloopmanip.c (create_empty_loop_on_edge): Update local to be a
4531         gimple_cond.
4532         * tree-vrp.c (identify_jump_threads): Likewise.
4534         * gimple.c (gimple_build_cond): Return a gimple_cond, rather than
4535         just a gimple.
4536         (gimple_build_cond_from_tree): Likewise.
4538         * tree-ssa-dom.c (class dom_opt_dom_walker): Strengthen type of
4539         field "m_dummy_cond" from a plain gimple to a gimple_cond.
4541         * tree-ssa-ifcombine.c (ifcombine_ifandif): Introduce locals
4542         inner_stmt and outer_stmt so that inner_cond and outer_cond can be
4543         of type gimple_cond once we know that we have code == GIMPLE_COND.
4544         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Introduce local
4545         "last" so that stmt can be of type gimple_cond.
4547 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4549         Introduce gimple_bind and use it for accessors.
4551         * coretypes.h (gimple_bind): New typedef.
4552         (const_gimple_bind): New typedef.
4554         * gdbhooks.py (build_pretty_printer): Add gimple_bind
4555         and its variants, using the gimple printer.
4557         * gimple-pretty-print.c (dump_gimple_bind): Update type-signature to
4558         require a gimple_bind rather than just a gimple.
4560         * gimple.c (gimple_build_bind): Return a gimple_bind rather than
4561         just a gimple.
4562         * gimple.h (gimple_build_bind): Likewise.
4564         * gimple.h (gimple_seq_first_stmt_as_a_bind): New.
4566         * gimple.h (gimple_bind_vars): Update type-signature to
4567         require a gimple_bind rather than just a gimple, removing
4568         as_a and hence run-time check.
4569         (gimple_bind_set_vars): Likewise.
4570         (gimple_bind_append_vars): Likewise.
4571         (gimple_bind_body_ptr): Likewise.
4572         (gimple_bind_body): Likewise.
4573         (gimple_bind_set_body): Likewise.
4574         (gimple_bind_add_stmt): Likewise.
4575         (gimple_bind_add_seq): Likewise.
4576         (gimple_bind_block): Likewise.
4577         (gimple_bind_set_block): Likewise.
4578         * gimplify.c (gimple_push_bind_expr): Likewise.
4579         (gimple_current_bind_expr): Likewise.
4580         * tree-inline.c (copy_gimple_bind): Likewise.
4582         * gimplify.h (gimple_current_bind_expr): Return a gimple_bind
4583         rather than a plain gimple.
4584         (gimplify_body): Likewise.
4585         (gimple_bind_expr_stack): Return a vec<gimple_bind> rather than
4586         a vec<gimple>.
4588         * gimplify.c (struct gimplify_ctx): Strengthen field
4589         "bind_expr_stack" from vec<gimple> to vec<gimple_bind>.
4590         (gimple_bind_expr_stack): Likewise for type of returned value.
4592         * gimplify.c (gimplify_body): Strengthen various types from gimple
4593         to gimple_bind, including the return type.
4595         * gimplify.c (declare_vars): Introduce "gs" as a generic gimple,
4596         so that local "scope" can be of type gimple_bind once we've reached
4597         the region where it must be of code GIMPLE_BIND.
4599         * gimple-low.c (lower_gimple_bind): Add checked cast to
4600         gimple_bind, since both callers (lower_function_body and
4601         lower_stmt) have checked the code for us.
4603         * gimple.c (gimple_copy): Add checked cast to gimple_bind in
4604         region guarded by check for code GIMPLE_BIND.
4605         * gimple-low.c (gimple_stmt_may_fallthru): Likewise.
4606         * gimple-pretty-print.c (pp_gimple_stmt_1): Likewise.
4607         * gimple-walk.c (walk_gimple_stmt): Likewise.
4608         * omp-low.c (scan_omp_1_stmt): Likewise.
4609         (lower_omp_1): Likewise.
4610         (lower_omp_for): Likewise.
4611         * tree-cfg.c (verify_gimple_in_seq_2): Likewise.
4612         (do_warn_unused_result): Likewise.
4613         * tree-inline.c (remap_gimple_stmt): Likewise.
4614         (estimate_num_insns): Likewise.
4615         * tree-nested.c (convert_nonlocal_reference_stmt): Likewise.
4617         * gimplify.c (gimplify_bind_expr): Update local(s) to be a
4618         gimple_bind rather than just a gimple.
4619         (gimplify_function_tree): Likewise.
4620         * omp-low.c (lower_omp_sections): Likewise.
4621         (lower_omp_single): Likewise.
4622         (lower_omp_master): Likewise.
4623         (lower_omp_taskgroup): Likewise.
4624         (lower_omp_ordered): Likewise.
4625         (lower_omp_critical): Likewise.
4626         (lower_omp_taskreg): Likewise.
4627         (lower_omp_teams): Likewise.
4628         * omp-low.c (lower_omp_for): Likewise; use
4629         gimple_seq_first_stmt_as_a_bind to encapsulate the checked cast.
4630         (lower_omp_target): Likewise.
4631         * tree-nested.c (finalize_nesting_tree_1): Likewise.
4633         * gimple.c (empty_stmt_p): Add dyn_cast to a gimple_bind.
4634         * tree-inline.c (replace_locals_stmt): Add dyn_cast to gimple_bind.
4636 2014-10-24  David Malcolm  <dmalcolm@redhat.com>
4638         Introduce gimple_switch and use it in various places
4640         * gimple.h (gimple_statement_switch): New subclass of
4641         gimple_statement_with_ops, adding the invariant that
4642         stmt->code == GIMPLE_SWITCH.
4643         (is_a_helper <gimple_statement_switch>::test (gimple)): New.
4645         * coretypes.h (gimple_switch): New typedef
4646         (const_gimple_switch): Likewise.
4648         * gdbhooks.py (build_pretty_printer): Add gimple_switch
4649         and its variants, using the gimple printer.
4651         * gimple.c (gimple_build_switch_nlabels): Return a gimple_switch
4652         rather than just a gimple.
4653         (gimple_build_switch): Likewise.
4654         * gimple.h (gimple_build_switch_nlabels): Likewise.
4655         (gimple_build_switch): Likewise.
4657         * gimple.h (gimple_switch_num_labels): Update type-signature to
4658         require a gimple_switch rather than just a gimple.
4659         (gimple_switch_set_num_labels): Likewise.
4660         (gimple_switch_set_index): Likewise.
4661         (gimple_switch_label): Likewise.
4662         (gimple_switch_set_label): Likewise.
4663         (gimple_switch_default_label): Likewise.
4664         (gimple_switch_set_default_label): Likewise.
4665         * expr.h (expand_case): Likewise.
4666         * gimple-pretty-print.c (dump_gimple_call): Likewise.
4667         * stmt.c (compute_cases_per_edge): Likewise.
4668         (expand_case): Likewise.
4669         * tree-cfg.h (group_case_labels_stmt): Likewise.
4670         * tree-cfg.c (make_gimple_switch_edges): Likewise.
4671         (find_taken_edge_switch_expr) Likewise.
4672         (find_case_label_for_value) Likewise.
4673         (get_cases_for_edge): Likewise.
4674         (group_case_labels_stmt): Likewise.
4675         (verify_gimple_switch): Likewise.
4676         * tree-eh.c (verify_norecord_switch_expr): Likewise.
4677         * tree-eh.c (lower_eh_constructs_2): Likewise.
4678         * tree-loop-distribution.c (generate_loops_for_partition): Likewise.
4679         * tree-ssa-dom.c (record_edge_info): Likewise.
4680         * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise.
4681         (simplify_gimple_switch): Likewise.
4682         * tree-switch-conversion.c (emit_case_bit_tests): Likewise.
4683         (collect_switch_conv_info): Likewise.
4684         (build_constructors): Likewise.
4685         (array_value_type): Likewise.
4686         (build_one_array): Likewise.
4687         (build_arrays): Likewise.
4688         (gen_inbound_check): Likewise.
4689         * tree-vrp.c (find_switch_asserts): Likewise.
4690         (find_case_label_range): Likewise.
4691         (find_case_label_ranges): Likewise.
4692         (vrp_visit_switch_stmt): Likewise.
4693         (simplify_switch_using_ranges): Likewise.
4695         * tree-vrp.c (switch_update): Strengthen field "stmt" from being
4696         merely a gimple to being a gimple_switch.
4698         * cfgexpand.c (expand_gimple_stmt_1): Add checked cast to
4699         gimple_switch in regions where the stmt code has been tested as
4700         GIMPLE_SWITCH.
4701         * gimple-pretty-print.c (pp_gimple_stmt_1): Likewise.
4702         * tree-cfg.c (make_edges): Likewise.
4703         (end_recording_case_labels): Likewise.
4704         (cleanup_dead_labels): Likewise.
4705         (cleanup_dead_labels): Likewise.
4706         (group_case_labels): Likewise.
4707         (find_taken_edge): Likewise.
4708         (find_case_label_for_value): Likewise.
4709         (verify_gimple_stmt): Likewise.
4710         (gimple_verify_flow_info): Likewise.
4711         (gimple_redirect_edge_and_branch): Likewise.
4712         * tree-inline.c (estimate_num_insns): Likewise.
4713         * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Likewise.
4714         * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
4715         * tree-switch-conversion.c (do_switchconv): Likewise.
4716         * tree-vrp.c  (find_assert_locations_1): Likewise.
4717         (vrp_visit_stmt): Likewise.
4718         (simplify_stmt_using_ranges): Likewise.
4720         * ipa-inline-analysis.c (set_switch_stmt_execution_predicate):
4721         Introduce local "lastg" as a generic gimple, so that local "last"
4722         can be of type gimple_switch once lastg's code has been verified.
4724         * omp-low.c (diagnose_sb_2): Introduce switch_stmt local to handle
4725         the GIMPLE_SWITCH case.
4727         * tree-cfg.c (find_taken_edge_switch_expr): Add gimple_switch
4728         argument, since the caller (find_taken_edge) has checked that
4729         last_stmt is a switch.
4731 Copyright (C) 2014 Free Software Foundation, Inc.
4733 Copying and distribution of this file, with or without modification,
4734 are permitted in any medium without royalty provided the copyright
4735 notice and this notice are preserved.