GCC Middle and Back End API Reference
pair_fusion Struct Referenceabstract

#include <pair-fusion.h>

Public Member Functions

 pair_fusion ()
 
virtual bool fpsimd_op_p (rtx, machine_mode, bool)
 
virtual bool pair_operand_mode_ok_p (machine_mode mode)=0
 
virtual bool pair_reg_operand_ok_p (bool load_p, rtx reg_op, machine_mode mode)=0
 
virtual int pair_mem_alias_check_limit ()=0
 
virtual bool should_handle_writeback (writeback_type which)=0
 
virtual bool pair_mem_ok_with_policy (rtx base_mem, bool load_p)=0
 
virtual rtx gen_pair (rtx *pats, rtx writeback, bool load_p)=0
 
virtual bool pair_mem_insn_p (rtx_insn *insn, bool &load_p)=0
 
virtual bool track_loads_p ()
 
virtual bool track_stores_p ()
 
virtual bool pair_mem_in_range_p (HOST_WIDE_INT offset)=0
 
virtual rtx destructure_pair (rtx regs[2], rtx pattern, bool load_p)=0
 
virtual rtx gen_promote_writeback_pair (rtx wb_effect, rtx mem, rtx regs[2], bool load_p)=0
 
void process_block (rtl_ssa::bb_info *bb)
 
rtl_ssa::insn_info * find_trailing_add (rtl_ssa::insn_info *insns[2], const rtl_ssa::insn_range_info &pair_range, int initial_writeback, rtx *writeback_effect, rtl_ssa::def_info **add_def, rtl_ssa::def_info *base_def, poly_int64 initial_offset, unsigned access_size)
 
int get_viable_bases (rtl_ssa::insn_info *insns[2], vec< base_cand > &base_cands, rtx cand_mems[2], unsigned access_size, bool reversed)
 
void do_alias_analysis (rtl_ssa::insn_info *alias_hazards[4], alias_walker *walkers[4], bool load_p)
 
void try_promote_writeback (rtl_ssa::insn_info *insn, bool load_p)
 
void run ()
 
 ~pair_fusion ()
 

Constructor & Destructor Documentation

◆ pair_fusion()

pair_fusion::pair_fusion ( )

◆ ~pair_fusion()

pair_fusion::~pair_fusion ( )

Member Function Documentation

◆ destructure_pair()

virtual rtx pair_fusion::destructure_pair ( rtx regs[2],
rtx pattern,
bool load_p )
pure virtual

Referenced by try_promote_writeback().

◆ do_alias_analysis()

void pair_fusion::do_alias_analysis ( rtl_ssa::insn_info * alias_hazards[4],
alias_walker * walkers[4],
bool load_p )

◆ find_trailing_add()

insn_info * pair_fusion::find_trailing_add ( rtl_ssa::insn_info * insns[2],
const rtl_ssa::insn_range_info & pair_range,
int initial_writeback,
rtx * writeback_effect,
rtl_ssa::def_info ** add_def,
rtl_ssa::def_info * base_def,
poly_int64 initial_offset,
unsigned access_size )

◆ fpsimd_op_p()

virtual bool pair_fusion::fpsimd_op_p ( rtx ,
machine_mode ,
bool  )
inlinevirtual

◆ gen_pair()

virtual rtx pair_fusion::gen_pair ( rtx * pats,
rtx writeback,
bool load_p )
pure virtual

◆ gen_promote_writeback_pair()

virtual rtx pair_fusion::gen_promote_writeback_pair ( rtx wb_effect,
rtx mem,
rtx regs[2],
bool load_p )
pure virtual

Referenced by try_promote_writeback().

◆ get_viable_bases()

int pair_fusion::get_viable_bases ( rtl_ssa::insn_info * insns[2],
vec< base_cand > & base_cands,
rtx cand_mems[2],
unsigned access_size,
bool reversed )

◆ pair_mem_alias_check_limit()

virtual int pair_fusion::pair_mem_alias_check_limit ( )
pure virtual

Referenced by do_alias_analysis().

◆ pair_mem_in_range_p()

virtual bool pair_fusion::pair_mem_in_range_p ( HOST_WIDE_INT offset)
pure virtual

◆ pair_mem_insn_p()

virtual bool pair_fusion::pair_mem_insn_p ( rtx_insn * insn,
bool & load_p )
pure virtual

Referenced by process_block().

◆ pair_mem_ok_with_policy()

virtual bool pair_fusion::pair_mem_ok_with_policy ( rtx base_mem,
bool load_p )
pure virtual

◆ pair_operand_mode_ok_p()

virtual bool pair_fusion::pair_operand_mode_ok_p ( machine_mode mode)
pure virtual

◆ pair_reg_operand_ok_p()

virtual bool pair_fusion::pair_reg_operand_ok_p ( bool load_p,
rtx reg_op,
machine_mode mode )
pure virtual

◆ process_block()

◆ run()

void pair_fusion::run ( )

◆ should_handle_writeback()

virtual bool pair_fusion::should_handle_writeback ( writeback_type which)
pure virtual

◆ track_loads_p()

virtual bool pair_fusion::track_loads_p ( )
inlinevirtual

Referenced by process_block(), and run().

◆ track_stores_p()

virtual bool pair_fusion::track_stores_p ( )
inlinevirtual

Referenced by process_block(), and run().

◆ try_promote_writeback()


The documentation for this struct was generated from the following files: