#include "config.h"#include "system.h"#include "coretypes.h"#include "tm.h"#include "tree.h"#include "rtl.h"#include "errors.h"#include "varray.h"#include "tree-gimple.h"#include "tree-inline.h"#include "diagnostic.h"#include "langhooks.h"#include "langhooks-def.h"#include "tree-flow.h"#include "cgraph.h"#include "timevar.h"#include "except.h"#include "hashtab.h"#include "flags.h"#include "real.h"#include "function.h"#include "output.h"#include "expr.h"#include "ggc.h"#include "target.h"#include "gt-gimplify.h"

Go to the source code of this file.
| typedef struct gimple_temp_hash_elt elt_t |
| void annotate_all_with_locus | ( | tree * | stmt_p, | |
| location_t | locus | |||
| ) |
Definition at line 582 of file gimplify.c.
Referenced by convert_to_gimple_builtin(), finalize_nesting_tree_1(), gimplify_c_loop(), gimplify_cp_loop(), gimplify_expr(), sra_insert_after(), and sra_insert_before().
| static void annotate_one_with_locus | ( | tree | t, | |
| location_t | locus | |||
| ) | [static] |
Definition at line 575 of file gimplify.c.
References EXPR_HAS_LOCATION, EXPR_P, SET_EXPR_LOCATION, and should_carry_locus_p().
Referenced by annotate_all_with_locus(), and gimplify_expr().
Definition at line 251 of file gimplify.c.
Referenced by alpha_gimplify_va_arg_1(), bsi_insert_on_edge(), build_cdtor(), copy_body_r(), create_coverage(), cxx_omp_clause_apply_fn(), do_goto_redirection(), do_return_redirection(), expand_call_inline(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), finalize_nesting_tree_1(), finish_bc_block(), finish_fname_decls(), frob_into_branch_around(), generate_copy_inout(), generate_element_copy(), generate_element_zero(), gimple_build_eh_filter(), gimple_pop_condition(), gimple_push_cleanup(), gimplify_and_add(), gimplify_bind_expr(), gimplify_c_loop(), gimplify_cleanup_point_expr(), gimplify_compound_expr(), gimplify_cp_loop(), gimplify_expr(), gimplify_function_tree(), gimplify_init_constructor(), gimplify_init_ctor_eval_range(), gimplify_loop_expr(), gimplify_modify_expr(), gimplify_modify_expr_complex_part(), gimplify_must_not_throw_expr(), gimplify_save_expr(), gimplify_self_mod_expr(), gimplify_statement_list(), gimplify_switch_expr(), gimplify_target_expr(), gimplify_to_stmt_list(), gimplify_va_arg_expr(), GTY(), honor_protect_cleanup_actions(), initialize_inlined_parameters(), ix86_gimplify_va_arg(), lower_catch(), lower_cleanup(), lower_lastprivate_clauses(), lower_omp_for(), lower_omp_for_lastprivate(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), lower_omp_single(), lower_omp_single_copy(), lower_rec_input_clauses(), lower_reduction_clauses(), lower_try_finally(), lower_try_finally_copy(), lower_try_finally_nofallthru(), lower_try_finally_onedest(), lower_try_finally_switch(), maybe_catch_exception(), mudflap_finish_file(), mx_register_decls(), remove_useless_stmts_tf(), rs6000_gimplify_va_arg(), s390_gimplify_va_arg(), scalarize_init(), set_component_ssa_name(), setup_one_parameter(), shortcut_cond_expr(), and shortcut_cond_r().
Definition at line 228 of file gimplify.c.
References alloc_stmt_list(), i, TREE_CODE, TSI_CONTINUE_LINKING, tsi_last(), and tsi_link_after().
Referenced by append_to_statement_list(), and append_to_statement_list_force().
Definition at line 260 of file gimplify.c.
Referenced by add_stmt(), clone_body(), finish_fname_decls(), gimplify_body(), vect_create_addr_base_for_vector_ref(), and vect_create_cond_for_align_checks().
Definition at line 1226 of file gimplify.c.
Referenced by c_finish_loop(), cxx_omp_clause_apply_fn(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_parallel_call(), gimplify_c_loop(), gimplify_cp_loop(), gimplify_exit_expr(), gimplify_loop_expr(), lower_cond_expr(), lower_omp_master(), lower_omp_single_copy(), replace_goto_queue_cond_clause(), shortcut_cond_expr(), and shortcut_cond_r().
Definition at line 839 of file gimplify.c.
References build(), build_function_call_expr(), create_tmp_var, implicit_built_in_decls, NULL_TREE, ptr_type_node, and tree_cons.
Referenced by gimplify_bind_expr().
Definition at line 1319 of file gimplify.c.
References build1, build4, POINTER_TYPE_P, size_binop(), size_int, TREE_CODE, TREE_OPERAND, TREE_TYPE, TYPE_ALIGN_UNIT, TYPE_DOMAIN, TYPE_MIN_VALUE, and TYPE_SIZE_UNIT.
Referenced by gimplify_conversion().
Definition at line 1283 of file gimplify.c.
References build1, gcc_assert, get_unwidened(), INTEGRAL_TYPE_P, NULL_TREE, TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by gimplify_compound_lval(), and gimplify_conversion().
Definition at line 1096 of file gimplify.c.
References CASE_LOW, and tree_int_cst_compare().
Referenced by sort_case_labels().
| static tree copy_if_shared_r | ( | tree * | tp, | |
| int *walk_subtrees | ATTRIBUTE_UNUSED, | |||
| void *data | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 640 of file gimplify.c.
References mostly_copy_tree_r(), NULL, NULL_TREE, tcc_constant, tcc_declaration, tcc_type, TREE_CODE, TREE_CODE_CLASS, TREE_VISITED, and walk_tree().
Referenced by unshare_all_trees(), and unshare_body().
Definition at line 299 of file gimplify.c.
Referenced by begin_bc_block(), build_and_jump(), c_add_case_label(), c_finish_bc_stmt(), convert_nl_goto_reference(), cxx_omp_clause_apply_fn(), expand_parallel_call(), factor_computed_gotos(), frob_into_branch_around(), gimplify_init_ctor_eval_range(), gimplify_omp_atomic_pipeline(), gimplify_switch_expr(), ix86_gimplify_va_arg(), lower_builtin_setjmp(), lower_catch(), lower_cleanup(), lower_eh_filter(), lower_function_body(), lower_omp_single_copy(), lower_return_expr(), lower_try_finally(), lower_try_finally_copy(), lower_try_finally_fallthru_label(), lower_try_finally_nofallthru(), lower_try_finally_onedest(), lower_try_finally_switch(), mf_build_check_statement_for(), new_label_mapper(), omp_copy_decl(), rs6000_gimplify_va_arg(), s390_gimplify_va_arg(), sh_gimplify_va_arg_expr(), tree_block_label(), tree_divmod_fixed_value(), tree_mod_pow2(), tree_mod_subtract(), xstormy16_expand_builtin_va_arg(), and xtensa_gimplify_va_arg_expr().
Definition at line 413 of file gimplify.c.
References create_tmp_var, get_name(), and TREE_TYPE.
Referenced by lookup_tmp_var().
Definition at line 368 of file gimplify.c.
Definition at line 335 of file gimplify.c.
Referenced by add_candidate_1(), c_finish_omp_atomic(), c_finish_stmt_expr(), create_memory_tag(), create_nonlocal_var(), create_tmp_var(), create_tmp_var_for(), do_deref(), do_structure_copy(), force_expr_to_var_cost(), force_var_cost(), get_constraint_for(), gimplify_expr(), gimplify_init_constructor(), GTY(), init_base_vars(), intra_create_variable_infos(), lower_rec_input_clauses(), and process_constraint().
Definition at line 517 of file gimplify.c.
References BIND_EXPR_VARS, gcc_assert, last, nreverse(), gimplify_ctx::temps, TREE_CHAIN, TREE_CODE, and TREE_OPERAND.
Referenced by finalize_nesting_tree_1(), gimple_add_tmp_var(), and pop_gimplify_context().
Definition at line 4720 of file gimplify.c.
Referenced by add_to_dst_predicate_list(), create_expression_by_pieces(), create_iv(), determine_exit_conditions(), find_phi_replacement_condition(), force_gimple_operand_bsi(), rewrite_use_address(), rewrite_use_compare(), rewrite_use_nonlinear_expr(), rewrite_use_outer(), set_component_ssa_name(), vect_build_loop_niters(), vect_create_addr_base_for_vector_ref(), vect_gen_niters_for_prolog_loop(), and vect_update_ivs_after_vectorizer().
Definition at line 1262 of file gimplify.c.
References FORCED_LABEL, NULL_TREE, TREE_CODE, and TYPE_P.
Referenced by gimplify_decl_expr(), and gimplify_init_constructor().
Definition at line 500 of file gimplify.c.
Referenced by alpha_gimplify_va_arg(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_parallel_call(), gimplify_expr(), gimplify_init_ctor_preeval(), gimplify_modify_expr_complex_part(), and lower_omp_for().
Definition at line 509 of file gimplify.c.
Referenced by alpha_gimplify_va_arg(), alpha_gimplify_va_arg_1(), convert_to_gimple_builtin(), expand_omp_for_static_chunk(), gimplify_expr(), gimplify_save_expr(), i860_gimplify_va_arg_expr(), rs6000_gimplify_va_arg(), sh_gimplify_va_arg_expr(), std_gimplify_va_arg_expr(), xstormy16_expand_builtin_va_arg(), and xtensa_gimplify_va_arg_expr().
| const char* get_name | ( | tree | t | ) |
Definition at line 388 of file gimplify.c.
Definition at line 538 of file gimplify.c.
Referenced by create_new_iv(), create_tmp_var(), gimplify_compound_literal_expr(), gimplify_decl_expr(), gimplify_expr(), gimplify_init_constructor(), gimplify_target_expr(), and lower_rec_input_clauses().
Definition at line 2079 of file gimplify.c.
References boolean_type_node, convert(), TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by expand_parallel_call(), gimple_boolify(), gimplify_cond_expr(), gimplify_expr(), and gimplify_scan_omp_clauses().
Definition at line 739 of file gimplify.c.
Referenced by genericize_eh_spec_block(), and gimplify_must_not_throw_expr().
Definition at line 192 of file gimplify.c.
References gimplify_ctx::conditions, and gimplify_ctxp.
Referenced by gimple_push_cleanup().
Definition at line 176 of file gimplify.c.
References gimplify_ctx::current_bind_expr, gimplify_ctxp, and TREE_CHAIN.
Referenced by gimplify_bind_expr().
Definition at line 213 of file gimplify.c.
References append_to_statement_list(), gimplify_ctx::conditional_cleanups, gimplify_ctx::conditions, gcc_assert, gimplify_ctxp, and NULL_TREE.
Referenced by gimplify_cond_expr().
Definition at line 169 of file gimplify.c.
References gimplify_ctx::current_bind_expr, gimplify_ctxp, and TREE_CHAIN.
Referenced by gimplify_bind_expr().
Definition at line 3577 of file gimplify.c.
References append_to_statement_list(), boolean_false_node, boolean_true_node, boolean_type_node, build(), CLEANUP_EH_ONLY, gimplify_ctx::conditional_cleanups, create_tmp_var, errorcount, gimple_conditional_context(), gimplify_ctxp, gimplify_stmt(), NULL, sorrycount, TREE_NO_WARNING, TREE_OPERAND, and void_type_node.
Referenced by gimplify_target_expr().
Definition at line 200 of file gimplify.c.
References gimplify_ctx::conditional_cleanups, gimplify_ctx::conditions, gcc_assert, and gimplify_ctxp.
Referenced by gimplify_cond_expr().
Definition at line 102 of file gimplify.c.
References gcc_assert, gimple_tree_hash(), operand_equal_p(), t1, t2, TREE_CODE, and TREE_TYPE.
Referenced by push_gimplify_context().
Definition at line 93 of file gimplify.c.
References iterative_hash_expr().
Referenced by gimple_tree_eq(), and push_gimplify_context().
| static enum gimplify_status gimplify_addr_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p | |||
| ) | [static] |
Definition at line 3238 of file gimplify.c.
References build_fold_addr_expr(), fb_either, fold_convert(), gcc_assert, gimplify_expr(), GS_ERROR, GS_OK, is_gimple_addressable(), POINTER_TYPE_P, recompute_tree_invarant_for_addr_expr(), ret, TREE_CODE, TREE_OPERAND, tree_ssa_useless_type_conversion(), and TREE_TYPE.
Referenced by gimplify_expr().
Definition at line 269 of file gimplify.c.
Referenced by alpha_gimplify_va_arg(), alpha_gimplify_va_arg_1(), build_omp_barrier(), expand_omp_for_generic(), expand_omp_for_static_chunk(), expand_omp_for_static_nochunk(), expand_parallel_call(), generate_one_element_init(), gimplify_compound_literal_expr(), gimplify_cond_expr(), gimplify_decl_expr(), gimplify_for_stmt(), gimplify_init_ctor_eval(), gimplify_init_ctor_eval_range(), gimplify_loop_expr(), gimplify_modify_expr_rhs(), gimplify_omp_atomic_mutex(), gimplify_omp_atomic_pipeline(), gimplify_one_sizepos(), gimplify_parameters(), gimplify_return_expr(), gimplify_self_mod_expr(), GTY(), i860_gimplify_va_arg_expr(), ia64_gimplify_va_arg(), internal_get_tmp_var(), ix86_gimplify_va_arg(), lower_copyprivate_clauses(), lower_lastprivate_clauses(), lower_omp_for_lastprivate(), lower_omp_master(), lower_omp_ordered(), lower_omp_single_copy(), lower_omp_single_simple(), lower_rec_input_clauses(), lower_reduction_clauses(), lower_send_clauses(), lower_send_shared_vars(), maybe_catch_exception(), mips_gimplify_va_arg_expr(), rs6000_gimplify_va_arg(), s390_gimplify_va_arg(), sh_gimplify_va_arg_expr(), sparc_gimplify_va_arg(), std_gimplify_va_arg_expr(), xstormy16_expand_builtin_va_arg(), and xtensa_gimplify_va_arg_expr().
| static enum gimplify_status gimplify_arg | ( | tree * | expr_p, | |
| tree * | pre_p | |||
| ) | [static] |
Definition at line 1693 of file gimplify.c.
References bool, fb_either, fb_rvalue, gimplify_expr(), is_gimple_lvalue(), is_gimple_reg_type(), is_gimple_val(), maybe_with_size_expr(), NULL, and TREE_TYPE.
Referenced by gimplify_call_expr().
| static enum gimplify_status gimplify_asm_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p | |||
| ) | [static] |
Definition at line 3332 of file gimplify.c.
References alloca, ASM_INPUTS, ASM_OUTPUTS, buf, build_string(), build_tree_list, chainon(), constraint_len(), dst, end, error(), fb_lvalue, fb_mayfail, fb_rvalue, free(), gimplify_expr(), GS_ALL_DONE, GS_ERROR, i, is_gimple_asm_val(), is_gimple_lvalue(), is_gimple_min_lval(), len, list_length(), memcpy, NULL, NULL_TREE, p, parse_input_constraint(), parse_output_constraint(), ret, sprintf(), str, strchr, strlen(), TREE_CHAIN, TREE_PURPOSE, TREE_STRING_POINTER, TREE_VALUE, unshare_expr(), and xstrdup().
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_bind_expr | ( | tree * | expr_p, | |
| tree | temp, | |||
| tree * | pre_p | |||
| ) | [static] |
Definition at line 857 of file gimplify.c.
References append_to_statement_list(), BIND_EXPR_BODY, BIND_EXPR_VARS, build(), build_stack_save_restore(), DECL_SEEN_IN_BIND_EXPR_P, gimple_pop_bind_expr(), gimple_push_bind_expr(), gimplify_ctxp, gimplify_to_stmt_list(), GS_ALL_DONE, GS_OK, NULL_TREE, gimplify_ctx::save_stack, TREE_CHAIN, TREE_OPERAND, void_type_node, and voidify_wrapper_expr().
Referenced by gimplify_expr(), and gimplify_target_expr().
Definition at line 4598 of file gimplify.c.
Referenced by gimplify_function_tree(), and initialize_inlined_parameters().
| static enum gimplify_status gimplify_boolean_expr | ( | tree * | expr_p | ) | [static] |
Definition at line 3101 of file gimplify.c.
References boolean_false_node, boolean_true_node, build(), convert(), GS_OK, and TREE_TYPE.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_call_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 1723 of file gimplify.c.
References build_empty_stmt(), BUILT_IN_NORMAL, call_expr_flags(), DECL_BUILT_IN, DECL_BUILT_IN_CLASS, DECL_FUNCTION_CODE, ECF_CONST, ECF_PURE, error(), EXPR_HAS_LOCATION, fb_rvalue, fold_builtin(), fold_builtin_next_arg(), gcc_assert, get_callee_fndecl(), gimplify_arg(), gimplify_expr(), GS_ERROR, GS_OK, input_location, is_gimple_call_addr(), nreverse(), NULL, PUSH_ARGS_REVERSED, ret, SET_EXPR_LOCATION, TREE_CHAIN, TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, and TREE_VALUE.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_case_label_expr | ( | tree * | expr_p | ) | [static] |
Definition at line 1212 of file gimplify.c.
References build(), CASE_LABEL, gimplify_ctx::case_labels, gcc_assert, gimplify_ctxp, GS_ALL_DONE, VARRAY_PUSH_TREE, and void_type_node.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_cleanup_point_expr | ( | tree * | expr_p, | |
| tree * | pre_p | |||
| ) | [static] |
Definition at line 3508 of file gimplify.c.
References append_to_statement_list(), build(), CLEANUP_EH_ONLY, gimplify_ctx::conditions, gimplify_ctxp, gimplify_to_stmt_list(), GS_ALL_DONE, GS_OK, iter, NULL, NULL_TREE, sl, TREE_CODE, TREE_OPERAND, tsi_delink(), tsi_end_p(), tsi_link_before(), tsi_next(), tsi_one_before_end_p(), TSI_SAME_STMT, tsi_split_statement_list_after(), tsi_start(), tsi_stmt_ptr(), void_type_node, and voidify_wrapper_expr().
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_compound_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 3126 of file gimplify.c.
References append_to_statement_list(), gimplify_stmt(), GS_ALL_DONE, GS_OK, TREE_CODE, and TREE_OPERAND.
Referenced by gimplify_compound_expr(), gimplify_expr(), and gimplify_modify_expr_rhs().
| static enum gimplify_status gimplify_compound_lval | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| fallback_t | fallback | |||
| ) | [static] |
Definition at line 1424 of file gimplify.c.
References array_ref_element_size(), array_ref_low_bound(), BITS_PER_UNIT, canonicalize_component_ref(), component_ref_field_offset(), DECL_OFFSET_ALIGN, fb_rvalue, fold_indirect_ref(), gcc_assert, gimplify_expr(), GS_OK, handled_component_p(), i, is_gimple_formal_tmp_reg(), is_gimple_min_invariant(), is_gimple_min_lval(), is_gimple_val(), low, MIN, offset, p, recalculate_side_effects(), ret, size_binop(), size_int, stack, STRIP_USELESS_TYPE_CONVERSION, TREE_CODE, TREE_OPERAND, TREE_TYPE, TYPE_ALIGN_UNIT, unshare_expr(), VARRAY_ACTIVE_SIZE, VARRAY_FREE, VARRAY_GENERIC_PTR_NOGC, VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_POP, VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_TOP_TREE, and varray_type.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_cond_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| tree | target, | |||
| fallback_t | fallback | |||
| ) | [static] |
Definition at line 2138 of file gimplify.c.
References build(), build_fold_addr_expr(), build_fold_indirect_ref(), build_pointer_type(), create_tmp_var, fb_lvalue, fb_rvalue, gimple_boolify(), gimple_pop_condition(), gimple_push_condition(), gimplify_and_add(), gimplify_expr(), gimplify_stmt(), gimplify_to_stmt_list(), GS_ALL_DONE, GS_ERROR, GS_OK, invert_truthvalue(), is_gimple_condexpr(), is_gimple_min_lval(), NULL, recalculate_side_effects(), result, ret, shortcut_cond_expr(), tmp, tmp2, TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, TREE_TYPE, unshare_expr(), void_type_node, and VOID_TYPE_P.
Referenced by gimplify_expr(), and gimplify_modify_expr_rhs().
| static enum gimplify_status gimplify_conversion | ( | tree * | expr_p | ) | [static] |
Definition at line 1368 of file gimplify.c.
References canonicalize_addr_expr(), canonicalize_component_ref(), gcc_assert, GS_OK, STRIP_SIGN_NOPS, sub, TREE_CODE, TREE_OPERAND, and tree_ssa_useless_type_conversion().
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_decl_expr | ( | tree * | stmt_p | ) | [static] |
Definition at line 984 of file gimplify.c.
References addr(), args, build(), build2, build_fold_indirect_ref(), build_function_call_expr(), build_pointer_type(), built_in_decls, create_tmp_var, DECL_ARTIFICIAL, DECL_EXPR_DECL, DECL_EXTERNAL, DECL_IGNORED_P, DECL_INITIAL, DECL_NAME, DECL_SIZE, DECL_SIZE_UNIT, DECL_VALUE_EXPR, error_mark_node, fold_convert(), force_labels_r(), get_name(), gimple_add_tmp_var(), gimplify_and_add(), gimplify_ctxp, gimplify_one_sizepos(), gimplify_type_sizes(), GS_ALL_DONE, GS_ERROR, NULL, NULL_TREE, gimplify_ctx::save_stack, TREE_CODE, tree_cons, TREE_CONSTANT, TREE_STATIC, TREE_TYPE, TYPE_SIZES_GIMPLIFIED, void_type_node, and walk_tree().
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_exit_expr | ( | tree * | expr_p | ) | [static] |
Definition at line 1246 of file gimplify.c.
References build(), build_and_jump(), cond, gimplify_ctx::exit_label, gimplify_ctxp, GS_OK, NULL_TREE, TREE_OPERAND, and void_type_node.
Referenced by gimplify_expr().
| enum gimplify_status gimplify_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| bool(*)(tree) | gimple_test_f, | |||
| fallback_t | fallback | |||
| ) |
Definition at line 3757 of file gimplify.c.
Referenced by alpha_gimplify_va_arg_1(), cp_gimplify_init_expr(), force_gimple_operand(), gimplify_addr_expr(), gimplify_arg(), gimplify_asm_expr(), gimplify_call_expr(), gimplify_compound_lval(), gimplify_cond_expr(), gimplify_expr(), gimplify_init_constructor(), gimplify_init_ctor_preeval(), gimplify_modify_expr(), gimplify_modify_expr_rhs(), gimplify_omp_for(), gimplify_one_sizepos(), gimplify_save_expr(), gimplify_scan_omp_clauses(), gimplify_self_mod_expr(), gimplify_stmt(), gimplify_switch_expr(), gimplify_target_expr(), gimplify_va_arg_expr(), goa_stabilize_expr(), internal_get_tmp_var(), ix86_gimplify_va_arg(), lower_regimplify(), rs6000_gimplify_va_arg(), s390_gimplify_va_arg(), sparc_gimplify_va_arg(), std_gimplify_va_arg_expr(), xstormy16_expand_builtin_va_arg(), and xtensa_gimplify_va_arg_expr().
Definition at line 4670 of file gimplify.c.
Referenced by c_genericize(), and cgraph_build_static_cdtor().
| static enum gimplify_status gimplify_init_constructor | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 2609 of file gimplify.c.
References align, append_to_statement_list(), build(), build_complex(), build_vector(), can_move_by_pieces(), categorize_ctor_elements(), CLEAR_RATIO, COMPLEX_TYPE, CONSTANT_CLASS_P, CONSTRUCTOR_ELTS, convert(), count_type_elements(), create_tmp_var_name(), create_tmp_var_raw(), ctor(), DECL_ALIGN, DECL_INITIAL, DECL_NAME, DECL_P, DECL_USER_ALIGN, fb_lvalue, fb_rvalue, force_labels_r(), gcc_assert, gcc_unreachable, get_alias_set(), get_base_address(), gimple_add_tmp_var(), gimplify_expr(), gimplify_init_ctor_eval(), gimplify_init_ctor_preeval(), gimplify_stmt(), GS_ALL_DONE, GS_ERROR, GS_OK, GS_UNHANDLED, HOST_WIDE_INT, i, int_size_in_bytes(), integer_zero_node, is_gimple_lvalue(), is_gimple_val(), lhd_set_decl_assembler_name(), gimplify_init_ctor_preeval_data::lhs_alias_set, gimplify_init_ctor_preeval_data::lhs_base_decl, NULL, NULL_TREE, r, ret, rhs_predicate_for(), size, TREE_CHAIN, TREE_CODE, TREE_CONSTANT, TREE_OPERAND, TREE_READONLY, TREE_STATIC, TREE_TYPE, TREE_VALUE, TYPE_ALIGN, unshare_expr(), walk_tree(), and zero.
Referenced by gimplify_modify_expr_rhs().
Definition at line 2533 of file gimplify.c.
References build(), CONSTRUCTOR_ELTS, gcc_assert, gimplify_and_add(), gimplify_init_ctor_eval_range(), initializer_zerop(), NULL, NULL_TREE, simple_cst_equal(), TREE_CHAIN, TREE_CODE, TREE_OPERAND, TREE_PURPOSE, TREE_TYPE, TREE_VALUE, TYPE_MAIN_VARIANT, and unshare_expr().
Referenced by gimplify_init_constructor(), gimplify_init_ctor_eval(), and gimplify_init_ctor_eval_range().
| static void gimplify_init_ctor_eval_range | ( | tree | object, | |
| tree | lower, | |||
| tree | upper, | |||
| tree | value, | |||
| tree | array_elt_type, | |||
| tree * | pre_p, | |||
| bool | cleared | |||
| ) | [static] |
Definition at line 2458 of file gimplify.c.
References append_to_statement_list(), boolean_type_node, build1, build2, build3, build4, CONSTRUCTOR_ELTS, create_artificial_label(), create_tmp_var, fold_convert(), gimplify_and_add(), gimplify_init_ctor_eval(), integer_one_node, NULL, NULL_TREE, TREE_CODE, TREE_TYPE, unshare_expr(), and void_type_node.
Referenced by gimplify_init_ctor_eval().
| static void gimplify_init_ctor_preeval | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| struct gimplify_init_ctor_preeval_data * | data | |||
| ) | [static] |
Definition at line 2375 of file gimplify.c.
References CONSTRUCTOR_ELTS, DECL_P, fb_rvalue, get_formal_tmp_var(), gimplify_expr(), gimplify_init_ctor_preeval_1(), GS_ERROR, is_gimple_mem_rhs(), NULL, one, TREE_ADDRESSABLE, TREE_CHAIN, TREE_CODE, TREE_CONSTANT, TREE_INVARIANT, TREE_SIDE_EFFECTS, TREE_TYPE, TREE_VALUE, type_contains_placeholder_p(), TYPE_SIZE, and walk_tree().
Referenced by gimplify_init_constructor(), and gimplify_init_ctor_preeval().
Definition at line 2347 of file gimplify.c.
References alias_sets_conflict_p(), get_alias_set(), IS_TYPE_OR_DECL_P, gimplify_init_ctor_preeval_data::lhs_alias_set, gimplify_init_ctor_preeval_data::lhs_base_decl, NULL, TREE_ADDRESSABLE, and TREE_CODE.
Referenced by gimplify_init_ctor_preeval().
| static enum gimplify_status gimplify_loop_expr | ( | tree * | expr_p, | |
| tree * | pre_p | |||
| ) | [static] |
Definition at line 1066 of file gimplify.c.
References append_to_statement_list(), build1, build_and_jump(), gimplify_ctx::exit_label, gimplify_and_add(), gimplify_ctxp, GS_ALL_DONE, LABEL_EXPR_LABEL, LOOP_EXPR_BODY, NULL_TREE, and void_type_node.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_modify_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 2985 of file gimplify.c.
References append_to_statement_list(), fb_lvalue, fb_rvalue, gcc_assert, gimplify_ctxp, gimplify_expr(), gimplify_modify_expr_rhs(), gimplify_modify_expr_to_memcpy(), gimplify_modify_expr_to_memset(), GS_ALL_DONE, GS_ERROR, GS_OK, GS_UNHANDLED, gimplify_ctx::into_ssa, is_gimple_addressable(), is_gimple_lvalue(), is_gimple_reg(), make_ssa_name(), maybe_with_size_expr(), ret, rhs_predicate_for(), size, SSA_NAME, TREE_CODE, TREE_OPERAND, and TREE_SET_CODE.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_modify_expr_rhs | ( | tree * | expr_p, | |
| tree * | from_p, | |||
| tree * | to_p, | |||
| tree * | pre_p, | |||
| tree * | post_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 2880 of file gimplify.c.
References fb_rvalue, fold_indirect_ref(), gimplify_compound_expr(), gimplify_cond_expr(), gimplify_init_constructor(), GS_OK, GS_UNHANDLED, is_gimple_reg_type(), ret, TARGET_EXPR_INITIAL, TREE_CODE, TREE_TYPE, and VOID_TYPE_P.
Referenced by gimplify_modify_expr().
| static enum gimplify_status gimplify_modify_expr_to_memcpy | ( | tree * | expr_p, | |
| tree | size, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 2275 of file gimplify.c.
References args, build1, build_fold_addr_expr(), build_function_call_expr(), GS_OK, implicit_built_in_decls, NULL, tree_cons, TREE_OPERAND, and TREE_TYPE.
Referenced by gimplify_modify_expr().
| static enum gimplify_status gimplify_modify_expr_to_memset | ( | tree * | expr_p, | |
| tree | size, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 2307 of file gimplify.c.
References args, build1, build_fold_addr_expr(), build_function_call_expr(), GS_OK, implicit_built_in_decls, integer_zero_node, NULL, tree_cons, TREE_OPERAND, and TREE_TYPE.
Referenced by gimplify_modify_expr().
Definition at line 4471 of file gimplify.c.
Referenced by gimplify_decl_expr(), gimplify_parameters(), and gimplify_type_sizes().
| static enum gimplify_status gimplify_return_expr | ( | tree | stmt, | |
| tree * | pre_p | |||
| ) | [static] |
Definition at line 913 of file gimplify.c.
References aggregate_value_p(), build(), create_tmp_var, current_function_decl, error_mark_node, gcc_assert, gimplify_and_add(), gimplify_ctxp, GS_ALL_DONE, NULL, NULL_TREE, result, gimplify_ctx::return_temp, TREE_CODE, TREE_NO_WARNING, TREE_OPERAND, TREE_TYPE, and VOID_TYPE_P.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_save_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p | |||
| ) | [static] |
Definition at line 3191 of file gimplify.c.
References append_to_statement_list(), fb_none, gcc_assert, get_initialized_tmp_var(), gimplify_expr(), GS_ALL_DONE, is_gimple_stmt(), NULL, ret, SAVE_EXPR_RESOLVED_P, TREE_CODE, TREE_OPERAND, TREE_TYPE, val, and void_type_node.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_self_mod_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p, | |||
| bool | want_value | |||
| ) | [static] |
Definition at line 1602 of file gimplify.c.
References build(), fb_lvalue, fb_rvalue, gcc_assert, gimplify_and_add(), gimplify_expr(), GS_ALL_DONE, GS_ERROR, GS_OK, is_gimple_lvalue(), is_gimple_val(), postfix, ret, t1, TREE_CODE, TREE_OPERAND, and TREE_TYPE.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_statement_list | ( | tree * | expr_p | ) | [static] |
Definition at line 3158 of file gimplify.c.
References gimplify_stmt(), GS_ALL_DONE, i, NULL, TREE_CODE, tsi_delink(), tsi_end_p(), tsi_link_before(), tsi_next(), TSI_SAME_STMT, tsi_start(), tsi_stmt(), and tsi_stmt_ptr().
Referenced by gimplify_expr().
Definition at line 3705 of file gimplify.c.
Referenced by copy_bb(), copy_body_r(), cp_gimplify_omp_for(), genericize_catch_block(), genericize_eh_spec_block(), genericize_try_block(), gimple_push_cleanup(), gimplify_and_add(), gimplify_body(), gimplify_c_loop(), gimplify_compound_expr(), gimplify_cond_expr(), gimplify_cp_loop(), gimplify_init_constructor(), gimplify_modify_expr(), gimplify_must_not_throw_expr(), gimplify_omp_parallel(), gimplify_scan_omp_clauses(), gimplify_statement_list(), gimplify_switch_stmt(), gimplify_target_expr(), gimplify_to_stmt_list(), lower_rec_input_clauses(), mx_register_decls(), and setup_one_parameter().
| static enum gimplify_status gimplify_switch_expr | ( | tree * | expr_p, | |
| tree * | pre_p | |||
| ) | [static] |
Definition at line 1139 of file gimplify.c.
References append_to_statement_list(), build(), CASE_LABEL, gimplify_ctx::case_labels, CASE_LOW, create_artificial_label(), fb_rvalue, gcc_assert, gimplify_ctxp, gimplify_expr(), gimplify_to_stmt_list(), i, is_gimple_val(), len, make_tree_vec, NULL, NULL_TREE, ret, sort_case_labels(), SWITCH_BODY, SWITCH_COND, SWITCH_LABELS, TREE_VEC_ELT, VARRAY_ACTIVE_SIZE, VARRAY_TREE, VARRAY_TREE_INIT, varray_type, and void_type_node.
Referenced by gimplify_expr().
| static enum gimplify_status gimplify_target_expr | ( | tree * | expr_p, | |
| tree * | pre_p, | |||
| tree * | post_p | |||
| ) | [static] |
Definition at line 3638 of file gimplify.c.
References append_to_statement_list(), build(), CLEANUP_EH_ONLY, DECL_SEEN_IN_BIND_EXPR_P, fb_none, gcc_assert, gimple_add_tmp_var(), gimple_push_cleanup(), gimplify_bind_expr(), gimplify_expr(), gimplify_stmt(), GS_EMIT_TARGET_EXPR_CLEANUP, GS_ERROR, GS_OK, is_gimple_stmt(), NULL_TREE, ret, TARGET_EXPR_CLEANUP, TARGET_EXPR_INITIAL, TARGET_EXPR_SLOT, TREE_CODE, TREE_OPERAND, TREE_TYPE, void_type_node, and VOID_TYPE_P.
Referenced by gimplify_expr().
Definition at line 3713 of file gimplify.c.
Referenced by gimplify_bind_expr(), gimplify_cleanup_point_expr(), gimplify_cond_expr(), gimplify_expr(), gimplify_omp_for(), gimplify_omp_workshare(), gimplify_switch_expr(), mf_build_check_statement_for(), and mf_decl_cache_locals().
Definition at line 4396 of file gimplify.c.
Referenced by gimplify_decl_expr(), gimplify_parm_type(), and gimplify_type_sizes().
| static enum gimplify_status gimplify_variable_sized_compare | ( | tree * | expr_p | ) | [static] |
Definition at line 3066 of file gimplify.c.
References args, build(), build_fold_addr_expr(), build_function_call_expr(), dest, GS_OK, implicit_built_in_decls, integer_zero_node, NULL, SUBSTITUTE_PLACEHOLDER_IN_EXPR, TREE_CODE, tree_cons, TREE_OPERAND, TREE_TYPE, TYPE_SIZE_UNIT, and unshare_expr().
Referenced by gimplify_expr().
| static GTY | ( | () | ) | [static] |
Definition at line 311 of file gimplify.c.
References ASM_FORMAT_PRIVATE_NAME, ASTRDUP, get_identifier(), remove_suffix(), and strlen().
Definition at line 473 of file gimplify.c.
References build(), EXPR_HAS_LOCATION, EXPR_LOCUS, fb_rvalue, gimplify_and_add(), gimplify_ctxp, gimplify_expr(), input_location, gimplify_ctx::into_ssa, is_gimple_formal_tmp_rhs(), lookup_tmp_var(), mod, SET_EXPR_LOCATION, SET_EXPR_LOCUS, TREE_OPERAND, and TREE_TYPE.
Referenced by get_formal_tmp_var(), and get_initialized_tmp_var().
Definition at line 422 of file gimplify.c.
References create_tmp_from_val(), DECL_GIMPLE_FORMAL_TEMP_P, gimplify_ctxp, htab_find_slot(), INSERT, NULL, optimize, ret, gimple_temp_hash_elt::temp, gimplify_ctx::temp_htab, TREE_SIDE_EFFECTS, gimple_temp_hash_elt::val, and xmalloc().
Referenced by internal_get_tmp_var().
Definition at line 1667 of file gimplify.c.
References build2, error_mark_node, size, SUBSTITUTE_PLACEHOLDER_IN_EXPR, TREE_CODE, TREE_TYPE, TYPE_SIZE_UNIT, and unshare_expr().
Referenced by gimplify_arg(), gimplify_init_ctor_preeval(), and gimplify_modify_expr().
Definition at line 608 of file gimplify.c.
References BLOCK, copy_tree_r(), gcc_assert, NULL_TREE, tcc_constant, tcc_declaration, tcc_type, TREE_CODE, and TREE_CODE_CLASS.
Referenced by copy_if_shared_r(), and unshare_expr().
Definition at line 142 of file gimplify.c.
Referenced by convert_to_gimple_builtin(), execute_mudflap_function_decls(), execute_mudflap_function_ops(), expand_omp_for(), expand_parallel_call(), force_gimple_operand(), generate_element_init(), gimplify_body(), gimplify_omp_parallel(), gimplify_scan_omp_clauses(), GTY(), lower_omp_for(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), lower_omp_single(), and optimize_inline_calls().
Definition at line 125 of file gimplify.c.
Referenced by convert_to_gimple_builtin(), execute_mudflap_function_decls(), execute_mudflap_function_ops(), expand_omp_for(), expand_parallel_call(), force_gimple_operand(), generate_element_init(), gimplify_body(), gimplify_omp_parallel(), gimplify_scan_omp_clauses(), GTY(), lower_omp_for(), lower_omp_master(), lower_omp_ordered(), lower_omp_parallel(), lower_omp_sections(), lower_omp_single(), and optimize_inline_calls().
| static void remove_suffix | ( | char * | name, | |
| int | len | |||
| ) | [inline, static] |
Definition at line 1925 of file gimplify.c.
References append_to_statement_list(), block_may_fallthru(), build(), build1, build_and_jump(), expr_last(), GOTO_DESTINATION, LABEL_EXPR_LABEL, NULL, NULL_TREE, shortcut_cond_r(), TREE_CODE, TREE_OPERAND, TREE_SIDE_EFFECTS, and void_type_node.
Referenced by gimplify_cond_expr(), and shortcut_cond_expr().
Definition at line 1851 of file gimplify.c.
References append_to_statement_list(), build(), build1, build_and_jump(), NULL, NULL_TREE, TREE_CODE, TREE_OPERAND, and void_type_node.
Referenced by shortcut_cond_expr(), and shortcut_cond_r().
Definition at line 559 of file gimplify.c.
References TREE_CODE, and TREE_SIDE_EFFECTS.
Referenced by annotate_one_with_locus().
Definition at line 1107 of file gimplify.c.
Referenced by gimplify_switch_expr(), and lower_try_finally_switch().
| static tree unmark_visited_r | ( | tree * | tp, | |
| int *walk_subtrees | ATTRIBUTE_UNUSED, | |||
| void *data | ATTRIBUTE_UNUSED | |||
| ) | [static] |
Definition at line 676 of file gimplify.c.
References NULL_TREE, and TREE_VISITED.
Referenced by unshare_all_trees(), and unvisit_body().
Definition at line 718 of file gimplify.c.
References copy_if_shared_r(), NULL, unmark_visited_r(), and walk_tree().
Referenced by gimplify_body().
Definition at line 692 of file gimplify.c.
References cgraph_node(), copy_if_shared_r(), DECL_SAVED_TREE, NULL, and walk_tree().
Referenced by gimplify_body(), and unshare_body().
Definition at line 729 of file gimplify.c.
Referenced by add_to_dst_predicate_list(), add_to_predicate_list(), analyze_ref(), build_vtbl_address(), build_vtbl_ref_1(), constant_value_1(), convert_default_arg(), copy_body_r(), create_expression_by_pieces(), create_new_iv(), decl_constant_value_for_broken_optimization(), determine_exit_conditions(), expand_complex_move(), extract_component(), find_interesting_uses_address(), find_phi_replacement_condition(), forward_propagate_addr_expr_1(), forward_propagate_addr_into_variable_array_index(), generate_copy_inout(), get_ref_tag(), gimplify_asm_expr(), gimplify_compound_lval(), gimplify_cond_expr(), gimplify_expr(), gimplify_init_constructor(), gimplify_init_ctor_eval(), gimplify_init_ctor_eval_range(), gimplify_modify_expr_rhs(), gimplify_one_sizepos(), gimplify_var_or_parm_decl(), gimplify_variable_sized_compare(), issue_prefetch_ref(), maybe_with_size_expr(), mf_build_check_statement_for(), remap_decl(), replace_phi_args_in(), replace_phi_with_cond_modify_expr(), rewrite_use_address(), rewrite_use_compare(), rewrite_use_nonlinear_expr(), rewrite_use_outer(), scalarize_init(), scev_const_prop(), schedule_sm(), simplify_replace_tree(), substitute_and_fold(), tree_duplicate_bb(), tree_if_convert_cond_expr(), tree_unswitch_loop(), unshare_aff_combination(), unshare_and_remove_ssa_names(), vect_build_loop_niters(), vect_create_addr_base_for_vector_ref(), vect_create_data_ref_ptr(), vect_is_simple_iv_evolution(), and vect_update_ivs_after_vectorizer().
Definition at line 705 of file gimplify.c.
References cgraph_node(), DECL_SAVED_TREE, NULL, unmark_visited_r(), and walk_tree().
Referenced by gimplify_body(), and unvisit_body().
Definition at line 760 of file gimplify.c.
Referenced by gimplify_bind_expr(), gimplify_cleanup_point_expr(), gimplify_modify_expr_rhs(), gimplify_must_not_throw_expr(), and gimplify_statement_list().
struct gimplify_ctx * gimplify_ctxp [static] |
Referenced by force_gimple_operand(), gimple_add_tmp_var(), gimple_conditional_context(), gimple_current_bind_expr(), gimple_pop_bind_expr(), gimple_pop_condition(), gimple_push_bind_expr(), gimple_push_cleanup(), gimple_push_condition(), gimplify_bind_expr(), gimplify_case_label_expr(), gimplify_cleanup_point_expr(), gimplify_decl_expr(), gimplify_exit_expr(), gimplify_loop_expr(), gimplify_modify_expr(), gimplify_return_expr(), gimplify_switch_expr(), internal_get_tmp_var(), lookup_tmp_var(), pop_gimplify_context(), and push_gimplify_context().
1.5.6