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 )
inline

References mode, and rclass.

Member Function Documentation

◆ emit_autoinc()

rtx address_reload_context::emit_autoinc ( rtx value,
poly_int64 inc_amount )
inherited
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, get_reload_reg(), last, 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
inlinefinaloverridevirtual

Reimplemented from address_reload_context.

References final(), lra_create_new_reg(), mode, NULL, NULL_RTX, and rclass.

Field Documentation

◆ mode

machine_mode lra_autoinc_reload_context::mode
private

◆ rclass

enum reg_class lra_autoinc_reload_context::rclass
private

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