GCC Middle and Back End API Reference
|
#include <rtl-iter.h>
Data Structures | |
class | array_type |
Public Member Functions | |
generic_subrtx_iterator (array_type &, value_type, const rtx_subrtx_bound_info *) | |
value_type | operator* () const |
bool | at_end () const |
void | next () |
void | skip_subrtxes () |
void | substitute (value_type) |
Private Types | |
typedef T::value_type | value_type |
typedef T::rtx_type | rtx_type |
typedef T::rtunion_type | rtunion_type |
Static Private Member Functions | |
static void | free_array (array_type &) |
static size_t | add_subrtxes_to_queue (array_type &, value_type *, size_t, rtx_type) |
static value_type * | add_single_to_queue (array_type &, value_type *, size_t, value_type) |
Private Attributes | |
const rtx_subrtx_bound_info * | m_bounds |
array_type & | m_array |
value_type | m_current |
value_type * | m_base |
size_t | m_end |
bool | m_done |
bool | m_skip |
bool | m_substitute |
Static Private Attributes | |
static const size_t | LOCAL_ELEMS = 16 |
Used to iterate over subrtxes of an rtx. T abstracts the type of access.
|
private |
|
private |
|
private |
|
inline |
Iterate over X and its subrtxes, in arbitrary order. Use ARRAY to store the worklist. We use an external array in order to avoid capturing the fields of this structure when taking the address of the array. Use BOUNDS to find the bounds of simple "e"-string codes.
|
staticprivate |
Store X into index I of ARRAY. ARRAY is known to have at least I elements. Return the new base of ARRAY.
References gcc_checking_assert, i, vec_safe_grow(), vec_safe_length(), and vec_safe_push().
|
staticprivate |
Add the subrtxes of X to worklist ARRAY, starting at END. Return the number of elements added to the worklist.
References end(), GET_CODE, GET_NUM_ELEM, GET_RTX_FORMAT, GET_RTX_LENGTH, i, INSN_P, LIKELY, PATTERN(), and UNLIKELY.
|
inline |
Return true if the iteration has finished.
|
staticprivate |
References vec_free().
Referenced by generic_subrtx_iterator< T >::array_type::~array_type().
|
inline |
|
inline |
Return the current subrtx.
|
inline |
Skip the subrtxes of the current rtx.
|
inline |
Ignore the subrtxes of the current rtx and look at X instead.
|
staticprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |