GCC Middle and Back End API Reference
lra_autoinc_reload_context Class Reference
Inheritance diagram for lra_autoinc_reload_context:
Collaboration diagram for lra_autoinc_reload_context:

Public Member Functions

 lra_autoinc_reload_context (machine_mode mode, enum reg_class new_rclass)
rtx get_reload_reg () const override final
rtx emit_autoinc (rtx value, poly_int64 amount)

Private Attributes

machine_mode mode
enum reg_class rclass

Detailed Description

Override the generic address_reload_context in order to
control the creation of reload pseudos.   

Constructor & Destructor Documentation

◆ lra_autoinc_reload_context()

lra_autoinc_reload_context::lra_autoinc_reload_context ( machine_mode mode,
enum reg_class new_rclass )

Member Function Documentation

◆ emit_autoinc()

rtx address_reload_context::emit_autoinc ( rtx value,
poly_int64 inc_amount )
Emit insns to reload VALUE into a new register.  VALUE is an
auto-increment or auto-decrement RTX whose operand is a register or
memory location; so reloading involves incrementing that location.

INC_AMOUNT is the number to increment or decrement by (always
positive and ignored for POST_MODIFY/PRE_MODIFY).

Return a pseudo containing the result.   

References add_insn(), delete_insns_since(), emit_insn(), gcc_assert, gen_add2_insn(), gen_int_mode(), gen_move_insn(), gen_sub2_insn(), GET_CODE, get_last_insn(), GET_MODE, address_reload_context::get_reload_reg(), ggc_alloc(), last, offset, poly_int_rtx_p(), recog_memoized(), REG_P, rtx_equal_p(), and XEXP.

Referenced by emit_inc(), and force_reload_address().

◆ get_reload_reg()

rtx lra_autoinc_reload_context::get_reload_reg ( ) const

Reimplemented from address_reload_context.

References lra_create_new_reg(), NULL, and NULL_RTX.

Field Documentation

◆ mode

machine_mode lra_autoinc_reload_context::mode

◆ rclass

enum reg_class lra_autoinc_reload_context::rclass

The documentation for this class was generated from the following file: