GCC Middle and Back End API Reference
pair_fusion_bb_info Struct Reference
Collaboration diagram for pair_fusion_bb_info:

Public Types

using def_hash = nofree_ptr_hash<def_info>
 
using expr_key_t = pair_hash<tree_operand_hash, int_hash<int, -1, -2>>
 
using def_key_t = pair_hash<def_hash, int_hash<int, -1, -2>>
 

Public Member Functions

 pair_fusion_bb_info (bb_info *bb, pair_fusion *d)
 
 ~pair_fusion_bb_info ()
 
void track_access (insn_info *, bool load, rtx mem)
 
void transform ()
 
void cleanup_tombstones ()
 

Data Fields

ordered_hash_map< expr_key_t, access_groupexpr_map
 
ordered_hash_map< def_key_t, access_groupdef_map
 
hash_map< def_hash, alt_basecanon_base_map
 

Static Public Attributes

static const size_t obstack_alignment = sizeof (void *)
 

Private Member Functions

splay_tree_node< access_record * > * node_alloc (access_record *)
 
template<typename Map>
void traverse_base_map (Map &map)
 
void transform_for_base (int load_size, access_group &group)
 
void merge_pairs (insn_list_t &, insn_list_t &, bool load_p, unsigned access_size)
 
bool try_fuse_pair (bool load_p, unsigned access_size, insn_info *i1, insn_info *i2)
 
bool fuse_pair (bool load_p, unsigned access_size, int writeback, insn_info *i1, insn_info *i2, base_cand &base, const insn_range_info &move_range)
 
void track_tombstone (int uid)
 
bool track_via_mem_expr (insn_info *, rtx mem, lfs_fields lfs)
 

Private Attributes

obstack m_obstack
 
bb_info * m_bb
 
pair_fusionm_pass
 
bitmap_obstack m_bitmap_obstack
 
bitmap_head m_tombstone_bitmap
 
bool m_emitted_tombstone
 

Member Typedef Documentation

◆ def_hash

◆ def_key_t

◆ expr_key_t

Constructor & Destructor Documentation

◆ pair_fusion_bb_info()

pair_fusion_bb_info::pair_fusion_bb_info ( bb_info * bb,
pair_fusion * d )
inline

◆ ~pair_fusion_bb_info()

pair_fusion_bb_info::~pair_fusion_bb_info ( )
inline

Member Function Documentation

◆ cleanup_tombstones()

void pair_fusion_bb_info::cleanup_tombstones ( )
inline

◆ fuse_pair()

◆ merge_pairs()

void pair_fusion_bb_info::merge_pairs ( insn_list_t & left_list,
insn_list_t & right_list,
bool load_p,
unsigned access_size )
inlineprivate

◆ node_alloc()

splay_tree_node< access_record * > * pair_fusion_bb_info::node_alloc ( access_record * access)
inlineprivate

References m_obstack.

Referenced by track_access(), and track_via_mem_expr().

◆ track_access()

◆ track_tombstone()

void pair_fusion_bb_info::track_tombstone ( int uid)
inlineprivate

◆ track_via_mem_expr()

◆ transform()

void pair_fusion_bb_info::transform ( )
inline

◆ transform_for_base()

void pair_fusion_bb_info::transform_for_base ( int load_size,
access_group & group )
inlineprivate

◆ traverse_base_map()

template<typename Map>
void pair_fusion_bb_info::traverse_base_map ( Map & map)
inlineprivate

References map, and transform_for_base().

Referenced by transform().

◆ try_fuse_pair()

Field Documentation

◆ canon_base_map

hash_map<def_hash, alt_base> pair_fusion_bb_info::canon_base_map

Referenced by track_access().

◆ def_map

ordered_hash_map<def_key_t, access_group> pair_fusion_bb_info::def_map

Referenced by track_access(), and transform().

◆ expr_map

ordered_hash_map<expr_key_t, access_group> pair_fusion_bb_info::expr_map

Referenced by track_via_mem_expr(), and transform().

◆ m_bb

bb_info* pair_fusion_bb_info::m_bb
private

◆ m_bitmap_obstack

bitmap_obstack pair_fusion_bb_info::m_bitmap_obstack
private

◆ m_emitted_tombstone

bool pair_fusion_bb_info::m_emitted_tombstone
private

◆ m_obstack

obstack pair_fusion_bb_info::m_obstack
private

◆ m_pass

pair_fusion* pair_fusion_bb_info::m_pass
private

◆ m_tombstone_bitmap

bitmap_head pair_fusion_bb_info::m_tombstone_bitmap
private

◆ obstack_alignment

const size_t pair_fusion_bb_info::obstack_alignment = sizeof (void *)
static

Referenced by pair_fusion_bb_info().


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