GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | rtx_subrtx_bound_info |
class | generic_subrtx_iterator< T > |
class | generic_subrtx_iterator< T >::array_type |
struct | const_rtx_accessor |
struct | rtx_var_accessor |
struct | rtx_ptr_accessor |
Macros | |
#define | ALL_BOUNDS rtx_all_subrtx_bounds |
#define | NONCONST_BOUNDS rtx_nonconst_subrtx_bounds |
#define | FOR_EACH_SUBRTX(ITER, ARRAY, X, TYPE) |
#define | FOR_EACH_SUBRTX_VAR(ITER, ARRAY, X, TYPE) |
#define | FOR_EACH_SUBRTX_PTR(ITER, ARRAY, X, TYPE) |
Typedefs | |
typedef generic_subrtx_iterator< const_rtx_accessor > | subrtx_iterator |
typedef generic_subrtx_iterator< rtx_var_accessor > | subrtx_var_iterator |
typedef generic_subrtx_iterator< rtx_ptr_accessor > | subrtx_ptr_iterator |
Functions | |
bool | leaf_code_p (enum rtx_code code) |
Variables | |
rtx_subrtx_bound_info | rtx_all_subrtx_bounds [] |
rtx_subrtx_bound_info | rtx_nonconst_subrtx_bounds [] |
#define ALL_BOUNDS rtx_all_subrtx_bounds |
#define FOR_EACH_SUBRTX | ( | ITER, | |
ARRAY, | |||
X, | |||
TYPE ) |
Use ITER to iterate over const_rtx X and its recursive subrtxes, using subrtx_iterator::array ARRAY as the storage for the worklist. ARRAY can be reused for multiple consecutive iterations but shouldn't be shared by two concurrent iterations. TYPE is ALL if all subrtxes are of interest or NONCONST if it is safe to ignore subrtxes of constants.
Referenced by add_used_regs(), altered_reg_used(), insn_propagation::apply_to_rvalue_1(), approx_reg_cost(), check_argument_load(), check_dependence(), check_for_inc_dec(), check_for_inc_dec_1(), check_for_label_ref(), compute_reloc_for_rtx(), const_rtx_hash(), contains_call_div_mod(), contains_ccmode_rtx_p(), contains_constant_pool_address_p(), contains_mem_rtx_p(), contains_symbol_ref_p(), contains_symbolic_reference_p(), cprop_find_used_regs(), duplicate_insn_chain(), eh_returnjump_p(), expand_call(), ext_dce_process_sets(), find_all_hard_regs(), find_auto_inc(), find_memory(), get_some_local_dynamic_name(), internal_arg_pointer_based_exp(), is_dead_debug_insn(), kill_autoinc_value(), mark_constants_in_pattern(), mark_symbol_refs_as_used(), mentions_nonequal_regs(), noce_convert_multiple_sets_1(), non_suitable_const(), note_reg_elim_costly(), rtx_reuse_manager::preprocess(), propagate_for_debug_subst(), refs_newer_value_p(), replace_read(), returnjump_p(), rtx_debug_expr_p(), rtx_referenced_p(), set_paradoxical_subreg(), tls_referenced_p(), rtx_properties::try_to_add_src(), and unmentioned_reg_p().
#define FOR_EACH_SUBRTX_PTR | ( | ITER, | |
ARRAY, | |||
X, | |||
TYPE ) |
Like FOR_EACH_SUBRTX, but iterate over subrtx pointers of rtx pointer X. For example, if X is &PATTERN (insn) and the pattern is a SET, iterate over &PATTERN (insn), &SET_DEST (PATTERN (insn)), etc.
Referenced by change_zero_ext(), check_mem_read_use(), cse_change_cc_mode(), instantiate_virtual_regs_in_rtx(), record_stack_refs(), replace_label(), resolve_debug(), resolve_subreg_use(), and try_combine().
#define FOR_EACH_SUBRTX_VAR | ( | ITER, | |
ARRAY, | |||
X, | |||
TYPE ) |
Like FOR_EACH_SUBRTX, but iterate over subrtxes of an rtx X.
Referenced by add_uses_1(), canonicalize_address_mult(), canonicalize_reload_addr(), collect_address_parts(), const_ok_for_output(), const_ok_for_output_1(), contains_paradoxical_subreg_p(), ext_dce_process_uses(), extract_mentioned_regs(), find_decomposable_subregs(), for_each_inc_dec(), load_modified_by_store_p(), mem_loc_descriptor(), move_insn_for_shrink_wrap(), record_truncated_values(), reg_set_p(), reload_cse_move2add_invalidate(), replace_single_def_regs(), reset_subreg_promoted_p(), and use_narrower_mode_test().
#define NONCONST_BOUNDS rtx_nonconst_subrtx_bounds |
Return true if CODE has no subrtxes.
References rtx_subrtx_bound_info::count, and rtx_all_subrtx_bounds.
|
extern |
Referenced by init_rtlanal(), leaf_code_p(), and setup_reg_subrtx_bounds().
|
extern |
Referenced by init_rtlanal().