GCC Middle and Back End API Reference
emit-rtl.h File Reference

Go to the source code of this file.

Functions

void set_mem_alias_set (rtx, alias_set_type)
void set_mem_align (rtx, unsigned int)
void set_mem_addr_space (rtx, addr_space_t)
void set_mem_expr (rtx, tree)
void set_mem_offset (rtx, HOST_WIDE_INT)
void clear_mem_offset (rtx)
void set_mem_size (rtx, HOST_WIDE_INT)
void clear_mem_size (rtx)
void set_mem_attrs_for_spill (rtx)
tree get_spill_slot_decl (bool)
rtx replace_equiv_address (rtx, rtx)
rtx replace_equiv_address_nv (rtx, rtx)
rtx gen_blockage (void)
rtvec gen_rtvec (int,...)
rtx copy_insn_1 (rtx)
rtx copy_insn (rtx)
rtx copy_delay_slot_insn (rtx)
rtx gen_int_mode (HOST_WIDE_INT, enum machine_mode)
rtx emit_copy_of_insn_after (rtx, rtx)
void set_reg_attrs_from_value (rtx, rtx)
void set_reg_attrs_for_parm (rtx, rtx)
void set_reg_attrs_for_decl_rtl (tree t, rtx x)
void adjust_reg_mode (rtx, enum machine_mode)
int mem_expr_equal_p (const_tree, const_tree)
bool need_atomic_barrier_p (enum memmodel, bool)
static rtx get_insns ()
static void set_first_insn ()
static rtx get_last_insn ()
static void set_last_insn ()
static int get_max_uid ()

Function Documentation

void adjust_reg_mode ( rtx  ,
enum  machine_mode 
)
void clear_mem_offset ( rtx  )
Clear the offset recorded for MEM.   
void clear_mem_size ( rtx  )
Clear the size recorded for MEM.   
rtx copy_delay_slot_insn ( rtx  )
rtx copy_insn ( rtx  )
rtx copy_insn_1 ( rtx  )
rtx emit_copy_of_insn_after ( rtx  ,
rtx   
)
rtx gen_blockage ( void  )
Generate an empty ASM_INPUT, which is used to block attempts to schedule,
   and to block register equivalences to be seen across this insn.   

Referenced by expand_builtin_setjmp_receiver(), expand_function_end(), and thread_prologue_and_epilogue_insns().

rtx gen_int_mode ( HOST_WIDE_INT  ,
enum  machine_mode 
)
rtvec gen_rtvec ( int  ,
  ... 
)
static rtx get_insns ( )
inlinestatic
Return the first insn of the current sequence or current function.   

Referenced by add_cfis_to_fde(), add_insn(), add_insn_before_nobb(), add_test(), asan_clear_shadow(), asan_emit_stack_protection(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms_unsplit_complex(), break_superblocks(), calculate_elim_costs_all_insns(), cfg_layout_delete_block(), cfg_layout_finalize(), cfg_layout_split_edge(), check_and_process_move(), check_sibcall_argument_overlap(), cleanup_barriers(), cleanup_cfg(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), compensate_edge(), computation_cost(), construct_init_block(), convert_move(), convert_to_eh_region_ranges(), copy_src_to_dest(), create_pseudo_cfg(), cse_main(), curr_insn_transform(), do_reload(), doloop_modify(), dup_block_and_redirect(), dw2_build_landing_pads(), emit_inc_dec_insn_before(), emit_initial_value_sets(), emit_input_reload_insns(), emit_move_list(), emit_move_multi_word(), emit_output_reload_insns(), emit_partition_copy(), emit_pattern_before_setloc(), emit_use_return_register_into_block(), end_ifcvt_sequence(), entry_of_function(), execute_function_dump(), execute_jump(), expand_absneg_bit(), expand_atomic_fetch_op(), expand_binop(), expand_builtin_apply_args(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_mathfn(), expand_builtin_mathfn_2(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_return(), expand_builtin_saveregs(), expand_builtin_strlen(), expand_call(), expand_cond_expr_using_cmove(), expand_copysign_bit(), expand_ctz(), expand_debug_locations(), expand_doubleword_clz(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_fixed_convert(), expand_float(), expand_function_end(), expand_sdiv_pow2(), expand_twoval_binop_libfunc(), expand_unop(), expmed_mult_highpart_optab(), fill_slots_from_thread(), find_shift_sequence(), fix_crossing_unconditional_branches(), fixup_tail_calls(), free_bb_for_insn(), fwprop_done(), gen_clobber(), gen_cond_trap(), gen_move_insn(), gen_reload(), gen_use(), generate_prolog_epilog(), get_address_cost(), get_arg_pointer_save_area(), get_first_nonnote_insn(), get_uncond_jump_length(), gimple_expand_cfg(), if_convert(), inherit_in_ebb(), inherit_reload_reg(), init_set_costs(), initialize_uninitialized_regs(), insert_base_initialization(), insert_insn_on_edge(), insert_move_insn_before(), insert_value_copy_on_edge(), insert_var_expansion_initialization(), instantiate_virtual_regs(), instantiate_virtual_regs_in_insn(), internal_arg_pointer_based_exp_scan(), ira(), leaf_function_p(), lra(), mark_constant_pool(), match_asm_constraints_1(), match_reload(), noce_emit_cmove(), noce_emit_move_insn(), noce_emit_store_flag(), noce_process_if_block(), noce_try_cmove_arith(), optimize_mode_switching(), peephole2_optimize(), pop_topmost_sequence(), prepare_float_lib_cmp(), process_addr_reg(), process_address(), process_insert_insn(), record_effective_endpoints(), record_entry_value(), record_store(), reemit_insn_block_notes(), remove_insn(), reorder_blocks(), reorder_insns_nobb(), reorg_loops(), replace_read(), reposition_prologue_and_epilogue_notes(), reset_all_used_flags(), resolve_shift_zext(), resolve_simple_move(), rest_of_clean_state(), rest_of_handle_combine(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_cse_after_global_opts(), rest_of_handle_delay_slots(), rest_of_handle_final(), rest_of_handle_gcse2(), rest_of_handle_postreload(), rest_of_handle_shorten_branches(), rtl_lv_add_condition_to_bb(), rtl_verify_bb_layout(), rtl_verify_edges(), set_nothrow_function_flags(), shorten_branches(), simplify_operand_subreg(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_mark_call_sites(), spill_pseudos(), split_all_insns_noflow(), split_iv(), start_sequence(), thread_prologue_and_epilogue_insns(), try_crossjump_to_edge(), unroll_loop_runtime_iterations(), unshare_all_rtl(), update_equiv_regs(), verify_insn_chain(), verify_rtl_sharing(), vt_add_function_parameter(), vt_init_cfa_base(), and vt_initialize().

static rtx get_last_insn ( )
inlinestatic
Return the last insn emitted in current sequence or current function.   

Referenced by add_insn(), add_insn_after_nobb(), add_test(), adjust_stack_1(), allocate_dynamic_stack_space(), asan_clear_shadow(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms_unsplit_complex(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), commit_one_edge_insertion(), compare_and_jump_seq(), compress_float_constant(), construct_exit_block(), construct_init_block(), create_basic_block_structure(), delete_trivially_dead_insns(), duplicate_insn_chain(), dwarf2out_var_location(), emit_add3_insn(), emit_conditional_add(), emit_conditional_move(), emit_cstore(), emit_debug_insn(), emit_inc(), emit_insn(), emit_insn_after_1(), emit_insn_if_valid_for_reload(), emit_library_call_value_1(), emit_move_complex(), emit_move_complex_parts(), emit_moves(), emit_single_push_insn(), emit_store_flag(), expand_abs_nojump(), expand_absneg_bit(), expand_atomic_compare_and_swap(), expand_binop(), expand_builtin_apply(), expand_builtin_interclass_mathfn(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_builtin_signbit(), expand_builtin_strlen(), expand_call(), expand_case(), expand_debug_locations(), expand_divmod(), expand_doubleword_shift(), expand_fix(), expand_function_end(), expand_function_start(), expand_gimple_basic_block(), expand_gimple_cond(), expand_gimple_stmt(), expand_gimple_tailcall(), expand_mult_const(), expand_one_cmpl_abs_nojump(), expand_parity(), expand_sfix_optab(), expand_sjlj_dispatch_table(), expand_stack_restore(), expand_twoval_binop(), expand_twoval_unop(), expand_unop(), expand_unop_direct(), extract_bit_field_1(), find_end_label(), force_reg(), gen_reload(), gen_reload_chain_without_interm_reg_p(), get_last_insn_anywhere(), get_last_nonnote_insn(), inc_for_reload(), last_call_insn(), load_register_parameters(), lra(), lra_emit_add(), mark_transaction_restart_calls(), maybe_cleanup_end_of_block(), maybe_emit_sync_lock_test_and_set(), maybe_legitimize_operand_same_code(), maybe_legitimize_operands(), move_block_from_reg(), move_block_to_reg(), noce_try_cmove_arith(), pop_topmost_sequence(), prepare_cmp_insn(), process_address(), record_effective_endpoints(), reload_combine(), remove_insn(), reorder_insns_nobb(), rtl_lv_add_condition_to_bb(), rtl_split_block(), rtl_verify_bb_insn_chain(), shorten_branches(), stack_protect_epilogue(), start_sequence(), store_bit_field_1(), store_bit_field_using_insv(), thread_prologue_and_epilogue_insns(), try_split(), verify_insn_chain(), widen_bswap(), and widen_leading().

tree get_spill_slot_decl ( bool  )
int mem_expr_equal_p ( const_tree  ,
const_tree   
)
bool need_atomic_barrier_p ( enum  memmodel,
bool   
)
rtx replace_equiv_address ( rtx  ,
rtx   
)
Return a memory reference like MEMREF, but with its address changed to
   ADDR.  The caller is asserting that the actual piece of memory pointed
   to is the same, just the form of the address is being changed, such as
   by putting something into a register.   
rtx replace_equiv_address_nv ( rtx  ,
rtx   
)
Likewise, but the reference is not required to be valid.   
void set_mem_addr_space ( rtx  ,
addr_space_t   
)
Set the address space of MEM to ADDRSPACE.   
void set_mem_alias_set ( rtx  ,
alias_set_type   
)
Set the alias set of MEM to SET.   
void set_mem_align ( rtx  ,
unsigned  int 
)
Set the alignment of MEM to ALIGN bits.   
void set_mem_attrs_for_spill ( rtx  )
Set the attributes for MEM appropriate for a spill slot.   
void set_mem_expr ( rtx  ,
tree   
)
Set the expr for MEM to EXPR.   
void set_mem_offset ( rtx  ,
HOST_WIDE_INT   
)
Set the offset for MEM to OFFSET.   
void set_mem_size ( rtx  ,
HOST_WIDE_INT   
)
Set the size for MEM to SIZE.   
void set_reg_attrs_for_decl_rtl ( tree  t,
rtx  x 
)
void set_reg_attrs_for_parm ( rtx  ,
rtx   
)
void set_reg_attrs_from_value ( rtx  ,
rtx   
)