GCC Middle and Back End API Reference
subreg_shape Class Reference

#include <rtl.h>

Collaboration diagram for subreg_shape:

Public Member Functions

 subreg_shape (machine_mode, poly_uint16, machine_mode)
bool operator== (const subreg_shape &) const
bool operator!= (const subreg_shape &) const
unsigned HOST_WIDE_INT unique_id () const

Data Fields

machine_mode inner_mode
poly_uint16 offset
machine_mode outer_mode

Detailed Description

Describes the shape of a subreg:

inner_mode == the mode of the SUBREG_REG
offset     == the SUBREG_BYTE
outer_mode == the mode of the SUBREG itself.   

Constructor & Destructor Documentation

◆ subreg_shape()

subreg_shape::subreg_shape ( machine_mode inner_mode_in,
poly_uint16 offset_in,
machine_mode outer_mode_in )

Member Function Documentation

◆ operator!=()

bool subreg_shape::operator!= ( const subreg_shape & other) const

References operator==().

◆ operator==()

bool subreg_shape::operator== ( const subreg_shape & other) const

References inner_mode, known_eq, offset, and outer_mode.

Referenced by operator!=().

◆ unique_id()

unsigned HOST_WIDE_INT subreg_shape::unique_id ( ) const
Return an integer that uniquely identifies this shape.  Structures
like rtx_def assume that a mode can fit in an 8-bit bitfield and no
current mode is anywhere near being 65536 bytes in size, so the
id comfortably fits in an int.   

References poly_int< N, C >::coeffs, ggc_alloc(), i, inner_mode, MACHINE_MODE_BITSIZE, NUM_POLY_INT_COEFFS, offset, outer_mode, and STATIC_ASSERT.

Referenced by simplifiable_subregs_hasher::hash(), and simplifiable_subregs().

Field Documentation

◆ inner_mode

machine_mode subreg_shape::inner_mode

◆ offset

◆ outer_mode

machine_mode subreg_shape::outer_mode

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