GCC Middle and Back End API Reference
|
#include <machmode.h>
Public Member Functions | |
bit_field_mode_iterator (HOST_WIDE_INT, HOST_WIDE_INT, poly_int64, poly_int64, unsigned int, bool) | |
bool | next_mode (scalar_int_mode *) |
bool | prefer_smaller_modes () |
Private Attributes | |
opt_scalar_int_mode | m_mode |
HOST_WIDE_INT | m_bitsize |
HOST_WIDE_INT | m_bitpos |
poly_int64 | m_bitregion_start |
poly_int64 | m_bitregion_end |
unsigned int | m_align |
bool | m_volatilep |
int | m_count |
A class for iterating through possible bitfield modes.
bit_field_mode_iterator::bit_field_mode_iterator | ( | HOST_WIDE_INT | bitsize, |
HOST_WIDE_INT | bitpos, | ||
poly_int64 | bitregion_start, | ||
poly_int64 | bitregion_end, | ||
unsigned int | align, | ||
bool | volatilep ) |
Construct an iterator for a bitfield that spans BITSIZE bits, starting at BITPOS. BITREGION_START is the bit position of the first bit in this sequence of bit fields. BITREGION_END is the last bit in this sequence. If these two fields are non-zero, we should restrict the memory access to that range. Otherwise, we are allowed to touch any adjacent non bit-fields. ALIGN is the alignment of the underlying object in bits. VOLATILEP says whether the bitfield is volatile.
References BITS_PER_WORD, end(), known_eq, m_align, m_bitpos, m_bitregion_end, m_bitregion_start, m_bitsize, m_count, m_mode, m_volatilep, MAX, MIN, and NARROWEST_INT_MODE.
bool bit_field_mode_iterator::next_mode | ( | scalar_int_mode * | out_mode | ) |
Calls to this function return successively larger modes that can be used to represent the bitfield. Return true if another bitfield mode is available, storing it in *OUT_MODE if so.
References BITS_PER_WORD, end(), GET_MODE_ALIGNMENT, GET_MODE_BITSIZE(), GET_MODE_PRECISION(), GET_MODE_WIDER_MODE(), m_align, m_bitpos, m_bitregion_end, m_bitregion_start, m_bitsize, m_count, m_mode, MAX_FIXED_MODE_SIZE, maybe_gt, and targetm.
Referenced by adjust_bit_field_mem_for_reg(), and get_best_mode().
bool bit_field_mode_iterator::prefer_smaller_modes | ( | ) |
Return true if smaller modes are generally preferred for this kind of bitfield.
References m_volatilep, and targetm.
Referenced by adjust_bit_field_mem_for_reg(), and get_best_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and next_mode().
|
private |
Referenced by bit_field_mode_iterator(), and prefer_smaller_modes().