GCC Middle and Back End API Reference
|
Variables | |
static vec< tree > | build_uses |
static tree | build_vdef |
static tree | build_vuse |
static bitmap_obstack | operands_bitmap_obstack |
static int | n_initialized = 0 |
|
static |
Add *VAR_P to the appropriate operand array for statement STMT. FLAGS is as in get_expr_operands. If *VAR_P is a GIMPLE register, it will be added to the statement's real operands, otherwise it is added to virtual operands.
References add_virtual_operand(), append_use(), cfun, function::gimple_df, gimple_set_has_volatile_ops(), is_gimple_reg(), and gimple_df::ssa_renaming_needed.
Referenced by get_expr_operands().
|
inlinestatic |
Adds OP to the list of uses of statement STMT after LAST.
References alloc_use(), link_imm_use_stmt(), and use_optype_d::next.
Referenced by finalize_ssa_uses().
|
static |
Add virtual operands for STMT. FLAGS is as in get_expr_operands.
References append_vdef(), append_vuse(), cfun, gimple_vop(), and is_gimple_debug().
Referenced by add_stmt_operand(), get_asm_expr_operands(), get_indirect_ref_operands(), get_tmr_operands(), maybe_add_call_vops(), and parse_ssa_operands().
|
staticread |
Allocate a USE operand.
References cfun, ssa_operands::free_uses, gimple_ssa_operands(), use_optype_d::next, and ssa_operand_alloc().
Referenced by add_use_op().
|
inlinestatic |
Add USE_P to the list of pointers to operands.
Referenced by add_stmt_operand().
|
inlinestatic |
Add VAR to the set of variables that require a VDEF operator.
References build_vdef, and build_vuse.
Referenced by add_virtual_operand().
|
inlinestatic |
Add VAR to the set of variables that require a VUSE operator.
References build_vuse.
Referenced by add_virtual_operand(), and parse_ssa_operands().
|
static |
Create an operands cache for STMT.
References finalize_ssa_stmt_operands(), gimple_set_has_volatile_ops(), parse_ssa_operands(), and start_ssa_stmt_operands().
Referenced by update_stmt_operands().
|
inlinestatic |
Clear the in_list bits and empty the build array for VDEFs and VUSEs.
References build_vdef, and build_vuse.
Referenced by finalize_ssa_stmt_operands(), and verify_ssa_operands().
|
static |
Create the VOP variable, an artificial global variable to act as a representative of all of the virtual operands FUD chain.
References get_identifier().
Referenced by init_ssa_operands().
DEBUG_FUNCTION void debug_immediate_uses | ( | void | ) |
Dump def-use edges on stderr.
References dump_immediate_uses().
DEBUG_FUNCTION void debug_immediate_uses_for | ( | ) |
Dump def-use edges on stderr.
References dump_immediate_uses_for().
void dump_immediate_uses | ( | ) |
Dump all the immediate uses to FILE.
References dump_immediate_uses_for().
Referenced by debug_immediate_uses(), and ssa_prop_init().
void dump_immediate_uses_for | ( | ) |
Dump all the immediate uses to FILE.
References has_single_use(), has_zero_uses(), is_gimple_reg(), ssa_use_operand_d::loc, num_imm_uses(), print_generic_expr(), print_gimple_stmt(), ssa_use_operand_d::stmt, and ssa_use_operand_d::use.
Referenced by debug_immediate_uses_for(), and dump_immediate_uses().
|
inlinestatic |
Takes elements from build_defs and turns them into def operands of STMT. TODO -- Make build_defs vec of tree *.
References build_vdef, cfun, function::gimple_df, gimple_set_vdef(), gimple_vdef(), release_ssa_name(), gimple_df::rename_vops, gimple_df::ssa_renaming_needed, and unlink_stmt_vdef().
Referenced by finalize_ssa_stmt_operands().
|
inlinestatic |
Finalize all the build vectors, fill the new ones into INFO.
References cleanup_build_arrays(), finalize_ssa_defs(), and finalize_ssa_uses().
Referenced by build_ssa_operands().
|
inlinestatic |
Takes elements from build_uses and turns them into use operands of STMT. TODO -- Make build_uses vec of tree *.
References add_use_op(), build_vdef, build_vuse, cfun, delink_imm_use(), ssa_operands::free_uses, function::gimple_df, gimple_set_use_ops(), gimple_set_vuse(), gimple_ssa_operands(), gimple_use_ops(), gimple_vop(), gimple_vuse(), gimple_vuse_ptr(), last, use_optype_d::next, gimple_df::rename_vops, and gimple_df::ssa_renaming_needed.
Referenced by finalize_ssa_stmt_operands().
void fini_ssa_operands | ( | void | ) |
Dispose of anything required by the operand routines.
References bitmap_obstack_release(), build_vdef, build_vuse, cfun, ssa_operands::free_uses, ggc_free(), function::gimple_df, gimple_ssa_operands(), n_initialized, ssa_operand_memory_d::next, ssa_operands::operand_memory, ssa_operands::ops_active, and gimple_df::vop.
Referenced by delete_tree_ssa().
void free_stmt_operands | ( | ) |
Releases the operands of STMT back to their freelists, and clears the stmt operand lists.
References cfun, delink_imm_use(), ssa_operands::free_uses, gimple_has_mem_ops(), gimple_set_use_ops(), gimple_set_vdef(), gimple_set_vuse(), gimple_ssa_operands(), gimple_use_ops(), and use_optype_d::next.
Referenced by free_bb_predicate(), and move_block_to_fn().
|
static |
Scan operands in the ASM_EXPR stmt referred to in INFO.
References add_virtual_operand(), get_expr_operands(), gimple_asm_clobbers_memory_p(), gimple_asm_input_op(), gimple_asm_ninputs(), gimple_asm_noutputs(), gimple_asm_output_op(), mark_address_taken(), parse_input_constraint(), and parse_output_constraint().
Referenced by parse_ssa_operands().
Referenced by get_asm_expr_operands(), get_expr_operands(), get_indirect_ref_operands(), get_tmr_operands(), and parse_ssa_operands().
|
static |
Recursively scan the expression pointed to by EXPR_P in statement STMT. FLAGS is one of the OPF_* constants modifying how to interpret the operands found.
References add_stmt_operand(), debug_tree(), get_expr_operands(), get_indirect_ref_operands(), get_tmr_operands(), gimple_debug_bind_p(), gimple_set_has_volatile_ops(), HOST_WIDE_INT, is_gimple_debug(), is_gimple_min_invariant(), mark_address_taken(), tcc_binary, tcc_comparison, tcc_constant, tcc_type, tcc_unary, constructor_elt_d::value, and vec_safe_iterate().
|
static |
A subroutine of get_expr_operands to handle MEM_REF. STMT is the statement being processed, EXPR is the MEM_REF that got us here. FLAGS is as in get_expr_operands.
References add_virtual_operand(), get_expr_operands(), and gimple_set_has_volatile_ops().
Referenced by get_expr_operands().
|
static |
A subroutine of get_expr_operands to handle TARGET_MEM_REF.
References add_virtual_operand(), get_expr_operands(), and gimple_set_has_volatile_ops().
Referenced by get_expr_operands().
void init_ssa_operands | ( | ) |
Initialize the operand cache routines.
References bitmap_obstack_initialize(), build_vdef, build_vuse, create_vop_var(), gimple_ssa_operands(), n_initialized, ssa_operands::operand_memory_index, ssa_operands::ops_active, and ssa_operands::ssa_operand_mem_size.
Referenced by expand_omp_taskreg(), init_lowered_empty_function(), initialize_cfun(), input_cfg(), and rewrite_into_ssa().
|
static |
Mark the base address of REF as having its address taken. REF may be a single variable whose address has been taken or any other valid GIMPLE memory reference (structure reference, array, etc).
References get_base_address().
Referenced by get_asm_expr_operands(), and get_expr_operands().
|
static |
If STMT is a call that may clobber globals and other symbols that escape, add them to the VDEF/VUSE lists for it.
References add_virtual_operand(), and gimple_call_flags().
Referenced by parse_ssa_operands().
|
static |
Parse STMT looking for operands. When finished, the various build_* operand vectors will have potential operands in them.
References add_virtual_operand(), append_vuse(), cfun, get_asm_expr_operands(), get_expr_operands(), gimple_debug_bind_get_value_ptr(), gimple_debug_bind_has_value_p(), gimple_debug_bind_p(), gimple_num_ops(), gimple_op_ptr(), gimple_vop(), and maybe_add_call_vops().
Referenced by build_ssa_operands(), and verify_ssa_operands().
|
inlinestatic |
Return memory for an operand of size SIZE.
References cfun, gimple_ssa_operands(), ssa_operand_memory_d::mem, ssa_operand_memory_d::next, ssa_operands::operand_memory, ssa_operands::operand_memory_index, and ssa_operands::ssa_operand_mem_size.
Referenced by alloc_use().
bool ssa_operands_active | ( | ) |
Return true if the SSA operands cache is active.
References gimple_ssa_operands(), and ssa_operands::ops_active.
Referenced by delete_tree_ssa(), delink_stmt_imm_use(), dump_gimple_mem_ops(), swap_tree_operands(), update_modified_stmt(), update_modified_stmts(), and update_stmt_operands().
|
inlinestatic |
Start the process of building up operands vectors in INFO.
References build_vdef, and build_vuse.
Referenced by build_ssa_operands(), and verify_ssa_operands().
void swap_tree_operands | ( | ) |
Swap operands EXP0 and EXP1 in statement STMT. No attempt is done to test the validity of the swap operation.
References cfun, gimple_use_ops(), use_optype_d::next, and ssa_operands_active().
void unlink_stmt_vdef | ( | ) |
Unlink STMTs virtual definition from the IL by propagating its use.
References gimple_vdef(), and gimple_vuse().
Referenced by adjust_last_stmt(), cleanup_empty_eh_move_lp(), cond_if_else_store_replacement_1(), cond_store_replacement(), dse_optimize_stmt(), eliminate(), execute_cse_sincos(), execute_fold_all_builtins(), execute_optimize_widening_mul(), execute_update_addresses_taken(), expand_call_inline(), finalize_ssa_defs(), generate_loops_for_partition(), gimplify_and_update_call_from_tree(), handle_char_store(), optimize_clobbers(), optimize_stmt(), propagate_op_to_single_use(), remove_dead_stmt(), remove_prop_source_from_use(), remove_stmt(), remove_unused_locals(), simplify_builtin_call(), sink_clobbers(), sra_ipa_reset_debug_stmts(), sra_modify_assign(), sra_modify_constructor_assign(), tree_nrv(), update_call_from_tree(), vect_remove_stores(), vect_schedule_slp(), and vect_transform_loop().
void update_stmt_operands | ( | ) |
Get the operands of statement STMT.
References build_ssa_operands(), cfun, gimple_call_noreturn_p(), gimple_modified_p(), gimple_set_modified(), is_gimple_call(), ssa_operands_active(), timevar_pop(), timevar_push(), and vec_safe_push().
DEBUG_FUNCTION bool verify_imm_links | ( | ) |
Scan the immediate_use list for VAR making sure its linked properly. Return TRUE if there is a problem and emit an error message to F.
References count, error(), gimple_modified_p(), ssa_use_operand_d::loc, ssa_use_operand_d::next, ssa_use_operand_d::prev, print_generic_expr(), print_gimple_stmt(), ssa_use_operand_d::stmt, and ssa_use_operand_d::use.
Referenced by release_ssa_name(), and verify_use().
DEBUG_FUNCTION bool verify_ssa_operands | ( | ) |
Verifies SSA statement operands.
References build_vdef, build_vuse, cleanup_build_arrays(), debug_generic_expr(), error(), gimple_has_volatile_ops(), gimple_set_has_volatile_ops(), gimple_vdef(), gimple_vdef_op(), gimple_vuse(), gimple_vuse_op(), parse_ssa_operands(), start_ssa_stmt_operands(), and ssa_use_operand_d::use.
Referenced by verify_ssa().
bool virtual_operand_p | ( | ) |
Return true if OP, an SSA name or a DECL is a virtual operand.
Referenced by adjust_debug_stmts(), bb_has_non_vop_phi(), canonicalize_loop_ivs(), ccp_initialize(), check_all_va_list_escapes(), check_loop_closed_ssa_use(), compute_avail(), compute_points_to_sets(), consider_split(), copy_phis_for_bb(), create_outofssa_var_map(), destroy_loop(), determine_biv_step(), determine_set_costs(), dump_phi_nodes(), dump_var_map(), eliminate_bb(), eliminate_const_or_copy(), eliminate_unnecessary_stmts(), eliminate_useless_phis(), execute_cse_reciprocals(), execute_late_warn_uninitialized(), execute_optimize_stdarg(), expand_used_vars(), find_assert_locations_1(), find_interesting_uses_outside(), find_uses_to_rename_bb(), forward_edge_to_pdom(), gather_scalar_reductions(), generate_loops_for_partition(), get_default_value(), gimple_dump_bb_for_graph(), gimple_merge_blocks(), hoist_adjacent_loads(), if_convertible_phi_p(), init_copy_prop(), insert_backedge_copies(), ipa_pta_execute(), is_gimple_reg(), may_propagate_copy(), move_block_to_fn(), move_computations_stmt(), movement_possibility(), output_bb(), output_function(), output_ssa_names(), partition_view_init(), phi_rank(), predicate_scalar_phi(), prepare_block_for_update(), propagate_necessity(), record_invariant(), record_temporary_equivalences_from_phis(), register_ssa_partition_check(), release_last_vdef(), remove_dead_phis(), remove_unused_locals(), rename_ssa_copies(), replace_ssa_name(), replace_uses_by(), rewrite_add_phi_arguments(), rewrite_commutative_reductions_out_of_ssa_loop(), rewrite_phi_with_iv(), rewrite_reductions_out_of_ssa(), rewrite_update_phi_arguments(), same_phi_alternatives_1(), same_succ_hash(), scalar_close_phi_node_p(), scev_const_prop(), sink_clobbers(), slpeel_tree_peel_loop_to_edge(), slpeel_update_phi_nodes_for_guard1(), split_function(), stmt_interesting_for_vrp(), strlen_enter_block(), substitute_and_fold(), transform_to_exit_first_loop(), try_create_reduction_list(), update_ssa(), vect_analyze_scalar_cycles_1(), vect_can_advance_ivs_p(), vect_update_ivs_after_vectorizer(), verify_gimple_in_cfg(), verify_gimple_phi(), verify_non_ssa_vars(), verify_phi_args(), verify_ssa(), verify_ssa_name(), visit_bb(), vop_phi(), and warn_uninitialized_phi().
|
static |
The built VDEF operand.
Referenced by append_vdef(), cleanup_build_arrays(), finalize_ssa_defs(), finalize_ssa_uses(), fini_ssa_operands(), init_ssa_operands(), start_ssa_stmt_operands(), and verify_ssa_operands().
|
static |
The built VUSE operand.
Referenced by append_vdef(), append_vuse(), cleanup_build_arrays(), finalize_ssa_uses(), fini_ssa_operands(), init_ssa_operands(), start_ssa_stmt_operands(), and verify_ssa_operands().
|
static |
Number of functions with initialized ssa_operands.
Referenced by fini_ssa_operands(), and init_ssa_operands().
|
static |
Bitmap obstack for our datastructures that needs to survive across compilations of multiple functions.