GCC Middle and Back End API Reference
rtl.h File Reference
#include "hard-reg-set.h"
#include "rtl.def"
#include "reg-notes.def"
#include "insn-notes.def"
#include "genrtl.h"
Include dependency graph for rtl.h:

Go to the source code of this file.

Data Structures

struct  addr_diff_vec_flags
 
class  mem_attrs
 
class  reg_attrs
 
union  rtunion
 
struct  reg_info
 
struct  block_symbol
 
struct  object_block
 
struct  hwivec_def
 
struct  const_poly_int_def
 
struct  rtx_def
 
union  rtx_def::u
 
struct  rtx_expr_list
 
struct  rtx_insn_list
 
struct  rtx_sequence
 
struct  rtx_insn
 
struct  rtx_debug_insn
 
struct  rtx_nonjump_insn
 
struct  rtx_jump_insn
 
struct  rtx_call_insn
 
struct  rtx_jump_table_data
 
struct  rtx_barrier
 
struct  rtx_code_label
 
struct  rtx_note
 
struct  rtvec_def
 
struct  full_rtx_costs
 
class  subreg_shape
 
struct  address_info
 
struct  wi::int_traits< rtx_mode_t >
 
class  simplify_context
 
struct  subreg_info
 
struct  target_rtl
 
struct  rtl_hooks
 
struct  cgraph_rtl_info
 
struct  rtx_comparison
 

Namespaces

namespace  wi
 

Macros

#define NOOP_MOVE_INSN_CODE   INT_MAX
 
#define RTX_CODE   enum rtx_code
 
#define DEF_RTL_EXPR(ENUM, NAME, FORMAT, CLASS)   ENUM ,
 
#define NUM_RTX_CODE   ((int) LAST_AND_UNUSED_RTX_CODE)
 
#define RTX_CODE_BITSIZE   8
 
#define RTX_OBJ_MASK   (~1)
 
#define RTX_OBJ_RESULT   (RTX_OBJ & RTX_OBJ_MASK)
 
#define RTX_COMPARE_MASK   (~1)
 
#define RTX_COMPARE_RESULT   (RTX_COMPARE & RTX_COMPARE_MASK)
 
#define RTX_ARITHMETIC_MASK   (~1)
 
#define RTX_ARITHMETIC_RESULT   (RTX_COMM_ARITH & RTX_ARITHMETIC_MASK)
 
#define RTX_BINARY_MASK   (~3)
 
#define RTX_BINARY_RESULT   (RTX_COMPARE & RTX_BINARY_MASK)
 
#define RTX_COMMUTATIVE_MASK   (~2)
 
#define RTX_COMMUTATIVE_RESULT   (RTX_COMM_COMPARE & RTX_COMMUTATIVE_MASK)
 
#define RTX_NON_COMMUTATIVE_RESULT   (RTX_COMPARE & RTX_COMMUTATIVE_MASK)
 
#define GET_RTX_LENGTH(CODE)   (rtx_length[(int) (CODE)])
 
#define GET_RTX_NAME(CODE)   (rtx_name[(int) (CODE)])
 
#define GET_RTX_FORMAT(CODE)   (rtx_format[(int) (CODE)])
 
#define GET_RTX_CLASS(CODE)   (rtx_class[(int) (CODE)])
 
#define INSN_CHAIN_CODE_P(CODE)   IN_RANGE (CODE, DEBUG_INSN, NOTE)
 
#define CWI_GET_NUM_ELEM(RTX)    ((int)RTL_FLAG_CHECK1("CWI_GET_NUM_ELEM", (RTX), CONST_WIDE_INT)->u2.num_elem)
 
#define CWI_PUT_NUM_ELEM(RTX, NUM)    (RTL_FLAG_CHECK1("CWI_PUT_NUM_ELEM", (RTX), CONST_WIDE_INT)->u2.num_elem = (NUM))
 
#define RTX_HDR_SIZE   offsetof (struct rtx_def, u)
 
#define RTX_CODE_SIZE(CODE)   rtx_code_size[CODE]
 
#define NULL_RTX   (rtx) 0
 
#define RTX_NEXT(X)
 
#define RTX_PREV(X)
 
#define GET_CODE(RTX)   ((enum rtx_code) (RTX)->code)
 
#define PUT_CODE(RTX, CODE)   ((RTX)->code = (CODE))
 
#define GET_MODE(RTX)   ((machine_mode) (RTX)->mode)
 
#define PUT_MODE_RAW(RTX, MODE)   ((RTX)->mode = (MODE))
 
#define NULL_RTVEC   (rtvec) 0
 
#define GET_NUM_ELEM(RTVEC)   ((RTVEC)->num_elem)
 
#define PUT_NUM_ELEM(RTVEC, NUM)   ((RTVEC)->num_elem = (NUM))
 
#define REG_P(X)   (GET_CODE (X) == REG)
 
#define MEM_P(X)   (GET_CODE (X) == MEM)
 
#define CASE_CONST_SCALAR_INT
 
#define CASE_CONST_UNIQUE
 
#define CASE_CONST_ANY
 
#define CONST_INT_P(X)   (GET_CODE (X) == CONST_INT)
 
#define CONST_WIDE_INT_P(X)   (GET_CODE (X) == CONST_WIDE_INT)
 
#define CONST_POLY_INT_P(X)    (NUM_POLY_INT_COEFFS > 1 && GET_CODE (X) == CONST_POLY_INT)
 
#define CONST_FIXED_P(X)   (GET_CODE (X) == CONST_FIXED)
 
#define CONST_DOUBLE_P(X)   (GET_CODE (X) == CONST_DOUBLE)
 
#define CONST_DOUBLE_AS_INT_P(X)    (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == VOIDmode)
 
#define CONST_SCALAR_INT_P(X)    (CONST_INT_P (X) || CONST_DOUBLE_AS_INT_P (X))
 
#define CONST_DOUBLE_AS_FLOAT_P(X)    (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) != VOIDmode)
 
#define CONST_VECTOR_P(X)   (GET_CODE (X) == CONST_VECTOR)
 
#define LABEL_P(X)   (GET_CODE (X) == CODE_LABEL)
 
#define JUMP_P(X)   (GET_CODE (X) == JUMP_INSN)
 
#define CALL_P(X)   (GET_CODE (X) == CALL_INSN)
 
#define FAKE_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("FAKE_CALL_P", (RTX), CALL_INSN)->used)
 
#define NONJUMP_INSN_P(X)   (GET_CODE (X) == INSN)
 
#define DEBUG_INSN_P(X)   (GET_CODE (X) == DEBUG_INSN)
 
#define NONDEBUG_INSN_P(X)   (NONJUMP_INSN_P (X) || JUMP_P (X) || CALL_P (X))
 
#define MAY_HAVE_DEBUG_MARKER_INSNS   debug_nonbind_markers_p
 
#define MAY_HAVE_DEBUG_BIND_INSNS   flag_var_tracking_assignments
 
#define MAY_HAVE_DEBUG_INSNS    (MAY_HAVE_DEBUG_MARKER_INSNS || MAY_HAVE_DEBUG_BIND_INSNS)
 
#define INSN_P(X)   (NONDEBUG_INSN_P (X) || DEBUG_INSN_P (X))
 
#define NOTE_P(X)   (GET_CODE (X) == NOTE)
 
#define BARRIER_P(X)   (GET_CODE (X) == BARRIER)
 
#define JUMP_TABLE_DATA_P(INSN)   (GET_CODE (INSN) == JUMP_TABLE_DATA)
 
#define SUBREG_P(RTX)   (GET_CODE (RTX) == SUBREG)
 
#define SYMBOL_REF_P(RTX)   (GET_CODE (RTX) == SYMBOL_REF)
 
#define ANY_RETURN_P(X)    (GET_CODE (X) == RETURN || GET_CODE (X) == SIMPLE_RETURN)
 
#define UNARY_P(X)    (GET_RTX_CLASS (GET_CODE (X)) == RTX_UNARY)
 
#define BINARY_P(X)    ((GET_RTX_CLASS (GET_CODE (X)) & RTX_BINARY_MASK) == RTX_BINARY_RESULT)
 
#define ARITHMETIC_P(X)
 
#define COMMUTATIVE_ARITH_P(X)    (GET_RTX_CLASS (GET_CODE (X)) == RTX_COMM_ARITH)
 
#define SWAPPABLE_OPERANDS_P(X)
 
#define NON_COMMUTATIVE_P(X)
 
#define COMMUTATIVE_P(X)
 
#define COMPARISON_P(X)    ((GET_RTX_CLASS (GET_CODE (X)) & RTX_COMPARE_MASK) == RTX_COMPARE_RESULT)
 
#define CONSTANT_P(X)    (GET_RTX_CLASS (GET_CODE (X)) == RTX_CONST_OBJ)
 
#define LABEL_REF_P(X)    (GET_CODE (X) == LABEL_REF)
 
#define OBJECT_P(X)    ((GET_RTX_CLASS (GET_CODE (X)) & RTX_OBJ_MASK) == RTX_OBJ_RESULT)
 
#define RTL_CHECK1(RTX, N, C1)   ((RTX)->u.fld[N])
 
#define RTL_CHECK2(RTX, N, C1, C2)   ((RTX)->u.fld[N])
 
#define RTL_CHECKC1(RTX, N, C)   ((RTX)->u.fld[N])
 
#define RTL_CHECKC2(RTX, N, C1, C2)   ((RTX)->u.fld[N])
 
#define RTL_CHECKC3(RTX, N, C1, C2, C3)   ((RTX)->u.fld[N])
 
#define RTVEC_ELT(RTVEC, I)   ((RTVEC)->elem[I])
 
#define XWINT(RTX, N)   ((RTX)->u.hwint[N])
 
#define CWI_ELT(RTX, I)   ((RTX)->u.hwiv.elem[I])
 
#define XCWINT(RTX, N, C)   ((RTX)->u.hwint[N])
 
#define XCMWINT(RTX, N, C, M)   ((RTX)->u.hwint[N])
 
#define XCNMWINT(RTX, N, C, M)   ((RTX)->u.hwint[N])
 
#define XCNMPRV(RTX, C, M)   (&(RTX)->u.rv)
 
#define XCNMPFV(RTX, C, M)   (&(RTX)->u.fv)
 
#define REG_CHECK(RTX)   (&(RTX)->u.reg)
 
#define BLOCK_SYMBOL_CHECK(RTX)   (&(RTX)->u.block_sym)
 
#define HWIVEC_CHECK(RTX, C)   (&(RTX)->u.hwiv)
 
#define RTX_FLAG(RTX, FLAG)   ((RTX)->FLAG)
 
#define RTL_FLAG_CHECK1(NAME, RTX, C1)   (RTX)
 
#define RTL_FLAG_CHECK2(NAME, RTX, C1, C2)   (RTX)
 
#define RTL_FLAG_CHECK3(NAME, RTX, C1, C2, C3)   (RTX)
 
#define RTL_FLAG_CHECK4(NAME, RTX, C1, C2, C3, C4)   (RTX)
 
#define RTL_FLAG_CHECK5(NAME, RTX, C1, C2, C3, C4, C5)   (RTX)
 
#define RTL_FLAG_CHECK6(NAME, RTX, C1, C2, C3, C4, C5, C6)   (RTX)
 
#define RTL_FLAG_CHECK7(NAME, RTX, C1, C2, C3, C4, C5, C6, C7)   (RTX)
 
#define RTL_INSN_CHAIN_FLAG_CHECK(NAME, RTX)   (RTX)
 
#define XINT(RTX, N)   (RTL_CHECK2 (RTX, N, 'i', 'n').rt_int)
 
#define XUINT(RTX, N)   (RTL_CHECK2 (RTX, N, 'i', 'n').rt_uint)
 
#define XSTR(RTX, N)   (RTL_CHECK2 (RTX, N, 's', 'S').rt_str)
 
#define XEXP(RTX, N)   (RTL_CHECK2 (RTX, N, 'e', 'u').rt_rtx)
 
#define XVEC(RTX, N)   (RTL_CHECK2 (RTX, N, 'E', 'V').rt_rtvec)
 
#define XMODE(RTX, N)   (RTL_CHECK1 (RTX, N, 'M').rt_type)
 
#define XTREE(RTX, N)   (RTL_CHECK1 (RTX, N, 't').rt_tree)
 
#define XBBDEF(RTX, N)   (RTL_CHECK1 (RTX, N, 'B').rt_bb)
 
#define XTMPL(RTX, N)   (RTL_CHECK1 (RTX, N, 'T').rt_str)
 
#define XCFI(RTX, N)   (RTL_CHECK1 (RTX, N, 'C').rt_cfi)
 
#define XVECEXP(RTX, N, M)   RTVEC_ELT (XVEC (RTX, N), M)
 
#define XVECLEN(RTX, N)   GET_NUM_ELEM (XVEC (RTX, N))
 
#define X0INT(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_int)
 
#define X0UINT(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_uint)
 
#define X0STR(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_str)
 
#define X0EXP(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_rtx)
 
#define X0VEC(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_rtvec)
 
#define X0MODE(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_type)
 
#define X0TREE(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_tree)
 
#define X0BBDEF(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_bb)
 
#define X0ADVFLAGS(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_addr_diff_vec_flags)
 
#define X0CSELIB(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_cselib)
 
#define X0MEMATTR(RTX, N)   (RTL_CHECKC1 (RTX, N, MEM).rt_mem)
 
#define X0CONSTANT(RTX, N)   (RTL_CHECK1 (RTX, N, '0').rt_constant)
 
#define X0ANY(RTX, N)   RTL_CHECK1 (RTX, N, '0')
 
#define XCINT(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_int)
 
#define XCUINT(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_uint)
 
#define XCSUBREG(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_subreg)
 
#define XCSTR(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_str)
 
#define XCEXP(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_rtx)
 
#define XCVEC(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_rtvec)
 
#define XCMODE(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_type)
 
#define XCTREE(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_tree)
 
#define XCBBDEF(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_bb)
 
#define XCCFI(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_cfi)
 
#define XCCSELIB(RTX, N, C)   (RTL_CHECKC1 (RTX, N, C).rt_cselib)
 
#define XCVECEXP(RTX, N, M, C)   RTVEC_ELT (XCVEC (RTX, N, C), M)
 
#define XCVECLEN(RTX, N, C)   GET_NUM_ELEM (XCVEC (RTX, N, C))
 
#define XC2EXP(RTX, N, C1, C2)   (RTL_CHECKC2 (RTX, N, C1, C2).rt_rtx)
 
#define XC3EXP(RTX, N, C1, C2, C3)   (RTL_CHECKC3 (RTX, N, C1, C2, C3).rt_rtx)
 
#define RTL_LOCATION(X)
 
#define INSN_CODE(INSN)   XINT (INSN, 5)
 
#define RTX_FRAME_RELATED_P(RTX)
 
#define CROSSING_JUMP_P(RTX)    (RTL_FLAG_CHECK1 ("CROSSING_JUMP_P", (RTX), JUMP_INSN)->jump)
 
#define RTL_CONST_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("RTL_CONST_CALL_P", (RTX), CALL_INSN)->unchanging)
 
#define RTL_PURE_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("RTL_PURE_CALL_P", (RTX), CALL_INSN)->return_val)
 
#define RTL_CONST_OR_PURE_CALL_P(RTX)    (RTL_CONST_CALL_P (RTX) || RTL_PURE_CALL_P (RTX))
 
#define RTL_LOOPING_CONST_OR_PURE_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("CONST_OR_PURE_CALL_P", (RTX), CALL_INSN)->call)
 
#define SIBLING_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("SIBLING_CALL_P", (RTX), CALL_INSN)->jump)
 
#define INSN_ANNULLED_BRANCH_P(RTX)    (RTL_FLAG_CHECK1 ("INSN_ANNULLED_BRANCH_P", (RTX), JUMP_INSN)->unchanging)
 
#define INSN_FROM_TARGET_P(RTX)
 
#define ADDR_DIFF_VEC_FLAGS(RTX)   X0ADVFLAGS (RTX, 4)
 
#define CSELIB_VAL_PTR(RTX)   X0CSELIB (RTX, 0)
 
#define REG_NOTES(INSN)   XEXP(INSN, 6)
 
#define ENTRY_VALUE_EXP(RTX)   (RTL_CHECKC1 (RTX, 0, ENTRY_VALUE).rt_rtx)
 
#define DEF_REG_NOTE(NAME)   NAME,
 
#define REG_NOTE_KIND(LINK)   ((enum reg_note) GET_MODE (LINK))
 
#define PUT_REG_NOTE_KIND(LINK, KIND)    PUT_MODE_RAW (LINK, (machine_mode) (KIND))
 
#define GET_REG_NOTE_NAME(MODE)   (reg_note_name[(int) (MODE)])
 
#define CALL_INSN_FUNCTION_USAGE(INSN)   XEXP(INSN, 7)
 
#define CODE_LABEL_NUMBER(INSN)   XINT (INSN, 5)
 
#define NOTE_DATA(INSN)   RTL_CHECKC1 (INSN, 3, NOTE)
 
#define NOTE_DELETED_LABEL_NAME(INSN)   XCSTR (INSN, 3, NOTE)
 
#define SET_INSN_DELETED(INSN)   set_insn_deleted (INSN);
 
#define NOTE_BLOCK(INSN)   XCTREE (INSN, 3, NOTE)
 
#define NOTE_EH_HANDLER(INSN)   XCINT (INSN, 3, NOTE)
 
#define NOTE_BASIC_BLOCK(INSN)   XCBBDEF (INSN, 3, NOTE)
 
#define NOTE_VAR_LOCATION(INSN)   XCEXP (INSN, 3, NOTE)
 
#define NOTE_MARKER_LOCATION(INSN)   XCUINT (INSN, 3, NOTE)
 
#define NOTE_CFI(INSN)   XCCFI (INSN, 3, NOTE)
 
#define NOTE_LABEL_NUMBER(INSN)   XCINT (INSN, 3, NOTE)
 
#define NOTE_KIND(INSN)   XCINT (INSN, 4, NOTE)
 
#define NOTE_INSN_BASIC_BLOCK_P(INSN)    (NOTE_P (INSN) && NOTE_KIND (INSN) == NOTE_INSN_BASIC_BLOCK)
 
#define NOTE_MARKER_P(INSN)
 
#define PAT_VAR_LOCATION_DECL(PAT)   (XCTREE ((PAT), 0, VAR_LOCATION))
 
#define PAT_VAR_LOCATION_LOC(PAT)   (XCEXP ((PAT), 1, VAR_LOCATION))
 
#define PAT_VAR_LOCATION_STATUS(PAT)
 
#define NOTE_VAR_LOCATION_DECL(NOTE)    PAT_VAR_LOCATION_DECL (NOTE_VAR_LOCATION (NOTE))
 
#define NOTE_VAR_LOCATION_LOC(NOTE)    PAT_VAR_LOCATION_LOC (NOTE_VAR_LOCATION (NOTE))
 
#define NOTE_VAR_LOCATION_STATUS(NOTE)    PAT_VAR_LOCATION_STATUS (NOTE_VAR_LOCATION (NOTE))
 
#define DEBUG_BIND_INSN_P(INSN)
 
#define DEBUG_MARKER_INSN_P(INSN)
 
#define INSN_DEBUG_MARKER_KIND(INSN)
 
#define GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT()    gen_rtx_DEBUG_MARKER (VOIDmode)
 
#define GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT()    gen_rtx_DEBUG_MARKER (BLKmode)
 
#define INSN_VAR_LOCATION(INSN)    (RTL_FLAG_CHECK1 ("INSN_VAR_LOCATION", PATTERN (INSN), VAR_LOCATION))
 
#define INSN_VAR_LOCATION_PTR(INSN)    (&PATTERN (INSN))
 
#define INSN_VAR_LOCATION_DECL(INSN)    PAT_VAR_LOCATION_DECL (INSN_VAR_LOCATION (INSN))
 
#define INSN_VAR_LOCATION_LOC(INSN)    PAT_VAR_LOCATION_LOC (INSN_VAR_LOCATION (INSN))
 
#define INSN_VAR_LOCATION_STATUS(INSN)    PAT_VAR_LOCATION_STATUS (INSN_VAR_LOCATION (INSN))
 
#define gen_rtx_UNKNOWN_VAR_LOC()   (gen_rtx_CLOBBER (VOIDmode, const0_rtx))
 
#define VAR_LOC_UNKNOWN_P(X)    (GET_CODE (X) == CLOBBER && XEXP ((X), 0) == const0_rtx)
 
#define NOTE_DURING_CALL_P(RTX)    (RTL_FLAG_CHECK1 ("NOTE_VAR_LOCATION_DURING_CALL_P", (RTX), NOTE)->call)
 
#define DEBUG_EXPR_TREE_DECL(RTX)   XCTREE (RTX, 0, DEBUG_EXPR)
 
#define DEBUG_IMPLICIT_PTR_DECL(RTX)   XCTREE (RTX, 0, DEBUG_IMPLICIT_PTR)
 
#define DEBUG_PARAMETER_REF_DECL(RTX)   XCTREE (RTX, 0, DEBUG_PARAMETER_REF)
 
#define DEF_INSN_NOTE(NAME)   NAME,
 
#define GET_NOTE_INSN_NAME(NOTE_CODE)    (note_insn_name[(NOTE_CODE)])
 
#define LABEL_NAME(RTX)   XCSTR (RTX, 6, CODE_LABEL)
 
#define LABEL_NUSES(RTX)   XCINT (RTX, 4, CODE_LABEL)
 
#define LABEL_KIND(LABEL)    ((enum label_kind) (((LABEL)->jump << 1) | (LABEL)->call))
 
#define SET_LABEL_KIND(LABEL, KIND)
 
#define LABEL_ALT_ENTRY_P(LABEL)   (LABEL_KIND (LABEL) != LABEL_NORMAL)
 
#define JUMP_LABEL(INSN)   XCEXP (INSN, 7, JUMP_INSN)
 
#define LABEL_REFS(LABEL)   XCEXP (LABEL, 3, CODE_LABEL)
 
#define REGNO(RTX)   (rhs_regno(RTX))
 
#define SET_REGNO(RTX, N)   (df_ref_change_reg_with_loc (RTX, N))
 
#define REG_NREGS(RTX)   (REG_CHECK (RTX)->nregs)
 
#define ORIGINAL_REGNO(RTX)    (RTL_FLAG_CHECK1 ("ORIGINAL_REGNO", (RTX), REG)->u2.original_regno)
 
#define REG_FUNCTION_VALUE_P(RTX)    (RTL_FLAG_CHECK2 ("REG_FUNCTION_VALUE_P", (RTX), REG, PARALLEL)->return_val)
 
#define REG_USERVAR_P(RTX)    (RTL_FLAG_CHECK1 ("REG_USERVAR_P", (RTX), REG)->volatil)
 
#define REG_POINTER(RTX)    (RTL_FLAG_CHECK1 ("REG_POINTER", (RTX), REG)->frame_related)
 
#define MEM_POINTER(RTX)    (RTL_FLAG_CHECK1 ("MEM_POINTER", (RTX), MEM)->frame_related)
 
#define HARD_REGISTER_P(REG)   HARD_REGISTER_NUM_P (REGNO (REG))
 
#define HARD_REGISTER_NUM_P(REG_NO)   ((REG_NO) < FIRST_PSEUDO_REGISTER)
 
#define VIRTUAL_REGISTER_P(REG)   VIRTUAL_REGISTER_NUM_P (REGNO (REG))
 
#define VIRTUAL_REGISTER_NUM_P(REG_NO)    IN_RANGE (REG_NO, FIRST_VIRTUAL_REGISTER, LAST_VIRTUAL_REGISTER)
 
#define INTVAL(RTX)   XCWINT (RTX, 0, CONST_INT)
 
#define UINTVAL(RTX)   ((unsigned HOST_WIDE_INT) INTVAL (RTX))
 
#define CONST_WIDE_INT_VEC(RTX)   HWIVEC_CHECK (RTX, CONST_WIDE_INT)
 
#define CONST_WIDE_INT_NUNITS(RTX)   CWI_GET_NUM_ELEM (RTX)
 
#define CONST_WIDE_INT_ELT(RTX, N)   CWI_ELT (RTX, N)
 
#define CONST_POLY_INT_COEFFS(RTX)
 
#define CONST_DOUBLE_LOW(r)   XCMWINT (r, 0, CONST_DOUBLE, VOIDmode)
 
#define CONST_DOUBLE_HIGH(r)   XCMWINT (r, 1, CONST_DOUBLE, VOIDmode)
 
#define CONST_DOUBLE_REAL_VALUE(r)    ((const struct real_value *) XCNMPRV (r, CONST_DOUBLE, VOIDmode))
 
#define CONST_FIXED_VALUE(r)    ((const struct fixed_value *) XCNMPFV (r, CONST_FIXED, VOIDmode))
 
#define CONST_FIXED_VALUE_HIGH(r)    ((HOST_WIDE_INT) (CONST_FIXED_VALUE (r)->data.high))
 
#define CONST_FIXED_VALUE_LOW(r)    ((HOST_WIDE_INT) (CONST_FIXED_VALUE (r)->data.low))
 
#define CONST_VECTOR_ELT(RTX, N)   const_vector_elt (RTX, N)
 
#define CONST_VECTOR_NPATTERNS(RTX)
 
#define CONST_VECTOR_NELTS_PER_PATTERN(RTX)
 
#define CONST_VECTOR_DUPLICATE_P(RTX)    (CONST_VECTOR_NELTS_PER_PATTERN (RTX) == 1)
 
#define CONST_VECTOR_STEPPED_P(RTX)    (CONST_VECTOR_NELTS_PER_PATTERN (RTX) == 3)
 
#define CONST_VECTOR_ENCODED_ELT(RTX, N)   XCVECEXP (RTX, 0, N, CONST_VECTOR)
 
#define CONST_VECTOR_NUNITS(RTX)   GET_MODE_NUNITS (GET_MODE (RTX))
 
#define SUBREG_REG(RTX)   XCEXP (RTX, 0, SUBREG)
 
#define SUBREG_BYTE(RTX)   XCSUBREG (RTX, 1, SUBREG)
 
#define COSTS_N_INSNS(N)   ((N) * 4)
 
#define MAX_COST   INT_MAX
 
#define SUBREG_PROMOTED_VAR_P(RTX)    (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED", (RTX), SUBREG)->in_struct)
 
#define SUBREG_PROMOTED_SET(RTX, VAL)
 
#define SUBREG_PROMOTED_GET(RTX)
 
#define SUBREG_PROMOTED_SIGN(RTX)
 
#define SUBREG_PROMOTED_SIGNED_P(RTX)    (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_SIGNED_P", (RTX), SUBREG)->unchanging)
 
#define SUBREG_PROMOTED_UNSIGNED_P(RTX)    (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_UNSIGNED_P", (RTX), SUBREG)->volatil)
 
#define SUBREG_CHECK_PROMOTED_SIGN(RTX, SIGN)
 
#define STATIC_CHAIN_REG_P(RTX)    (RTL_FLAG_CHECK1 ("STATIC_CHAIN_REG_P", (RTX), REG)->jump)
 
#define LRA_SUBREG_P(RTX)    (RTL_FLAG_CHECK1 ("LRA_SUBREG_P", (RTX), SUBREG)->jump)
 
#define ASM_OPERANDS_TEMPLATE(RTX)   XCSTR (RTX, 0, ASM_OPERANDS)
 
#define ASM_OPERANDS_OUTPUT_CONSTRAINT(RTX)   XCSTR (RTX, 1, ASM_OPERANDS)
 
#define ASM_OPERANDS_OUTPUT_IDX(RTX)   XCINT (RTX, 2, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT_VEC(RTX)   XCVEC (RTX, 3, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT_CONSTRAINT_VEC(RTX)   XCVEC (RTX, 4, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT(RTX, N)   XCVECEXP (RTX, 3, N, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT_LENGTH(RTX)   XCVECLEN (RTX, 3, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT_CONSTRAINT_EXP(RTX, N)    XCVECEXP (RTX, 4, N, ASM_OPERANDS)
 
#define ASM_OPERANDS_INPUT_CONSTRAINT(RTX, N)    XSTR (XCVECEXP (RTX, 4, N, ASM_OPERANDS), 0)
 
#define ASM_OPERANDS_INPUT_MODE(RTX, N)    GET_MODE (XCVECEXP (RTX, 4, N, ASM_OPERANDS))
 
#define ASM_OPERANDS_LABEL_VEC(RTX)   XCVEC (RTX, 5, ASM_OPERANDS)
 
#define ASM_OPERANDS_LABEL_LENGTH(RTX)   XCVECLEN (RTX, 5, ASM_OPERANDS)
 
#define ASM_OPERANDS_LABEL(RTX, N)   XCVECEXP (RTX, 5, N, ASM_OPERANDS)
 
#define ASM_OPERANDS_SOURCE_LOCATION(RTX)   XCUINT (RTX, 6, ASM_OPERANDS)
 
#define ASM_INPUT_SOURCE_LOCATION(RTX)   XCUINT (RTX, 1, ASM_INPUT)
 
#define MEM_READONLY_P(RTX)    (RTL_FLAG_CHECK1 ("MEM_READONLY_P", (RTX), MEM)->unchanging)
 
#define MEM_KEEP_ALIAS_SET_P(RTX)    (RTL_FLAG_CHECK1 ("MEM_KEEP_ALIAS_SET_P", (RTX), MEM)->jump)
 
#define MEM_VOLATILE_P(RTX)
 
#define MEM_NOTRAP_P(RTX)    (RTL_FLAG_CHECK1 ("MEM_NOTRAP_P", (RTX), MEM)->call)
 
#define MEM_ATTRS(RTX)   X0MEMATTR (RTX, 1)
 
#define REG_ATTRS(RTX)   (REG_CHECK (RTX)->attrs)
 
#define MEM_ALIAS_SET(RTX)   (get_mem_attrs (RTX)->alias)
 
#define MEM_EXPR(RTX)   (get_mem_attrs (RTX)->expr)
 
#define MEM_OFFSET_KNOWN_P(RTX)   (get_mem_attrs (RTX)->offset_known_p)
 
#define MEM_OFFSET(RTX)   (get_mem_attrs (RTX)->offset)
 
#define MEM_ADDR_SPACE(RTX)   (get_mem_attrs (RTX)->addrspace)
 
#define MEM_SIZE_KNOWN_P(RTX)   (get_mem_attrs (RTX)->size_known_p)
 
#define MEM_SIZE(RTX)   (get_mem_attrs (RTX)->size)
 
#define MEM_ALIGN(RTX)   (get_mem_attrs (RTX)->align)
 
#define REG_EXPR(RTX)   (REG_ATTRS (RTX) == 0 ? 0 : REG_ATTRS (RTX)->decl)
 
#define REG_OFFSET(RTX)   (REG_ATTRS (RTX) == 0 ? 0 : REG_ATTRS (RTX)->offset)
 
#define MEM_COPY_ATTRIBUTES(LHS, RHS)
 
#define LABEL_REF_NONLOCAL_P(RTX)    (RTL_FLAG_CHECK1 ("LABEL_REF_NONLOCAL_P", (RTX), LABEL_REF)->volatil)
 
#define LABEL_PRESERVE_P(RTX)    (RTL_FLAG_CHECK2 ("LABEL_PRESERVE_P", (RTX), CODE_LABEL, NOTE)->in_struct)
 
#define SCHED_GROUP_P(RTX)
 
#define SET_DEST(RTX)   XC2EXP (RTX, 0, SET, CLOBBER)
 
#define SET_SRC(RTX)   XCEXP (RTX, 1, SET)
 
#define SET_IS_RETURN_P(RTX)    (RTL_FLAG_CHECK1 ("SET_IS_RETURN_P", (RTX), SET)->jump)
 
#define TRAP_CONDITION(RTX)   XCEXP (RTX, 0, TRAP_IF)
 
#define TRAP_CODE(RTX)   XCEXP (RTX, 1, TRAP_IF)
 
#define COND_EXEC_TEST(RTX)   XCEXP (RTX, 0, COND_EXEC)
 
#define COND_EXEC_CODE(RTX)   XCEXP (RTX, 1, COND_EXEC)
 
#define CONSTANT_POOL_ADDRESS_P(RTX)    (RTL_FLAG_CHECK1 ("CONSTANT_POOL_ADDRESS_P", (RTX), SYMBOL_REF)->unchanging)
 
#define TREE_CONSTANT_POOL_ADDRESS_P(RTX)
 
#define SYMBOL_REF_FLAG(RTX)    (RTL_FLAG_CHECK1 ("SYMBOL_REF_FLAG", (RTX), SYMBOL_REF)->volatil)
 
#define SYMBOL_REF_USED(RTX)    (RTL_FLAG_CHECK1 ("SYMBOL_REF_USED", (RTX), SYMBOL_REF)->used)
 
#define SYMBOL_REF_WEAK(RTX)    (RTL_FLAG_CHECK1 ("SYMBOL_REF_WEAK", (RTX), SYMBOL_REF)->return_val)
 
#define SYMBOL_REF_DATA(RTX)   X0ANY ((RTX), 1)
 
#define SET_SYMBOL_REF_DECL(RTX, DECL)    (gcc_assert (!CONSTANT_POOL_ADDRESS_P (RTX)), X0TREE ((RTX), 1) = (DECL))
 
#define SYMBOL_REF_DECL(RTX)    (CONSTANT_POOL_ADDRESS_P (RTX) ? NULL : X0TREE ((RTX), 1))
 
#define SET_SYMBOL_REF_CONSTANT(RTX, C)    (gcc_assert (CONSTANT_POOL_ADDRESS_P (RTX)), X0CONSTANT ((RTX), 1) = (C))
 
#define SYMBOL_REF_CONSTANT(RTX)    (CONSTANT_POOL_ADDRESS_P (RTX) ? X0CONSTANT ((RTX), 1) : NULL)
 
#define SYMBOL_REF_FLAGS(RTX)
 
#define SYMBOL_FLAG_FUNCTION   (1 << 0)
 
#define SYMBOL_REF_FUNCTION_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_FUNCTION) != 0)
 
#define SYMBOL_FLAG_LOCAL   (1 << 1)
 
#define SYMBOL_REF_LOCAL_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_LOCAL) != 0)
 
#define SYMBOL_FLAG_SMALL   (1 << 2)
 
#define SYMBOL_REF_SMALL_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_SMALL) != 0)
 
#define SYMBOL_FLAG_TLS_SHIFT   3
 
#define SYMBOL_REF_TLS_MODEL(RTX)    ((enum tls_model) ((SYMBOL_REF_FLAGS (RTX) >> SYMBOL_FLAG_TLS_SHIFT) & 7))
 
#define SYMBOL_FLAG_EXTERNAL   (1 << 6)
 
#define SYMBOL_REF_EXTERNAL_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_EXTERNAL) != 0)
 
#define SYMBOL_FLAG_HAS_BLOCK_INFO   (1 << 7)
 
#define SYMBOL_REF_HAS_BLOCK_INFO_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_HAS_BLOCK_INFO) != 0)
 
#define SYMBOL_FLAG_ANCHOR   (1 << 8)
 
#define SYMBOL_REF_ANCHOR_P(RTX)    ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_ANCHOR) != 0)
 
#define SYMBOL_FLAG_MACH_DEP_SHIFT   9
 
#define SYMBOL_FLAG_MACH_DEP   (1 << SYMBOL_FLAG_MACH_DEP_SHIFT)
 
#define SYMBOL_REF_BLOCK(RTX)   (BLOCK_SYMBOL_CHECK (RTX)->block)
 
#define SYMBOL_REF_BLOCK_OFFSET(RTX)   (BLOCK_SYMBOL_CHECK (RTX)->offset)
 
#define PREFETCH_SCHEDULE_BARRIER_P(RTX)    (RTL_FLAG_CHECK1 ("PREFETCH_SCHEDULE_BARRIER_P", (RTX), PREFETCH)->volatil)
 
#define AUTO_INC_DEC   0
 
#define FIND_REG_INC_NOTE(INSN, REG)   0
 
#define HAVE_PRE_INCREMENT   0
 
#define HAVE_PRE_DECREMENT   0
 
#define HAVE_POST_INCREMENT   0
 
#define HAVE_POST_DECREMENT   0
 
#define HAVE_POST_MODIFY_DISP   0
 
#define HAVE_POST_MODIFY_REG   0
 
#define HAVE_PRE_MODIFY_DISP   0
 
#define HAVE_PRE_MODIFY_REG   0
 
#define USE_LOAD_POST_INCREMENT(MODE)   HAVE_POST_INCREMENT
 
#define USE_LOAD_POST_DECREMENT(MODE)   HAVE_POST_DECREMENT
 
#define USE_LOAD_PRE_INCREMENT(MODE)   HAVE_PRE_INCREMENT
 
#define USE_LOAD_PRE_DECREMENT(MODE)   HAVE_PRE_DECREMENT
 
#define USE_STORE_POST_INCREMENT(MODE)   HAVE_POST_INCREMENT
 
#define USE_STORE_POST_DECREMENT(MODE)   HAVE_POST_DECREMENT
 
#define USE_STORE_PRE_INCREMENT(MODE)   HAVE_PRE_INCREMENT
 
#define USE_STORE_PRE_DECREMENT(MODE)   HAVE_PRE_DECREMENT
 
#define EXTRACT_ARGS_IN_RANGE(SIZE, POS, RANGE)
 
#define rtx_alloca(code)    rtx_init ((rtx) alloca (RTX_CODE_SIZE ((code))), (code))
 
#define rtx_alloc_v(c, SZ)   rtx_alloc_stat_v (c MEM_STAT_INFO, SZ)
 
#define const_wide_int_alloc(NWORDS)
 
#define convert_memory_address(to_mode, x)    convert_memory_address_addr_space ((to_mode), (x), ADDR_SPACE_GENERIC)
 
#define MAX_SAVED_CONST_INT   64
 
#define const0_rtx   (const_int_rtx[MAX_SAVED_CONST_INT])
 
#define const1_rtx   (const_int_rtx[MAX_SAVED_CONST_INT+1])
 
#define const2_rtx   (const_int_rtx[MAX_SAVED_CONST_INT+2])
 
#define constm1_rtx   (const_int_rtx[MAX_SAVED_CONST_INT-1])
 
#define CONST0_RTX(MODE)   (const_tiny_rtx[0][(int) (MODE)])
 
#define CONST1_RTX(MODE)   (const_tiny_rtx[1][(int) (MODE)])
 
#define CONST2_RTX(MODE)   (const_tiny_rtx[2][(int) (MODE)])
 
#define CONSTM1_RTX(MODE)   (const_tiny_rtx[3][(int) (MODE)])
 
#define HARD_FRAME_POINTER_REGNUM   FRAME_POINTER_REGNUM
 
#define HARD_FRAME_POINTER_IS_FRAME_POINTER    (HARD_FRAME_POINTER_REGNUM == FRAME_POINTER_REGNUM)
 
#define HARD_FRAME_POINTER_IS_ARG_POINTER    (HARD_FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM)
 
#define this_target_rtl   (&default_target_rtl)
 
#define global_rtl    (this_target_rtl->x_global_rtl)
 
#define pic_offset_table_rtx    (this_target_rtl->x_pic_offset_table_rtx)
 
#define return_address_pointer_rtx    (this_target_rtl->x_return_address_pointer_rtx)
 
#define top_of_stack    (this_target_rtl->x_top_of_stack)
 
#define mode_mem_attrs    (this_target_rtl->x_mode_mem_attrs)
 
#define stack_pointer_rtx   (global_rtl[GR_STACK_POINTER])
 
#define frame_pointer_rtx   (global_rtl[GR_FRAME_POINTER])
 
#define hard_frame_pointer_rtx   (global_rtl[GR_HARD_FRAME_POINTER])
 
#define arg_pointer_rtx   (global_rtl[GR_ARG_POINTER])
 
#define gen_rtx_ASM_INPUT(MODE, ARG0)    gen_rtx_fmt_si (ASM_INPUT, (MODE), (ARG0), 0)
 
#define gen_rtx_ASM_INPUT_loc(MODE, ARG0, LOC)    gen_rtx_fmt_si (ASM_INPUT, (MODE), (ARG0), (LOC))
 
#define alloca_raw_REG(mode, regno)    init_raw_REG (rtx_alloca (REG), (mode), (regno))
 
#define GEN_INT(N)   gen_rtx_CONST_INT (VOIDmode, (N))
 
#define FIRST_VIRTUAL_REGISTER   (FIRST_PSEUDO_REGISTER)
 
#define virtual_incoming_args_rtx   (global_rtl[GR_VIRTUAL_INCOMING_ARGS])
 
#define VIRTUAL_INCOMING_ARGS_REGNUM   (FIRST_VIRTUAL_REGISTER)
 
#define virtual_stack_vars_rtx   (global_rtl[GR_VIRTUAL_STACK_ARGS])
 
#define VIRTUAL_STACK_VARS_REGNUM   ((FIRST_VIRTUAL_REGISTER) + 1)
 
#define virtual_stack_dynamic_rtx   (global_rtl[GR_VIRTUAL_STACK_DYNAMIC])
 
#define VIRTUAL_STACK_DYNAMIC_REGNUM   ((FIRST_VIRTUAL_REGISTER) + 2)
 
#define virtual_outgoing_args_rtx   (global_rtl[GR_VIRTUAL_OUTGOING_ARGS])
 
#define VIRTUAL_OUTGOING_ARGS_REGNUM   ((FIRST_VIRTUAL_REGISTER) + 3)
 
#define virtual_cfa_rtx   (global_rtl[GR_VIRTUAL_CFA])
 
#define VIRTUAL_CFA_REGNUM   ((FIRST_VIRTUAL_REGISTER) + 4)
 
#define LAST_VIRTUAL_POINTER_REGISTER   ((FIRST_VIRTUAL_REGISTER) + 4)
 
#define virtual_preferred_stack_boundary_rtx    (global_rtl[GR_VIRTUAL_PREFERRED_STACK_BOUNDARY])
 
#define VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM    ((FIRST_VIRTUAL_REGISTER) + 5)
 
#define LAST_VIRTUAL_REGISTER   ((FIRST_VIRTUAL_REGISTER) + 5)
 
#define REGNO_PTR_FRAME_P(REGNUM)
 
#define INVALID_REGNUM   (~(unsigned int) 0)
 
#define IGNORED_DWARF_REGNUM   (INVALID_REGNUM - 1)
 
#define can_create_pseudo_p()   (!reload_in_progress && !reload_completed)
 
#define gen_lowpart   rtl_hooks.gen_lowpart
 
#define fatal_insn(msgid, insn)    _fatal_insn (msgid, insn, __FILE__, __LINE__, __FUNCTION__)
 
#define fatal_insn_not_found(insn)    _fatal_insn_not_found (insn, __FILE__, __LINE__, __FUNCTION__)
 

Typedefs

typedef std::pair< rtx, machine_mode > rtx_mode_t
 
typedef poly_int< NUM_POLY_INT_COEFFS, generic_wide_int< wide_int_ref_storage< false, false > > > wi::rtx_to_poly_wide_ref
 
typedef bool(* rtx_equal_p_callback_function) (const_rtx *, const_rtx *, rtx *, rtx *)
 
typedef int(* for_each_inc_dec_fn) (rtx mem, rtx op, rtx dest, rtx src, rtx srcoff, void *arg)
 
typedef bool(* hash_rtx_callback_function) (const_rtx, machine_mode, rtx *, machine_mode *)
 

Enumerations

enum  rtx_code : unsigned { LAST_AND_UNUSED_RTX_CODE }
 
enum  rtx_class {
  RTX_COMPARE , RTX_COMM_COMPARE , RTX_BIN_ARITH , RTX_COMM_ARITH ,
  RTX_UNARY , RTX_EXTRA , RTX_MATCH , RTX_INSN ,
  RTX_OBJ , RTX_CONST_OBJ , RTX_TERNARY , RTX_BITFIELD_OPS ,
  RTX_AUTOINC
}
 
enum  reg_note { REG_NOTE_MAX }
 
enum  insn_note { NOTE_INSN_MAX }
 
enum  label_kind { LABEL_NORMAL = 0 , LABEL_STATIC_ENTRY , LABEL_GLOBAL_ENTRY , LABEL_WEAK_ENTRY }
 
enum  global_rtl_index {
  GR_STACK_POINTER , GR_FRAME_POINTER , GR_ARG_POINTER = GR_FRAME_POINTER , GR_HARD_FRAME_POINTER = GR_FRAME_POINTER ,
  GR_VIRTUAL_INCOMING_ARGS , GR_VIRTUAL_STACK_ARGS , GR_VIRTUAL_STACK_DYNAMIC , GR_VIRTUAL_OUTGOING_ARGS ,
  GR_VIRTUAL_CFA , GR_VIRTUAL_PREFERRED_STACK_BOUNDARY , GR_MAX
}
 
enum  memop_ret { RETURN_BEGIN , RETURN_END , RETURN_END_MINUS_ONE }
 
enum  libcall_type {
  LCT_NORMAL = 0 , LCT_CONST = 1 , LCT_PURE = 2 , LCT_NORETURN = 3 ,
  LCT_THROW = 4 , LCT_RETURNS_TWICE = 5
}
 

Functions

int INSN_UID (const_rtx insn)
 
rtx_insnPREV_INSN (const rtx_insn *insn)
 
rtxSET_PREV_INSN (rtx_insn *insn)
 
rtx_insnNEXT_INSN (const rtx_insn *insn)
 
rtxSET_NEXT_INSN (rtx_insn *insn)
 
basic_block BLOCK_FOR_INSN (const_rtx insn)
 
void set_block_for_insn (rtx_insn *insn, basic_block bb)
 
rtx PATTERN (const_rtx insn)
 
unsigned int INSN_LOCATION (const rtx_insn *insn)
 
unsigned int & INSN_LOCATION (rtx_insn *insn)
 
bool INSN_HAS_LOCATION (const rtx_insn *insn)
 
rtx_jump_table_datajump_table_for_label (const rtx_code_label *label)
 
rtx_insnJUMP_LABEL_AS_INSN (const rtx_insn *insn)
 
rtx_insnlabel_ref_label (const_rtx ref)
 
void set_label_ref_label (rtx ref, rtx_insn *label)
 
unsigned int rhs_regno (const_rtx x)
 
unsigned int END_REGNO (const_rtx x)
 
void set_regno_raw (rtx x, unsigned int regno, unsigned int nregs)
 
unsigned int const_vector_encoded_nelts (const_rtx x)
 
bool always_void_p (enum rtx_code code)
 
void init_costs_to_max (struct full_rtx_costs *c)
 
void init_costs_to_zero (struct full_rtx_costs *c)
 
bool costs_lt_p (struct full_rtx_costs *a, struct full_rtx_costs *b, bool speed)
 
void costs_add_n_insns (struct full_rtx_costs *c, int n)
 
subreg_shape shape_of_subreg (const_rtx x)
 
hwi_with_prec wi::shwi (HOST_WIDE_INT, machine_mode mode)
 
wide_int wi::min_value (machine_mode, signop)
 
wide_int wi::max_value (machine_mode, signop)
 
rtx_to_poly_wide_ref wi::to_poly_wide (const_rtx, machine_mode)
 
wi::rtx_to_poly_wide_ref const_poly_int_value (const_rtx x)
 
bool poly_int_rtx_p (const_rtx x)
 
poly_int64 rtx_to_poly_int64 (const_rtx x)
 
bool poly_int_rtx_p (const_rtx x, poly_int64 *res)
 
void init_rtlanal (void)
 
int rtx_cost (rtx, machine_mode, enum rtx_code, int, bool)
 
int address_cost (rtx, machine_mode, addr_space_t, bool)
 
void get_full_rtx_cost (rtx, machine_mode, enum rtx_code, int, struct full_rtx_costs *)
 
bool native_encode_rtx (machine_mode, rtx, vec< target_unit > &, unsigned int, unsigned int)
 
rtx native_decode_rtx (machine_mode, const vec< target_unit > &, unsigned int)
 
rtx native_decode_vector_rtx (machine_mode, const vec< target_unit > &, unsigned int, unsigned int, unsigned int)
 
poly_uint64 subreg_lsb (const_rtx)
 
poly_uint64 subreg_size_lsb (poly_uint64, poly_uint64, poly_uint64)
 
poly_uint64 subreg_size_offset_from_lsb (poly_uint64, poly_uint64, poly_uint64)
 
bool read_modify_subreg_p (const_rtx)
 
poly_uint64 subreg_lsb_1 (machine_mode outer_mode, machine_mode inner_mode, poly_uint64 subreg_byte)
 
poly_uint64 subreg_offset_from_lsb (machine_mode outer_mode, machine_mode inner_mode, poly_uint64 lsb_shift)
 
unsigned int subreg_regno_offset (unsigned int, machine_mode, poly_uint64, machine_mode)
 
bool subreg_offset_representable_p (unsigned int, machine_mode, poly_uint64, machine_mode)
 
unsigned int subreg_regno (const_rtx)
 
int simplify_subreg_regno (unsigned int, machine_mode, poly_uint64, machine_mode)
 
int lowpart_subreg_regno (unsigned int, machine_mode, machine_mode)
 
unsigned int subreg_nregs (const_rtx)
 
unsigned int subreg_nregs_with_regno (unsigned int, const_rtx)
 
unsigned HOST_WIDE_INT nonzero_bits (const_rtx, machine_mode)
 
unsigned int num_sign_bit_copies (const_rtx, machine_mode)
 
bool constant_pool_constant_p (rtx)
 
bool truncated_to_mode (machine_mode, const_rtx)
 
int low_bitmask_len (machine_mode, unsigned HOST_WIDE_INT)
 
void split_double (rtx, rtx *, rtx *)
 
rtxstrip_address_mutations (rtx *, enum rtx_code *=0)
 
void decompose_address (struct address_info *, rtx *, machine_mode, addr_space_t, enum rtx_code)
 
void decompose_lea_address (struct address_info *, rtx *)
 
void decompose_mem_address (struct address_info *, rtx)
 
void update_address (struct address_info *)
 
HOST_WIDE_INT get_index_scale (const struct address_info *)
 
enum rtx_code get_index_code (const struct address_info *)
 
int set_rtx_cost (rtx x, bool speed_p)
 
void get_full_set_rtx_cost (rtx x, struct full_rtx_costs *c)
 
int set_src_cost (rtx x, machine_mode mode, bool speed_p)
 
void get_full_set_src_cost (rtx x, machine_mode mode, struct full_rtx_costs *c)
 
HOST_WIDE_INT trunc_int_for_mode (HOST_WIDE_INT, machine_mode)
 
poly_int64 trunc_int_for_mode (poly_int64, machine_mode)
 
rtx plus_constant (machine_mode, rtx, poly_int64, bool=false)
 
HOST_WIDE_INT get_stack_check_protect (void)
 
rtx rtx_alloc (RTX_CODE CXX_MEM_STAT_INFO)
 
rtx rtx_init (rtx rt, RTX_CODE code)
 
rtx rtx_alloc_stat_v (RTX_CODE MEM_STAT_DECL, int)
 
rtvec rtvec_alloc (size_t)
 
rtvec shallow_copy_rtvec (rtvec)
 
bool shared_const_p (const_rtx)
 
rtx copy_rtx (rtx)
 
enum rtx_code classify_insn (rtx)
 
void dump_rtx_statistics (void)
 
rtx copy_rtx_if_shared (rtx)
 
unsigned int rtx_size (const_rtx)
 
rtx shallow_copy_rtx (const_rtx CXX_MEM_STAT_INFO)
 
bool rtx_equal_p (const_rtx, const_rtx, rtx_equal_p_callback_function=NULL)
 
bool rtvec_all_equal_p (const_rtvec)
 
bool rtvec_series_p (rtvec, int)
 
bool const_vec_duplicate_p (const_rtx x)
 
template<typename T >
bool const_vec_duplicate_p (T x, T *elt)
 
template<typename T >
bool vec_duplicate_p (T x, T *elt)
 
template<typename T >
T unwrap_const_vec_duplicate (T x)
 
wide_int const_vector_int_elt (const_rtx, unsigned int)
 
rtx const_vector_elt (const_rtx, unsigned int)
 
bool const_vec_series_p_1 (const_rtx, rtx *, rtx *)
 
bool const_vec_series_p (const_rtx x, rtx *base_out, rtx *step_out)
 
bool vec_series_p (const_rtx x, rtx *base_out, rtx *step_out)
 
bool same_vector_encodings_p (const_rtx x, const_rtx y)
 
scalar_int_mode subreg_unpromoted_mode (rtx x)
 
scalar_int_mode subreg_promoted_mode (rtx x)
 
rtvec gen_rtvec_v (int, rtx *)
 
rtvec gen_rtvec_v (int, rtx_insn **)
 
rtx gen_reg_rtx (machine_mode)
 
rtx gen_rtx_REG_offset (rtx, machine_mode, unsigned int, poly_int64)
 
rtx gen_reg_rtx_offset (rtx, machine_mode, int)
 
rtx gen_reg_rtx_and_attrs (rtx)
 
rtx_code_labelgen_label_rtx (void)
 
rtx gen_lowpart_common (machine_mode, rtx)
 
rtx gen_lowpart_if_possible (machine_mode, rtx)
 
rtx gen_highpart (machine_mode, rtx)
 
rtx gen_highpart_mode (machine_mode, machine_mode, rtx)
 
rtx operand_subword (rtx, poly_uint64, int, machine_mode)
 
rtx operand_subword_force (rtx, poly_uint64, machine_mode)
 
bool subreg_lowpart_p (const_rtx)
 
poly_uint64 subreg_size_lowpart_offset (poly_uint64, poly_uint64)
 
bool partial_subreg_p (machine_mode outermode, machine_mode innermode)
 
bool partial_subreg_p (const_rtx x)
 
bool paradoxical_subreg_p (machine_mode outermode, machine_mode innermode)
 
bool paradoxical_subreg_p (const_rtx x)
 
poly_uint64 subreg_lowpart_offset (machine_mode outermode, machine_mode innermode)
 
machine_mode narrower_subreg_mode (machine_mode outermode, machine_mode innermode)
 
machine_mode wider_subreg_mode (machine_mode outermode, machine_mode innermode)
 
machine_mode wider_subreg_mode (const_rtx x)
 
poly_uint64 subreg_size_highpart_offset (poly_uint64, poly_uint64)
 
poly_uint64 subreg_highpart_offset (machine_mode outermode, machine_mode innermode)
 
poly_int64 byte_lowpart_offset (machine_mode, machine_mode)
 
poly_int64 subreg_memory_offset (machine_mode, machine_mode, poly_uint64)
 
poly_int64 subreg_memory_offset (const_rtx)
 
rtx make_safe_from (rtx, rtx)
 
rtx convert_memory_address_addr_space_1 (scalar_int_mode, rtx, addr_space_t, bool, bool)
 
rtx convert_memory_address_addr_space (scalar_int_mode, rtx, addr_space_t)
 
const charget_insn_name (int)
 
rtx_insnget_last_insn_anywhere (void)
 
rtx_insnget_first_nonnote_insn (void)
 
rtx_insnget_last_nonnote_insn (void)
 
void start_sequence (void)
 
void push_to_sequence (rtx_insn *)
 
void push_to_sequence2 (rtx_insn *, rtx_insn *)
 
void end_sequence (void)
 
double_int rtx_to_double_int (const_rtx)
 
void cwi_output_hex (FILE *, const_rtx)
 
rtx immed_double_const (HOST_WIDE_INT, HOST_WIDE_INT, machine_mode)
 
rtx immed_wide_int_const (const poly_wide_int_ref &, machine_mode)
 
rtx force_const_mem (machine_mode, rtx)
 
rtx get_pool_constant (const_rtx)
 
rtx get_pool_constant_mark (rtx, bool *)
 
fixed_size_mode get_pool_mode (const_rtx)
 
rtx simplify_subtraction (rtx)
 
void decide_function_section (tree)
 
rtx_insnemit_insn_before (rtx, rtx_insn *)
 
rtx_insnemit_insn_before_noloc (rtx, rtx_insn *, basic_block)
 
rtx_insnemit_insn_before_setloc (rtx, rtx_insn *, location_t)
 
rtx_jump_insnemit_jump_insn_before (rtx, rtx_insn *)
 
rtx_jump_insnemit_jump_insn_before_noloc (rtx, rtx_insn *)
 
rtx_jump_insnemit_jump_insn_before_setloc (rtx, rtx_insn *, location_t)
 
rtx_insnemit_call_insn_before (rtx, rtx_insn *)
 
rtx_insnemit_call_insn_before_noloc (rtx, rtx_insn *)
 
rtx_insnemit_call_insn_before_setloc (rtx, rtx_insn *, location_t)
 
rtx_insnemit_debug_insn_before (rtx, rtx_insn *)
 
rtx_insnemit_debug_insn_before_noloc (rtx, rtx_insn *)
 
rtx_insnemit_debug_insn_before_setloc (rtx, rtx_insn *, location_t)
 
rtx_barrieremit_barrier_before (rtx_insn *)
 
rtx_code_labelemit_label_before (rtx_code_label *, rtx_insn *)
 
rtx_noteemit_note_before (enum insn_note, rtx_insn *)
 
rtx_insnemit_insn_after (rtx, rtx_insn *)
 
rtx_insnemit_insn_after_noloc (rtx, rtx_insn *, basic_block)
 
rtx_insnemit_insn_after_setloc (rtx, rtx_insn *, location_t)
 
rtx_jump_insnemit_jump_insn_after (rtx, rtx_insn *)
 
rtx_jump_insnemit_jump_insn_after_noloc (rtx, rtx_insn *)
 
rtx_jump_insnemit_jump_insn_after_setloc (rtx, rtx_insn *, location_t)
 
rtx_insnemit_call_insn_after (rtx, rtx_insn *)
 
rtx_insnemit_call_insn_after_noloc (rtx, rtx_insn *)
 
rtx_insnemit_call_insn_after_setloc (rtx, rtx_insn *, location_t)
 
rtx_insnemit_debug_insn_after (rtx, rtx_insn *)
 
rtx_insnemit_debug_insn_after_noloc (rtx, rtx_insn *)
 
rtx_insnemit_debug_insn_after_setloc (rtx, rtx_insn *, location_t)
 
rtx_barrieremit_barrier_after (rtx_insn *)
 
rtx_insnemit_label_after (rtx_insn *, rtx_insn *)
 
rtx_noteemit_note_after (enum insn_note, rtx_insn *)
 
rtx_insnemit_insn (rtx)
 
rtx_insnemit_debug_insn (rtx)
 
rtx_insnemit_jump_insn (rtx)
 
rtx_insnemit_likely_jump_insn (rtx)
 
rtx_insnemit_unlikely_jump_insn (rtx)
 
rtx_insnemit_call_insn (rtx)
 
rtx_code_labelemit_label (rtx)
 
rtx_jump_table_dataemit_jump_table_data (rtx)
 
rtx_barrieremit_barrier (void)
 
rtx_noteemit_note (enum insn_note)
 
rtx_noteemit_note_copy (rtx_note *)
 
rtx_insngen_clobber (rtx)
 
rtx_insnemit_clobber (rtx)
 
rtx_insngen_use (rtx)
 
rtx_insnemit_use (rtx)
 
rtx_insnmake_insn_raw (rtx)
 
void add_function_usage_to (rtx, rtx)
 
rtx_call_insnlast_call_insn (void)
 
rtx_insnprevious_insn (rtx_insn *)
 
rtx_insnnext_insn (rtx_insn *)
 
rtx_insnprev_nonnote_insn (rtx_insn *)
 
rtx_insnnext_nonnote_insn (rtx_insn *)
 
rtx_insnprev_nondebug_insn (rtx_insn *)
 
rtx_insnnext_nondebug_insn (rtx_insn *)
 
rtx_insnprev_nonnote_nondebug_insn (rtx_insn *)
 
rtx_insnprev_nonnote_nondebug_insn_bb (rtx_insn *)
 
rtx_insnnext_nonnote_nondebug_insn (rtx_insn *)
 
rtx_insnnext_nonnote_nondebug_insn_bb (rtx_insn *)
 
rtx_insnprev_real_insn (rtx_insn *)
 
rtx_insnnext_real_insn (rtx_insn *)
 
rtx_insnprev_real_nondebug_insn (rtx_insn *)
 
rtx_insnnext_real_nondebug_insn (rtx)
 
rtx_insnprev_active_insn (rtx_insn *)
 
rtx_insnnext_active_insn (rtx_insn *)
 
bool active_insn_p (const rtx_insn *)
 
int insn_line (const rtx_insn *)
 
const charinsn_file (const rtx_insn *)
 
tree insn_scope (const rtx_insn *)
 
expanded_location insn_location (const rtx_insn *)
 
int insn_discriminator (const rtx_insn *)
 
enum rtx_code reverse_condition (enum rtx_code)
 
enum rtx_code reverse_condition_maybe_unordered (enum rtx_code)
 
enum rtx_code swap_condition (enum rtx_code)
 
enum rtx_code unsigned_condition (enum rtx_code)
 
enum rtx_code signed_condition (enum rtx_code)
 
void mark_jump_label (rtx, rtx_insn *, int)
 
bool unsigned_condition_p (enum rtx_code code)
 
rtx_insndelete_related_insns (rtx)
 
rtxfind_constant_term_loc (rtx *)
 
rtx_insntry_split (rtx, rtx_insn *, int)
 
rtx_insnsplit_insns (rtx, rtx_insn *)
 
rtx simplify_unary_operation (rtx_code code, machine_mode mode, rtx op, machine_mode op_mode)
 
rtx simplify_binary_operation (rtx_code code, machine_mode mode, rtx op0, rtx op1)
 
rtx simplify_ternary_operation (rtx_code code, machine_mode mode, machine_mode op0_mode, rtx op0, rtx op1, rtx op2)
 
rtx simplify_relational_operation (rtx_code code, machine_mode mode, machine_mode op_mode, rtx op0, rtx op1)
 
rtx simplify_subreg (machine_mode outermode, rtx op, machine_mode innermode, poly_uint64 byte)
 
rtx simplify_gen_unary (rtx_code code, machine_mode mode, rtx op, machine_mode op_mode)
 
rtx simplify_gen_binary (rtx_code code, machine_mode mode, rtx op0, rtx op1)
 
rtx simplify_gen_ternary (rtx_code code, machine_mode mode, machine_mode op0_mode, rtx op0, rtx op1, rtx op2)
 
rtx simplify_gen_relational (rtx_code code, machine_mode mode, machine_mode op_mode, rtx op0, rtx op1)
 
rtx simplify_gen_subreg (machine_mode outermode, rtx op, machine_mode innermode, poly_uint64 byte)
 
rtx simplify_gen_vec_select (rtx op, unsigned int index)
 
rtx lowpart_subreg (machine_mode outermode, rtx op, machine_mode innermode)
 
rtx simplify_const_unary_operation (enum rtx_code, machine_mode, rtx, machine_mode)
 
rtx simplify_const_binary_operation (enum rtx_code, machine_mode, rtx, rtx)
 
rtx simplify_const_relational_operation (enum rtx_code, machine_mode, rtx, rtx)
 
rtx simplify_replace_fn_rtx (rtx, const_rtx, rtx(*fn)(rtx, const_rtx, void *), void *)
 
rtx simplify_replace_rtx (rtx, const_rtx, rtx)
 
rtx simplify_rtx (const_rtx)
 
rtx avoid_constant_pool_reference (rtx)
 
rtx delegitimize_mem_from_attrs (rtx)
 
bool mode_signbit_p (machine_mode, const_rtx)
 
bool val_signbit_p (machine_mode, unsigned HOST_WIDE_INT)
 
bool val_signbit_known_set_p (machine_mode, unsigned HOST_WIDE_INT)
 
bool val_signbit_known_clear_p (machine_mode, unsigned HOST_WIDE_INT)
 
bool reverse_rotate_by_imm_p (machine_mode, unsigned int, rtx)
 
machine_mode choose_hard_reg_mode (unsigned int, unsigned int, const predefined_function_abi *)
 
const HARD_REG_SETsimplifiable_subregs (const subreg_shape &)
 
rtx set_for_reg_notes (rtx)
 
rtx set_unique_reg_note (rtx, enum reg_note, rtx)
 
rtx set_dst_reg_note (rtx, enum reg_note, rtx, rtx)
 
void set_insn_deleted (rtx_insn *)
 
rtx single_set_2 (const rtx_insn *, const_rtx)
 
rtx simple_regno_set (rtx, unsigned int)
 
bool contains_symbol_ref_p (const_rtx)
 
bool contains_symbolic_reference_p (const_rtx)
 
bool contains_constant_pool_address_p (const_rtx)
 
void add_auto_inc_notes (rtx_insn *, rtx)
 
rtx single_set (const rtx_insn *insn)
 
scalar_int_mode get_address_mode (rtx mem)
 
bool rtx_addr_can_trap_p (const_rtx)
 
bool nonzero_address_p (const_rtx)
 
bool rtx_unstable_p (const_rtx)
 
bool rtx_varies_p (const_rtx, bool)
 
bool rtx_addr_varies_p (const_rtx, bool)
 
rtx get_call_rtx_from (const rtx_insn *)
 
tree get_call_fndecl (const rtx_insn *)
 
HOST_WIDE_INT get_integer_term (const_rtx)
 
rtx get_related_value (const_rtx)
 
bool offset_within_block_p (const_rtx, HOST_WIDE_INT)
 
void split_const (rtx, rtx *, rtx *)
 
rtx strip_offset (rtx, poly_int64 *)
 
poly_int64 get_args_size (const_rtx)
 
bool unsigned_reg_p (rtx)
 
bool reg_mentioned_p (const_rtx, const_rtx)
 
int count_occurrences (const_rtx, const_rtx, int)
 
bool reg_referenced_p (const_rtx, const_rtx)
 
bool reg_used_between_p (const_rtx, const rtx_insn *, const rtx_insn *)
 
bool reg_set_between_p (const_rtx, const rtx_insn *, const rtx_insn *)
 
int commutative_operand_precedence (rtx)
 
bool swap_commutative_operands_p (rtx, rtx)
 
bool modified_between_p (const_rtx, const rtx_insn *, const rtx_insn *)
 
bool no_labels_between_p (const rtx_insn *, const rtx_insn *)
 
bool modified_in_p (const_rtx, const_rtx)
 
bool reg_set_p (const_rtx, const_rtx)
 
bool multiple_sets (const_rtx)
 
bool set_noop_p (const_rtx)
 
bool noop_move_p (const rtx_insn *)
 
bool refers_to_regno_p (unsigned int, unsigned int, const_rtx, rtx *)
 
bool reg_overlap_mentioned_p (const_rtx, const_rtx)
 
const_rtx set_of (const_rtx, const_rtx)
 
void record_hard_reg_sets (rtx, const_rtx, void *)
 
void record_hard_reg_uses (rtx *, void *)
 
void find_all_hard_regs (const_rtx, HARD_REG_SET *)
 
void find_all_hard_reg_sets (const rtx_insn *, HARD_REG_SET *, bool)
 
void note_pattern_stores (const_rtx, void(*)(rtx, const_rtx, void *), void *)
 
void note_stores (const rtx_insn *, void(*)(rtx, const_rtx, void *), void *)
 
void note_uses (rtx *, void(*)(rtx *, void *), void *)
 
bool dead_or_set_p (const rtx_insn *, const_rtx)
 
bool dead_or_set_regno_p (const rtx_insn *, unsigned int)
 
rtx find_reg_note (const_rtx, enum reg_note, const_rtx)
 
rtx find_regno_note (const_rtx, enum reg_note, unsigned int)
 
rtx find_reg_equal_equiv_note (const_rtx)
 
rtx find_constant_src (const rtx_insn *)
 
bool find_reg_fusage (const_rtx, enum rtx_code, const_rtx)
 
bool find_regno_fusage (const_rtx, enum rtx_code, unsigned int)
 
rtx alloc_reg_note (enum reg_note, rtx, rtx)
 
void add_reg_note (rtx, enum reg_note, rtx)
 
void add_int_reg_note (rtx_insn *, enum reg_note, int)
 
void add_args_size_note (rtx_insn *, poly_int64)
 
void add_shallow_copy_of_reg_note (rtx_insn *, rtx)
 
rtx duplicate_reg_note (rtx)
 
void remove_note (rtx_insn *, const_rtx)
 
bool remove_reg_equal_equiv_notes (rtx_insn *, bool=false)
 
void remove_reg_equal_equiv_notes_for_regno (unsigned int)
 
bool side_effects_p (const_rtx)
 
bool volatile_refs_p (const_rtx)
 
bool volatile_insn_p (const_rtx)
 
bool may_trap_p_1 (const_rtx, unsigned)
 
bool may_trap_p (const_rtx)
 
bool may_trap_or_fault_p (const_rtx)
 
bool can_throw_internal (const_rtx)
 
bool can_throw_external (const_rtx)
 
bool insn_could_throw_p (const_rtx)
 
bool insn_nothrow_p (const_rtx)
 
bool can_nonlocal_goto (const rtx_insn *)
 
void copy_reg_eh_region_note_forward (rtx, rtx_insn *, rtx)
 
void copy_reg_eh_region_note_backward (rtx, rtx_insn *, rtx)
 
rtx replace_rtx (rtx, rtx, rtx, bool=false)
 
void replace_label (rtx *, rtx, rtx, bool)
 
void replace_label_in_insn (rtx_insn *, rtx_insn *, rtx_insn *, bool)
 
bool rtx_referenced_p (const_rtx, const_rtx)
 
bool tablejump_p (const rtx_insn *, rtx_insn **, rtx_jump_table_data **)
 
rtx tablejump_casesi_pattern (const rtx_insn *insn)
 
bool computed_jump_p (const rtx_insn *)
 
bool tls_referenced_p (const_rtx)
 
bool contains_mem_rtx_p (rtx x)
 
bool register_asm_p (const_rtx)
 
bool refers_to_regno_p (unsigned int regnum, const_rtx x, rtx *loc=NULL)
 
int for_each_inc_dec (rtx, for_each_inc_dec_fn, void *arg)
 
rtx regno_use_in (unsigned int, rtx)
 
bool auto_inc_p (const_rtx)
 
bool in_insn_list_p (const rtx_insn_list *, const rtx_insn *)
 
void remove_node_from_insn_list (const rtx_insn *, rtx_insn_list **)
 
bool loc_mentioned_in_p (rtx *, const_rtx)
 
rtx_insnfind_first_parameter_load (rtx_insn *, rtx_insn *)
 
bool keep_with_call_p (const rtx_insn *)
 
bool label_is_jump_target_p (const_rtx, const rtx_insn *)
 
int pattern_cost (rtx, bool)
 
int insn_cost (rtx_insn *, bool)
 
unsigned seq_cost (const rtx_insn *, bool)
 
rtx canonicalize_condition (rtx_insn *, rtx, int, rtx_insn **, rtx, int, int)
 
rtx get_condition (rtx_insn *, rtx_insn **, int, int)
 
void subreg_get_info (unsigned int, machine_mode, poly_uint64, machine_mode, struct subreg_info *)
 
void free_EXPR_LIST_list (rtx_expr_list **)
 
void free_INSN_LIST_list (rtx_insn_list **)
 
void free_EXPR_LIST_node (rtx)
 
void free_INSN_LIST_node (rtx)
 
rtx_insn_listalloc_INSN_LIST (rtx, rtx)
 
rtx_insn_listcopy_INSN_LIST (rtx_insn_list *)
 
rtx_insn_listconcat_INSN_LIST (rtx_insn_list *, rtx_insn_list *)
 
rtx_expr_listalloc_EXPR_LIST (int, rtx, rtx)
 
void remove_free_INSN_LIST_elem (rtx_insn *, rtx_insn_list **)
 
rtx remove_list_elem (rtx, rtx *)
 
rtx_insnremove_free_INSN_LIST_node (rtx_insn_list **)
 
rtx remove_free_EXPR_LIST_node (rtx_expr_list **)
 
bool resize_reg_info (void)
 
void free_reg_info (void)
 
void init_subregs_of_mode (void)
 
void finish_subregs_of_mode (void)
 
void reginfo_cc_finalize (void)
 
rtx extract_asm_operands (rtx)
 
int asm_noperands (const_rtx)
 
const chardecode_asm_operands (rtx, rtx *, rtx **, const char **, machine_mode *, location_t *)
 
void get_referenced_operands (const char *, bool *, unsigned int)
 
enum reg_class reg_preferred_class (int)
 
enum reg_class reg_alternate_class (int)
 
enum reg_class reg_allocno_class (int)
 
void setup_reg_classes (int, enum reg_class, enum reg_class, enum reg_class)
 
void split_all_insns (void)
 
void split_all_insns_noflow (void)
 
const class mem_attrsget_mem_attrs (const_rtx x)
 
rtx_expr_listgen_rtx_EXPR_LIST (machine_mode, rtx, rtx)
 
rtx_insn_listgen_rtx_INSN_LIST (machine_mode, rtx, rtx)
 
rtx_insngen_rtx_INSN (machine_mode mode, rtx_insn *prev_insn, rtx_insn *next_insn, basic_block bb, rtx pattern, int location, int code, rtx reg_notes)
 
rtx gen_rtx_CONST_INT (machine_mode, HOST_WIDE_INT)
 
rtx gen_rtx_CONST_VECTOR (machine_mode, rtvec)
 
void set_mode_and_regno (rtx, machine_mode, unsigned int)
 
rtx init_raw_REG (rtx, machine_mode, unsigned int)
 
rtx gen_raw_REG (machine_mode, unsigned int)
 
rtx gen_rtx_REG (machine_mode, unsigned int)
 
rtx gen_rtx_SUBREG (machine_mode, rtx, poly_uint64)
 
rtx gen_rtx_MEM (machine_mode, rtx)
 
rtx gen_rtx_VAR_LOCATION (machine_mode, tree, rtx, enum var_init_status)
 
void PUT_MODE (rtx x, machine_mode mode)
 
rtx output_constant_def (tree, int)
 
rtx lookup_constant_def (tree)
 
int rtx_to_tree_code (enum rtx_code)
 
int delete_trivially_dead_insns (rtx_insn *, int)
 
bool exp_equiv_p (const_rtx, const_rtx, int, bool)
 
unsigned hash_rtx (const_rtx, machine_mode, int *, int *, bool, hash_rtx_callback_function=NULL)
 
bool check_for_inc_dec (rtx_insn *insn)
 
bool comparison_dominates_p (enum rtx_code, enum rtx_code)
 
bool jump_to_label_p (const rtx_insn *)
 
bool condjump_p (const rtx_insn *)
 
bool any_condjump_p (const rtx_insn *)
 
bool any_uncondjump_p (const rtx_insn *)
 
rtx pc_set (const rtx_insn *)
 
rtx condjump_label (const rtx_insn *)
 
bool simplejump_p (const rtx_insn *)
 
bool returnjump_p (const rtx_insn *)
 
bool eh_returnjump_p (rtx_insn *)
 
bool onlyjump_p (const rtx_insn *)
 
bool invert_jump_1 (rtx_jump_insn *, rtx)
 
bool invert_jump (rtx_jump_insn *, rtx, int)
 
bool rtx_renumbered_equal_p (const_rtx, const_rtx)
 
int true_regnum (const_rtx)
 
unsigned int reg_or_subregno (const_rtx)
 
bool redirect_jump_1 (rtx_insn *, rtx)
 
void redirect_jump_2 (rtx_jump_insn *, rtx, rtx, int, int)
 
bool redirect_jump (rtx_jump_insn *, rtx, int)
 
void rebuild_jump_labels (rtx_insn *)
 
void rebuild_jump_labels_chain (rtx_insn *)
 
rtx reversed_comparison (const_rtx, machine_mode)
 
enum rtx_code reversed_comparison_code (const_rtx, const rtx_insn *)
 
enum rtx_code reversed_comparison_code_parts (enum rtx_code, const_rtx, const_rtx, const rtx_insn *)
 
void delete_for_peephole (rtx_insn *, rtx_insn *)
 
bool condjump_in_parallel_p (const rtx_insn *)
 
int max_reg_num (void)
 
int max_label_num (void)
 
int get_first_label_num (void)
 
void maybe_set_first_label_num (rtx_code_label *)
 
void delete_insns_since (rtx_insn *)
 
void mark_reg_pointer (rtx, int)
 
void mark_user_reg (rtx)
 
void reset_used_flags (rtx)
 
void set_used_flags (rtx)
 
void reorder_insns (rtx_insn *, rtx_insn *, rtx_insn *)
 
void reorder_insns_nobb (rtx_insn *, rtx_insn *, rtx_insn *)
 
int get_max_insn_count (void)
 
bool in_sequence_p (void)
 
void init_emit (void)
 
void init_emit_regs (void)
 
void init_derived_machine_modes (void)
 
void init_emit_once (void)
 
void push_topmost_sequence (void)
 
void pop_topmost_sequence (void)
 
void set_new_first_and_last_insn (rtx_insn *, rtx_insn *)
 
void unshare_all_rtl (void)
 
void unshare_all_rtl_again (rtx_insn *)
 
void unshare_all_rtl_in_chain (rtx_insn *)
 
void verify_rtl_sharing (void)
 
void add_insn (rtx_insn *)
 
void add_insn_before (rtx_insn *, rtx_insn *, basic_block)
 
void add_insn_after (rtx_insn *, rtx_insn *, basic_block)
 
void remove_insn (rtx_insn *)
 
rtx_insnemit (rtx, bool=true)
 
void emit_insn_at_entry (rtx)
 
rtx gen_lowpart_SUBREG (machine_mode, rtx)
 
rtx gen_const_mem (machine_mode, rtx)
 
rtx gen_frame_mem (machine_mode, rtx)
 
rtx gen_tmp_stack_mem (machine_mode, rtx)
 
bool validate_subreg (machine_mode, machine_mode, const_rtx, poly_uint64)
 
unsigned int extended_count (const_rtx, machine_mode, bool)
 
rtx remove_death (unsigned int, rtx_insn *)
 
rtx make_compound_operation (rtx, enum rtx_code)
 
void schedule_insns (void)
 
void schedule_ebbs (void)
 
void sel_sched_fix_param (const char *param, const char *val)
 
void debug (const rtx_def &ref)
 
void debug (const rtx_def *ptr)
 
void debug_rtx (const_rtx)
 
void debug_rtx_list (const rtx_insn *, int)
 
void debug_rtx_range (const rtx_insn *, const rtx_insn *)
 
const rtx_insndebug_rtx_find (const rtx_insn *, int)
 
void print_mem_expr (FILE *, const_tree)
 
void print_rtl (FILE *, const_rtx)
 
void print_simple_rtl (FILE *, const_rtx)
 
void print_rtl_single (FILE *, const_rtx)
 
void print_rtl_single_with_indent (FILE *, const_rtx, int)
 
void print_inline_rtx (FILE *, const_rtx, int)
 
void expand_null_return (void)
 
void expand_naked_return (void)
 
void emit_jump (rtx)
 
rtx move_by_pieces (rtx, rtx, unsigned HOST_WIDE_INT, unsigned int, memop_ret)
 
poly_int64 find_args_size_adjust (rtx_insn *)
 
poly_int64 fixup_args_size_notes (rtx_insn *, rtx_insn *, poly_int64)
 
void init_expmed (void)
 
void expand_inc (rtx, rtx)
 
void expand_dec (rtx, rtx)
 
void init_lower_subreg (void)
 
bool can_copy_p (machine_mode)
 
bool can_assign_to_reg_without_clobbers_p (rtx, machine_mode)
 
rtx_insnprepare_copy_insn (rtx, rtx)
 
rtx fis_get_condition (rtx_insn *)
 
void mark_elimination (int, int)
 
bool reg_classes_intersect_p (reg_class_t, reg_class_t)
 
bool reg_class_subset_p (reg_class_t, reg_class_t)
 
void globalize_reg (tree, int)
 
void init_reg_modes_target (void)
 
void init_regs (void)
 
void reinit_regs (void)
 
void init_fake_stack_mems (void)
 
void save_register_info (void)
 
void init_reg_sets (void)
 
void regclass (rtx, int)
 
void reg_scan (rtx_insn *, unsigned int)
 
void fix_register (const char *, int, int)
 
const HARD_REG_SETvalid_mode_changes_for_regno (unsigned int)
 
bool function_invariant_p (const_rtx)
 
rtx emit_library_call_value_1 (int, rtx, rtx, enum libcall_type, machine_mode, int, rtx_mode_t *)
 
void emit_library_call (rtx fun, libcall_type fn_type, machine_mode outmode)
 
void emit_library_call (rtx fun, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode)
 
void emit_library_call (rtx fun, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode)
 
void emit_library_call (rtx fun, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode, rtx arg3, machine_mode arg3_mode)
 
void emit_library_call (rtx fun, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode, rtx arg3, machine_mode arg3_mode, rtx arg4, machine_mode arg4_mode)
 
rtx emit_library_call_value (rtx fun, rtx value, libcall_type fn_type, machine_mode outmode)
 
rtx emit_library_call_value (rtx fun, rtx value, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode)
 
rtx emit_library_call_value (rtx fun, rtx value, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode)
 
rtx emit_library_call_value (rtx fun, rtx value, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode, rtx arg3, machine_mode arg3_mode)
 
rtx emit_library_call_value (rtx fun, rtx value, libcall_type fn_type, machine_mode outmode, rtx arg1, machine_mode arg1_mode, rtx arg2, machine_mode arg2_mode, rtx arg3, machine_mode arg3_mode, rtx arg4, machine_mode arg4_mode)
 
void init_varasm_once (void)
 
rtx make_debug_expr_from_rtl (const_rtx)
 
rtx canon_rtx (rtx)
 
rtx get_addr (rtx)
 
bool read_dependence (const_rtx, const_rtx)
 
bool true_dependence (const_rtx, machine_mode, const_rtx)
 
bool canon_true_dependence (const_rtx, machine_mode, rtx, const_rtx, rtx)
 
bool anti_dependence (const_rtx, const_rtx)
 
bool canon_anti_dependence (const_rtx, bool, const_rtx, machine_mode, rtx)
 
bool output_dependence (const_rtx, const_rtx)
 
bool canon_output_dependence (const_rtx, bool, const_rtx, machine_mode, rtx)
 
bool may_alias_p (const_rtx, const_rtx)
 
void init_alias_target (void)
 
void init_alias_analysis (void)
 
void end_alias_analysis (void)
 
void vt_equate_reg_base_value (const_rtx, const_rtx)
 
bool memory_modified_in_insn_p (const_rtx, const_rtx)
 
bool may_be_sp_based_p (rtx)
 
rtx gen_hard_reg_clobber (machine_mode, unsigned int)
 
rtx get_reg_known_value (unsigned int)
 
bool get_reg_known_equiv_p (unsigned int)
 
rtx get_reg_base_value (unsigned int)
 
rtx extract_mem_from_operand (rtx)
 
unsigned int variable_tracking_main (void)
 
void delete_vta_debug_insns (bool)
 
void get_mode_bounds (scalar_int_mode, int, scalar_int_mode, rtx *, rtx *)
 
rtx canon_condition (rtx)
 
void simplify_using_condition (rtx, rtx *, bitmap)
 
void compute_alignments (void)
 
void update_alignments (vec< rtx > &)
 
int asm_str_count (const char *templ)
 
void insn_locations_init (void)
 
void insn_locations_finalize (void)
 
void set_curr_insn_location (location_t)
 
location_t curr_insn_location (void)
 
void set_insn_locations (rtx_insn *, location_t)
 
void _fatal_insn_not_found (const_rtx, const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_COLD
 
void _fatal_insn (const char *, const_rtx, const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_COLD
 
rtx_code load_extend_op (machine_mode mode)
 
rtx strip_offset_and_add (rtx x, poly_int64 *offset)
 
bool word_register_operation_p (const_rtx x)
 
void gt_ggc_mx (rtx &)
 
void gt_pch_nx (rtx &)
 
void gt_pch_nx (rtx &, gt_pointer_operator, void *)
 

Variables

const unsigned char rtx_length [NUM_RTX_CODE]
 
const char *const rtx_name [NUM_RTX_CODE]
 
const char *const rtx_format [NUM_RTX_CODE]
 
enum rtx_class rtx_class [NUM_RTX_CODE]
 
const unsigned char rtx_code_size [NUM_RTX_CODE]
 
const unsigned char rtx_next [NUM_RTX_CODE]
 
const char *const reg_note_name []
 
const char *const note_insn_name [NOTE_INSN_MAX]
 
const int SRP_POINTER = -1
 
const int SRP_SIGNED = 0
 
const int SRP_UNSIGNED = 1
 
const int SRP_SIGNED_AND_UNSIGNED = 2
 
int generating_concat_p
 
int currently_expanding_to_rtl
 
location_t prologue_location
 
location_t epilogue_location
 
rtx const_int_rtx [MAX_SAVED_CONST_INT *2+1]
 
rtx const_true_rtx
 
rtx const_tiny_rtx [4][(int) MAX_MACHINE_MODE]
 
rtx pc_rtx
 
rtx ret_rtx
 
rtx simple_return_rtx
 
rtx_insninvalid_insn_rtx
 
struct target_rtl default_target_rtl
 
int reload_completed
 
int epilogue_completed
 
int reload_in_progress
 
bool ira_in_progress
 
bool lra_in_progress
 
int cse_not_expected
 
const charprint_rtx_head
 
HARD_REG_SET eliminable_regset
 
rtx stack_limit_rtx
 
struct rtl_hooks rtl_hooks
 
const struct rtl_hooks general_rtl_hooks
 
tree global_regs_decl [FIRST_PSEUDO_REGISTER]
 

Macro Definition Documentation

◆ ADDR_DIFF_VEC_FLAGS

#define ADDR_DIFF_VEC_FLAGS ( RTX)    X0ADVFLAGS (RTX, 4)
In an ADDR_DIFF_VEC, the flags for RTX for use by branch shortening.
See the comments for ADDR_DIFF_VEC in rtl.def.   

Referenced by shorten_branches().

◆ alloca_raw_REG

#define alloca_raw_REG ( mode,
regno )    init_raw_REG (rtx_alloca (REG), (mode), (regno))

◆ ANY_RETURN_P

◆ arg_pointer_rtx

◆ ARITHMETIC_P

#define ARITHMETIC_P ( X)
Value:
T * ggc_alloc(ALONE_CXX_MEM_STAT_INFO)
Definition ggc.h:184
#define GET_RTX_CLASS(CODE)
Definition rtl.h:118
#define RTX_ARITHMETIC_MASK
Definition rtl.h:100
#define RTX_ARITHMETIC_RESULT
Definition rtl.h:101
#define GET_CODE(RTX)
Definition rtl.h:725
1 if X is an arithmetic operator.   

Referenced by distribute_and_simplify_rtx(), force_operand(), get_last_value_validate(), noce_can_force_operand(), nonzero_bits_binary_arith_p(), num_sign_bit_copies_binary_arith_p(), record_value_for_reg(), and update_table_tick().

◆ ASM_INPUT_SOURCE_LOCATION

#define ASM_INPUT_SOURCE_LOCATION ( RTX)    XCUINT (RTX, 1, ASM_INPUT)

◆ ASM_OPERANDS_INPUT

◆ ASM_OPERANDS_INPUT_CONSTRAINT

#define ASM_OPERANDS_INPUT_CONSTRAINT ( RTX,
N )    XSTR (XCVECEXP (RTX, 4, N, ASM_OPERANDS), 0)

◆ ASM_OPERANDS_INPUT_CONSTRAINT_EXP

#define ASM_OPERANDS_INPUT_CONSTRAINT_EXP ( RTX,
N )    XCVECEXP (RTX, 4, N, ASM_OPERANDS)

Referenced by expand_asm_stmt().

◆ ASM_OPERANDS_INPUT_CONSTRAINT_VEC

#define ASM_OPERANDS_INPUT_CONSTRAINT_VEC ( RTX)    XCVEC (RTX, 4, ASM_OPERANDS)

◆ ASM_OPERANDS_INPUT_LENGTH

◆ ASM_OPERANDS_INPUT_MODE

#define ASM_OPERANDS_INPUT_MODE ( RTX,
N )    GET_MODE (XCVECEXP (RTX, 4, N, ASM_OPERANDS))

Referenced by decode_asm_operands().

◆ ASM_OPERANDS_INPUT_VEC

◆ ASM_OPERANDS_LABEL

◆ ASM_OPERANDS_LABEL_LENGTH

◆ ASM_OPERANDS_LABEL_VEC

#define ASM_OPERANDS_LABEL_VEC ( RTX)    XCVEC (RTX, 5, ASM_OPERANDS)

◆ ASM_OPERANDS_OUTPUT_CONSTRAINT

◆ ASM_OPERANDS_OUTPUT_IDX

#define ASM_OPERANDS_OUTPUT_IDX ( RTX)    XCINT (RTX, 2, ASM_OPERANDS)

◆ ASM_OPERANDS_SOURCE_LOCATION

#define ASM_OPERANDS_SOURCE_LOCATION ( RTX)    XCUINT (RTX, 6, ASM_OPERANDS)

◆ ASM_OPERANDS_TEMPLATE

#define ASM_OPERANDS_TEMPLATE ( RTX)    XCSTR (RTX, 0, ASM_OPERANDS)
Access various components of an ASM_OPERANDS rtx.   

Referenced by decode_asm_operands(), exp_equiv_p(), expand_asm_stmt(), hash_rtx(), and instantiate_virtual_regs_in_insn().

◆ AUTO_INC_DEC

◆ BARRIER_P

◆ BINARY_P

◆ BLOCK_SYMBOL_CHECK

#define BLOCK_SYMBOL_CHECK ( RTX)    (&(RTX)->u.block_sym)

◆ CALL_INSN_FUNCTION_USAGE

#define CALL_INSN_FUNCTION_USAGE ( INSN)    XEXP(INSN, 7)
This field is only present on CALL_INSNs.  It holds a chain of EXPR_LIST of
USE, CLOBBER and SET expressions.
  USE expressions list the registers filled with arguments that
are passed to the function.
  CLOBBER expressions document the registers explicitly clobbered
by this CALL_INSN.
  SET expressions say that the return value of the call (the SET_DEST)
is equivalent to a value available before the call (the SET_SRC).
This kind of SET is used when the return value is predictable in
advance.  It is purely an optimisation hint; unlike USEs and CLOBBERs,
it does not affect register liveness.

  Pseudo registers cannot be mentioned in this list.   

Referenced by add_function_usage_to(), build_def_use(), canonicalize_insn(), copyprop_hardreg_forward_1(), count_reg_usage(), cse_insn(), cselib_process_insn(), delete_output_reload(), df_get_call_refs(), emit_call_1(), emit_copy_of_insn_after(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_equiv_reg(), find_first_parameter_load(), find_reg_fusage(), find_regno_fusage(), get_call_args(), insert_one_insn(), instantiate_virtual_regs(), invalidate_from_sets_and_clobbers(), lra_set_insn_recog_data(), lra_update_insn_regno_info(), make_call_insn_raw(), mark_referenced_resources(), mark_set_resources(), note_stores(), old_insns_match_p(), peep2_attempt(), prepare_call_arguments(), reload(), reload_combine(), reset_insn_used_flags(), scan_insn(), spill_pseudos(), try_combine(), try_split(), rtx_properties::try_to_add_insn(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), and verify_insn_sharing().

◆ CALL_P

#define CALL_P ( X)    (GET_CODE (X) == CALL_INSN)
Predicate yielding nonzero iff X is a call insn.   

Referenced by active_insn_p(), add_function_usage_to(), add_with_sets(), asan_clear_shadow(), block_jumps_and_fallthru(), build_def_use(), calculate_gen_cands(), call_from_call_insn(), can_combine_p(), can_delete_call(), can_move_insns_across(), can_nonlocal_goto(), canonicalize_insn(), cheap_bb_rtx_cost_p(), collect_fn_hard_reg_usage(), combine_reload_insn(), combine_stack_adjustments_for_block(), compute_hash_table_work(), cond_exec_process_insns(), contains_call_div_mod(), copyprop_hardreg_forward_1(), create_trace_edges(), cse_insn(), cselib_process_insn(), curr_insn_transform(), dead_or_set_regno_p(), decrease_live_ranges_number(), default_invalid_within_doloop(), deletable_insn_p(), delete_output_reload(), delete_prior_computation(), df_insn_refs_collect(), df_note_bb_compute(), df_scan_start_dump(), df_update_entry_exit_and_calls(), distribute_links(), distribute_notes(), do_remat(), emit_libcall_block_1(), emit_library_call_value_1(), expand_builtin_apply(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_call(), expand_call_stmt(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_function_end(), expand_gimple_tailcall(), fill_simple_delay_slots(), final_scan_insn_1(), find_active_insn_after(), find_active_insn_before(), find_all_hard_reg_sets(), find_args_size_adjust(), find_call_stack_args(), find_equiv_reg(), find_exits(), find_first_parameter_load(), find_invariants_bb(), find_reg_fusage(), find_regno_fusage(), find_reloads(), finish_eh_generation(), fixup_abnormal_edges(), fixup_args_size_notes(), force_move_args_size_note(), if_test_bypass_p(), inherit_in_ebb(), insert_insn_end_basic_block(), insert_one_insn(), insert_prologue_epilogue_for_components(), insn_callee_abi(), insn_could_throw_p(), instantiate_virtual_regs(), invalidate_from_sets_and_clobbers(), last_call_insn(), leaf_function_p(), load_killed_in_block_p(), load_killed_in_block_p(), lra_set_insn_recog_data(), lra_update_insn_regno_info(), mark_insn(), mark_target_live_regs(), mark_transaction_restart_calls(), memory_modified_in_insn_p(), memref_used_between_p(), merge_if_block(), need_fake_edge_p(), next_insn_no_annul(), no_conflict_move_test(), note_stores(), old_insns_match_p(), operand_to_remat(), outgoing_edges_match(), peep2_attempt(), rtx_writer::print_rtx_operand_code_e(), process_bb_lives(), process_bb_node_lives(), prune_expressions(), purge_dead_edges(), function_reader::read_rtx_operand(), record_dead_and_set_regs(), record_last_mem_set_info_common(), record_opr_changes(), record_out_operands(), redundant_insn(), reg_set_p(), reg_used_between_p(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), reload(), reload_as_needed(), reload_combine(), reload_cse_move2add_invalidate(), reload_cse_simplify(), requires_stack_frame_p(), reset_insn_used_flags(), rest_of_clean_state(), rtl_block_ends_with_call_p(), rtl_flow_call_edges_add(), rtl_make_eh_edge(), rtl_verify_edges(), scan_insn(), set_bb_regs(), set_nothrow_function_flags(), setup_save_areas(), simplify_using_initial_values(), sjlj_mark_call_sites(), spill_pseudos(), split_live_ranges_for_shrink_wrap(), store_killed_in_insn(), is_a_helper< T >::test(), is_a_helper< T >::test(), thread_prologue_and_epilogue_insns(), try_combine(), try_split(), rtx_properties::try_to_add_insn(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), update_equiv_regs_prescan(), validate_equiv_mem(), verify_insn_sharing(), and vt_initialize().

◆ can_create_pseudo_p

#define can_create_pseudo_p ( )    (!reload_in_progress && !reload_completed)
This macro indicates whether you may create a new
pseudo-register.   

Referenced by canonicalize_comparison(), emit_conditional_move(), gen_reg_rtx(), and prepare_cmp_insn().

◆ CASE_CONST_ANY

◆ CASE_CONST_SCALAR_INT

#define CASE_CONST_SCALAR_INT
Value:
case CONST_INT: \
Match CONST_*s that can represent compile-time constant integers.   

Referenced by convert_memory_address_addr_space_1(), plus_constant(), and simplify_context::simplify_plus_minus().

◆ CASE_CONST_UNIQUE

#define CASE_CONST_UNIQUE
Value:
case CONST_INT: \
case CONST_DOUBLE: \
Match CONST_*s for which pointer equality corresponds to value
equality.   

Referenced by exp_equiv_p(), operands_match_p(), operands_match_p(), rtvec_all_equal_p(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), and uses_rtx_reuse_p().

◆ CODE_LABEL_NUMBER

#define CODE_LABEL_NUMBER ( INSN)    XINT (INSN, 5)

◆ COMMUTATIVE_ARITH_P

◆ COMMUTATIVE_P

#define COMMUTATIVE_P ( X)
Value:
#define RTX_COMMUTATIVE_RESULT
Definition rtl.h:105
#define RTX_COMMUTATIVE_MASK
Definition rtl.h:104
1 if X is a commutative operator on integers.   

Referenced by canonicalize_change_group(), hook_bool_const_rtx_commutative_p(), and rtx_equal_for_memref_p().

◆ COMPARISON_P

◆ COND_EXEC_CODE

◆ COND_EXEC_TEST

#define COND_EXEC_TEST ( RTX)    XCEXP (RTX, 0, COND_EXEC)
For a COND_EXEC rtx, COND_EXEC_TEST is the condition to base
conditionally executing the code on, COND_EXEC_CODE is the code
to execute if the condition is true.   

Referenced by insn_propagation::apply_to_pattern_1(), cond_exec_process_insns(), cselib_record_sets(), final_scan_insn_1(), note_uses(), print_pattern(), reg_referenced_p(), and rtx_properties::try_to_add_pattern().

◆ const0_rtx

#define const0_rtx   (const_int_rtx[MAX_SAVED_CONST_INT])

Referenced by addr_for_mem_ref(), adjust_stack(), allocate_dynamic_stack_space(), analyze_iv_to_split_insn(), anti_adjust_stack(), anti_adjust_stack_and_probe(), asan_clear_shadow(), asan_emit_stack_protection(), assemble_zeros(), assign_parm_find_entry_rtl(), assign_parm_find_stack_rtl(), assign_parms(), autoinc_split(), base_to_reg(), bb_estimate_probability_locally(), find_comparison_dom_walker::before_dom_children(), biv_p(), bswap_loc_descriptor(), builtin_strncpy_read_str(), can_assign_to_reg_without_clobbers_p(), can_compare_p(), canonicalize_iv_subregs(), ceil_sdiv_adjust(), ceil_udiv_adjust(), choose_reload_regs(), clear_storage_hints(), clz_loc_descriptor(), combine_simplify_rtx(), compare_by_pieces(), comparison_result(), convert_mode_scalar(), cselib_record_sets(), cselib_subst_to_values(), decompose(), default_expand_builtin_saveregs(), do_compare_rtx_and_jump(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), do_store_flag(), doloop_condition_get(), doloop_modify(), dump_iv_info(), dw2_asm_output_encoded_addr_rtx(), dw2_asm_output_nstring(), dw2_assemble_integer(), eliminate_constant_term(), eliminate_implied_condition(), eliminate_regs_1(), emit_block_cmp_hints(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_call_1(), emit_case_dispatch_table(), emit_conditional_add(), emit_conditional_move(), emit_libcall_block_1(), emit_stack_probe(), emit_store_flag(), emit_store_flag_1(), emit_store_flag_force(), emit_store_flag_int(), expand_addsub_overflow(), expand_arith_overflow(), expand_assignment(), expand_atomic_compare_and_swap(), expand_atomic_fetch_op(), expand_atomic_fetch_op_no_fallback(), expand_atomic_load(), expand_atomic_store(), expand_atomic_test_and_set(), expand_binop(), expand_builtin(), expand_builtin_apply(), expand_builtin_assume_aligned(), expand_builtin_atomic_always_lock_free(), expand_builtin_atomic_clear(), expand_builtin_atomic_compare_exchange(), expand_builtin_bzero(), expand_builtin_compare_and_swap(), expand_builtin_eh_copy_values(), expand_BUILTIN_EXPECT(), expand_builtin_expect(), expand_builtin_expect_with_probability(), expand_builtin_frame_address(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_init_descriptor(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn_2(), expand_builtin_issignaling(), expand_builtin_longjmp(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_memory_chk(), expand_builtin_memory_copy_args(), expand_builtin_memset_args(), expand_builtin_nonlocal_goto(), expand_builtin_object_size(), expand_builtin_prefetch(), expand_builtin_sincos(), expand_builtin_stpcpy_1(), expand_builtin_strcmp(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_strub_enter(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_builtin_sync_lock_release(), expand_builtin_thread_pointer(), expand_builtin_va_copy(), expand_builtin_va_end(), expand_builtin_va_start(), expand_call(), expand_call_stmt(), expand_ccmp_expr(), expand_compare_and_swap_loop(), expand_cond_expr_using_cmove(), expand_copysign_absneg(), expand_debug_expr(), expand_divmod(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_shift(), expand_eh_return(), expand_expr_real(), expand_expr_real_1(), expand_expr_real_2(), expand_float(), expand_gimple_basic_block(), expand_GOACC_DIM_POS(), expand_ifn_atomic_bit_test_and(), expand_ifn_atomic_op_fetch_cmp_0(), expand_movstr(), expand_mul_overflow(), expand_neg_overflow(), expand_one_error_var(), expand_POPCOUNT(), expand_return(), expand_sdiv_pow2(), expand_shift_1(), expand_single_bit_test(), expand_smod_pow2(), expand_speculation_safe_value(), expand_subword_shift(), expand_UNIQUE(), expand_vec_perm_const(), expand_vector_ubsan_overflow(), extract_integral_bit_field(), rtx_vector_builder::find_cached_value(), find_comparison_args(), find_dummy_reload(), find_flags_uses_in_insn(), find_moveable_pseudos(), find_reloads(), find_split_point(), compare_by_pieces_d::finish_mode(), floor_sdiv_adjust(), fold_rtx(), force_int_to_mode(), force_move_args_size_note(), force_to_mode(), gen_addr_rtx(), gen_lowpart_for_combine(), gen_vec_series(), compare_by_pieces_d::generate(), get_biv_step(), get_biv_step_1(), get_iv_value(), get_last_value_validate(), get_stored_val(), if_then_else_cond(), implies_p(), init_emit_once(), init_expmed(), init_lower_subreg(), inline_expand_builtin_bytecmp(), internal_arg_pointer_based_exp(), is_parallel_of_n_reg_sets(), iv_add(), iv_constant(), iv_extend(), iv_number_of_iterations(), iv_subreg(), known_cond(), lra_asm_insn_error(), lra_substitute_pseudo(), make_compound_operation(), make_extraction(), make_field_assignment(), make_reg_eh_region_note(), may_trap_p_1(), maybe_emit_op(), maybe_legitimize_operand(), maybe_optimize_fetch_op(), memory_address_addr_space(), memrefs_conflict_p(), move2add_note_store(), move2add_use_add2_insn(), move2add_use_add3_insn(), noce_bbs_ok_for_cond_zero_arith(), noce_emit_cmove(), noce_emit_czero(), noce_try_bitop(), noce_try_sign_mask(), noce_try_store_flag(), noce_try_store_flag_mask(), operand_subword(), output_ttype(), plus_constant(), popcount_loc_descriptor(), prepare_call_address(), prepare_cmp_insn(), prepare_float_lib_cmp(), print_pattern(), probe_stack_range(), profile_function(), push_reload(), recog_for_combine_1(), record_store(), record_value_for_reg(), relational_result(), reload_combine_note_use(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_reg_free_for_value_p(), round_sdiv_adjust(), round_udiv_adjust(), rtl_flow_call_edges_add(), rtl_for_decl_location(), scratch_equal(), set_noop_p(), setup_incoming_promotions(), shorten_into_mode(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_context::simplify_binary_operation_series(), simplify_comparison(), simplify_const_relational_operation(), simplify_const_unary_operation(), simplify_if_then_else(), simplify_context::simplify_relational_operation(), simplify_context::simplify_relational_operation_1(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), simplify_using_initial_values(), simplify_while_replacing(), sjlj_emit_function_enter(), split_const(), split_double(), stack_protect_epilogue(), stack_protect_prologue(), store_expr(), store_field(), store_split_bit_field(), store_unaligned_arguments_into_pseudos(), string_cst_read_str(), strip_offset(), subst(), try_combine(), try_merge_compare(), and unroll_loop_runtime_iterations().

◆ CONST0_RTX

◆ const1_rtx

#define const1_rtx   (const_int_rtx[MAX_SAVED_CONST_INT+1])

Referenced by bb_estimate_probability_locally(), canonicalize_iv_subregs(), ceil_sdiv_adjust(), ceil_udiv_adjust(), clz_loc_descriptor(), combine_simplify_rtx(), compare_by_pieces(), control_flow_insn_p(), convert_mode_scalar(), doloop_condition_get(), doloop_modify(), doloop_simplify_count(), dump_iv_info(), dw2_asm_output_encoded_addr_rtx(), emit_block_cmp_via_loop(), emit_conditional_add(), emit_conditional_move(), emit_cstore(), emit_store_flag_1(), emit_store_flag_force(), emit_store_flag_int(), expand_arith_set_overflow(), expand_atomic_test_and_set(), expand_builtin(), expand_builtin_atomic_always_lock_free(), expand_builtin_atomic_is_lock_free(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_longjmp(), expand_builtin_memory_copy_args(), expand_builtin_signbit(), expand_clrsb_using_clz(), expand_divmod(), expand_doubleword_divmod(), expand_eh_return(), expand_expr_real_2(), expand_float(), expand_ifn_atomic_bit_test_and(), expand_mul_overflow(), expand_parity(), expand_POPCOUNT(), expand_single_bit_test(), expand_smod_pow2(), expand_subword_shift(), expand_sync_lock_test_and_set(), rtx_vector_builder::find_cached_value(), implies_p(), init_emit_once(), ira(), iv_analyze_biv(), iv_constant(), iv_extend(), iv_number_of_iterations(), iv_subreg(), local_cprop_pass(), lra_final_code_change(), lshift_cheap_p(), make_field_assignment(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), one_cprop_pass(), optimize_bitfield_assignment_op(), popcount_loc_descriptor(), prefer_and_bit_test(), prepare_cmp_insn(), prepare_float_lib_cmp(), relational_result(), round_sdiv_adjust(), round_udiv_adjust(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_context::simplify_relational_operation_1(), simplify_context::simplify_unary_operation_1(), try_combine(), and unroll_loop_runtime_iterations().

◆ CONST1_RTX

◆ const2_rtx

#define const2_rtx   (const_int_rtx[MAX_SAVED_CONST_INT+2])

◆ CONST2_RTX

#define CONST2_RTX ( MODE)    (const_tiny_rtx[2][(int) (MODE)])

◆ CONST_DOUBLE_AS_FLOAT_P

◆ CONST_DOUBLE_AS_INT_P

#define CONST_DOUBLE_AS_INT_P ( X)     (GET_CODE (X) == CONST_DOUBLE && GET_MODE (X) == VOIDmode)
Predicate yielding true iff X is an rtx for a double-int.   

Referenced by expand_mult(), mode_signbit_p(), output_addr_const(), and rtx_to_double_int().

◆ CONST_DOUBLE_HIGH

◆ CONST_DOUBLE_LOW

#define CONST_DOUBLE_LOW ( r)    XCMWINT (r, 0, CONST_DOUBLE, VOIDmode)
For a CONST_DOUBLE:
#if TARGET_SUPPORTS_WIDE_INT == 0
   For a VOIDmode, there are two integers CONST_DOUBLE_LOW is the
     low-order word and ..._HIGH the high-order.
#endif
   For a float, there is a REAL_VALUE_TYPE structure, and
     CONST_DOUBLE_REAL_VALUE(r) is a pointer to it.   

Referenced by add_const_value_attribute(), const_rtx_hash_1(), cselib_hash_rtx(), wi::int_traits< rtx_mode_t >::decompose(), const_double_hasher::equal(), const_double_hasher::hash(), hash_rtx(), immed_double_const(), make_tree(), mode_signbit_p(), output_addr_const(), print_value(), rtx_to_double_int(), and split_double().

◆ CONST_DOUBLE_P

#define CONST_DOUBLE_P ( X)    (GET_CODE (X) == CONST_DOUBLE)
Predicate yielding true iff X is an rtx for a double-int
or floating point constant.   

Referenced by const_double_operand(), constant_pool_constant_p(), native_encode_rtx(), and split_double().

◆ CONST_DOUBLE_REAL_VALUE

◆ CONST_FIXED_P

#define CONST_FIXED_P ( X)    (GET_CODE (X) == CONST_FIXED)
Predicate yielding nonzero iff X is an rtx for a constant fixed-point.   

Referenced by simplify_const_binary_operation(), simplify_context::simplify_gen_subreg(), simplify_context::simplify_subreg(), and valid_for_const_vector_p().

◆ CONST_FIXED_VALUE

◆ CONST_FIXED_VALUE_HIGH

#define CONST_FIXED_VALUE_HIGH ( r)     ((HOST_WIDE_INT) (CONST_FIXED_VALUE (r)->data.high))

Referenced by native_encode_rtx().

◆ CONST_FIXED_VALUE_LOW

#define CONST_FIXED_VALUE_LOW ( r)     ((HOST_WIDE_INT) (CONST_FIXED_VALUE (r)->data.low))

◆ CONST_INT_P

#define CONST_INT_P ( X)    (GET_CODE (X) == CONST_INT)
Predicate yielding nonzero iff X is an rtx for a constant integer.   

Referenced by allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asm_operand_ok(), autoinc_split(), avoid_expensive_constant(), base_alias_check(), can_replace_by(), canonicalize_address(), canonicalize_address_mult(), canonicalize_condition(), canonicalize_reload_addr(), change_zero_ext(), clear_storage_hints(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), compute_stack_clash_protection_loop_data(), const_double_operand(), const_int_operand(), contains_muldiv(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), cse_insn(), cselib_expand_value_rtx_1(), cselib_hash_plus_const_int(), cselib_hash_rtx(), cselib_record_sp_cfa_base_equiv(), cselib_reset_table(), cselib_sp_derived_value_p(), cselib_subst_to_values(), curr_insn_transform(), decl_piece_bitsize(), decompose(), default_elf_select_rtx_section(), delete_address_reloads(), determine_block_size(), determine_max_iter(), do_SUBST(), dw2_assemble_integer(), dwarf2out_frame_debug_expr(), eliminate_constant_term(), eliminate_regs_1(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), emit_block_cmp_hints(), emit_block_cmp_via_loop(), emit_block_move_hints(), emit_block_move_via_oriented_loop(), emit_block_move_via_pattern(), emit_block_move_via_sized_loop(), emit_push_insn(), expand_binop(), expand_builtin_apply(), expand_builtin_memcmp(), expand_builtin_memory_copy_args(), expand_builtin_stpcpy_1(), expand_compound_operation(), expand_debug_expr(), expand_debug_parm_decl(), expand_divmod(), expand_DIVMOD(), expand_doubleword_shift(), expand_expr_real_2(), expand_field_assignment(), expand_mult(), expand_shift_1(), expand_widening_mult(), extract_left_shift(), fill_slots_from_thread(), find_address(), find_base_term(), find_base_value(), find_decomposable_shift_zext(), find_equiv_reg(), find_inc_amount(), find_mem(), find_reloads(), find_reloads_address(), find_split_point(), fixed_base_plus_p(), fold_rtx(), force_int_to_mode(), force_operand(), force_reg(), force_to_mode(), form_sum(), gen_lowpart_common(), gen_lowpart_or_truncate(), general_operand(), get_call_args(), get_dynamic_stack_size(), get_index_scale(), get_integer_term(), get_related_value(), get_stored_val(), immediate_operand(), implies_p(), inc_for_reload(), initial_return_save(), invariant_or_equiv_p(), ira_setup_alts(), is_based_loc(), iv_number_of_iterations(), loc_descriptor(), loc_list_from_tree_1(), lra_eliminate_regs_1(), make_compound_operation_int(), make_extraction(), make_field_assignment(), mark_not_eliminable(), maybe_emit_call_builtin___clear_cache(), maybe_swap_commutative_operands(), mem_loc_descriptor(), memory_address_addr_space(), memory_load_overlap(), memrefs_conflict_p(), mode_signbit_p(), move2add_note_store(), noce_get_alt_condition(), noce_process_if_block(), noce_try_bitop(), noce_try_cmove(), noce_try_inverse_constants(), noce_try_store_flag(), noce_try_store_flag_constants(), nonzero_address_p(), nonzero_bits1(), num_sign_bit_copies1(), operand_for_swap_move_operator(), output_addr_const(), output_asm_insn(), parse_add_or_inc(), poly_int_rtx_p(), prepare_cmp_insn(), print_exp(), rtx_writer::print_rtx(), probe_stack_range(), process_alt_operands(), recog_for_combine(), record_reg_classes(), record_set(), record_store(), reg_scan_mark_refs(), reload_combine_note_use(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), reload_cse_simplify_operands(), reverse_op(), reverse_rotate_by_imm_p(), reversed_comparison_code_parts(), round_push(), rtvec_series_p(), rtx_equal_for_cselib_1(), rtx_to_double_int(), scan_insn(), scompare_loc_descriptor_narrow(), set_storage_via_libcall(), set_storage_via_setmem(), should_hoist_expr_to_dom(), sign_extend_short_imm(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_relational_operation(), simplify_if_then_else(), simplify_immed_subreg(), simplify_logical(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation_1(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), sp_based_mem_offset(), split_const(), split_double(), stack_adjust_offset_pre_post(), stack_adjust_offset_pre_post_cb(), stack_memref_p(), store_bit_field_using_insv(), store_expr(), store_fixed_bit_field_1(), store_one_arg(), store_split_bit_field(), strip_address_mutations(), subst_reg_equivs(), try_apply_stack_adjustment(), try_combine(), ucompare_loc_descriptor(), use_anchored_address(), validate_pattern(), and values_equal_p().

◆ CONST_POLY_INT_COEFFS

#define CONST_POLY_INT_COEFFS ( RTX)
Value:
(RTL_FLAG_CHECK1("CONST_POLY_INT_COEFFS", (RTX), \
CONST_POLY_INT)->u.cpi.coeffs)
#define RTL_FLAG_CHECK1(NAME, RTX, C1)
Definition rtl.h:1336
For a CONST_POLY_INT, CONST_POLY_INT_COEFFS gives access to the
individual coefficients, in the form of a trailing_wide_ints structure.   

Referenced by inchash::add_rtx(), const_poly_int_value(), cselib_hash_rtx(), const_poly_int_hasher::equal(), const_poly_int_hasher::hash(), hash_rtx(), immed_wide_int_const(), poly_int_rtx_p(), rtx_writer::print_rtx(), print_value(), rtx_size(), and rtx_to_poly_int64().

◆ CONST_POLY_INT_P

◆ CONST_SCALAR_INT_P

◆ CONST_VECTOR_DUPLICATE_P

◆ CONST_VECTOR_ELT

◆ CONST_VECTOR_ENCODED_ELT

◆ CONST_VECTOR_NELTS_PER_PATTERN

◆ CONST_VECTOR_NPATTERNS

◆ CONST_VECTOR_NUNITS

◆ CONST_VECTOR_P

#define CONST_VECTOR_P ( X)    (GET_CODE (X) == CONST_VECTOR)
Predicate yielding nonzero iff X is an rtx for a constant vector.   

◆ CONST_VECTOR_STEPPED_P

◆ const_wide_int_alloc

#define const_wide_int_alloc ( NWORDS)
Value:
(sizeof (struct hwivec_def) \
+ ((NWORDS)-1) * sizeof (HOST_WIDE_INT))) \
#define rtx_alloc_v(c, SZ)
Definition rtl.h:2991
Definition rtl.h:282

Referenced by immed_wide_int_const_1(), and rtx_reader::read_rtx_code().

◆ CONST_WIDE_INT_ELT

◆ CONST_WIDE_INT_NUNITS

◆ CONST_WIDE_INT_P

#define CONST_WIDE_INT_P ( X)    (GET_CODE (X) == CONST_WIDE_INT)
Predicate yielding nonzero iff X is an rtx for a constant integer.   

Referenced by expand_mult(), loc_cmp(), mode_signbit_p(), rtx_reader::read_rtx_code(), rtx_size(), and validate_pattern().

◆ CONST_WIDE_INT_VEC

#define CONST_WIDE_INT_VEC ( RTX)    HWIVEC_CHECK (RTX, CONST_WIDE_INT)
For a CONST_WIDE_INT, CONST_WIDE_INT_NUNITS is the number of
elements actually needed to represent the constant.
CONST_WIDE_INT_ELT gets one of the elements.  0 is the least
significant HOST_WIDE_INT.   

◆ CONSTANT_P

#define CONSTANT_P ( X)     (GET_RTX_CLASS (GET_CODE (X)) == RTX_CONST_OBJ)
1 if X is a constant value that is an integer.   

Referenced by add_const_value_attribute(), add_location_or_const_value_attribute(), add_uses(), adjust_insn(), insn_propagation::apply_to_rvalue_1(), avoid_constant_pool_reference(), avoid_expensive_constant(), bb_ok_for_noce_convert_multiple_sets(), break_out_memory_refs(), can_combine_p(), can_widen_mult_without_libcall(), canonicalize_condition(), check_cond_move_block(), choose_reload_regs(), combine_simplify_rtx(), cond_move_process_if_block(), conforming_compare(), const_or_frame_p(), constrain_operands(), convert_move(), cprop_constant_p(), cse_insn(), cse_process_note_1(), cselib_record_sets(), pieces_addr::decide_autoinc(), decompose(), decompose_automod_address(), decompose_normal_address(), distribute_notes(), do_compare_rtx_and_jump(), eliminate_regs_1(), emit_block_cmp_via_loop(), emit_cmp_and_jump_insns(), emit_conditional_move(), emit_group_load_1(), emit_input_reload_insns(), emit_library_call_value_1(), emit_move_complex(), emit_move_insn(), emit_move_insn_1(), emit_move_multi_word(), emit_push_insn(), emit_store_flag(), equiv_constant(), expand_builtin_frame_address(), expand_doubleword_shift(), expand_expr_real_1(), expand_expr_real_2(), expand_gimple_stmt_1(), expand_mult(), expand_subword_shift(), extract_low_bits(), find_base_term(), find_base_value(), find_constant_src(), find_constant_term_loc(), find_equiv_reg(), find_reloads(), find_reloads_address(), find_reloads_address_part(), find_reloads_toplev(), find_shift_sequence(), find_split_point(), fold_rtx(), force_operand(), force_reg(), form_sum(), form_sum(), function_invariant_p(), gen_reload(), gen_reload_chain_without_interm_reg_p(), general_constant_p(), general_operand(), get_addr(), get_biv_step_1(), get_equiv_with_elimination(), get_index_term(), get_stored_val(), if_then_else_cond(), immediate_operand(), immune_p(), init_eliminable_invariants(), insert_with_costs(), instantiate_decl_rtl(), internal_arg_pointer_based_exp(), invariant_or_equiv_p(), iv_analyze_biv(), iv_analyze_expr(), loc_list_from_tree_1(), lra_eliminate_regs_1(), lra_emit_add(), lra_substitute_pseudo(), make_safe_from(), match_asm_constraints_1(), may_trap_p_1(), mem_loc_descriptor(), memory_address_addr_space(), memrefs_conflict_p(), move_block_to_reg(), move_insn_for_shrink_wrap(), move_plus_up(), noce_emit_move_insn(), noce_try_cmove(), nonimmediate_operand(), nonmemory_operand(), nonoverlapping_memrefs_p(), nonzero_address_p(), plus_constant(), plus_minus_operand_p(), precompute_register_parameters(), prepare_call_arguments(), prepare_cmp_insn(), preserve_temp_slots(), process_address_1(), process_alt_operands(), push_block(), push_reload(), recog_for_combine(), record_address_regs(), record_jump_cond(), record_reg_classes(), record_store(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reload(), reload_combine_recognize_const_pattern(), reload_cse_simplify_operands(), reload_cse_simplify_set(), reload_inner_reg_of_subreg(), reverse_op(), rtl_for_decl_location(), scan_one_insn(), setup_reg_equiv(), simplify_expand_binop(), simplify_if_then_else(), simplify_operand_subreg(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation_1(), simplify_set(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), simplify_using_initial_values(), simplify_while_replacing(), single_reg_class(), split_insn(), store_bit_field_using_insv(), store_expr(), store_split_bit_field(), try_combine(), try_eliminate_compare(), try_replace_in_use(), try_replace_reg(), use_narrower_mode(), and use_narrower_mode_test().

◆ CONSTANT_POOL_ADDRESS_P

◆ constm1_rtx

◆ CONSTM1_RTX

◆ convert_memory_address

◆ COSTS_N_INSNS

#define COSTS_N_INSNS ( N)    ((N) * 4)

◆ CROSSING_JUMP_P

◆ CSELIB_VAL_PTR

◆ CWI_ELT

#define CWI_ELT ( RTX,
I )   ((RTX)->u.hwiv.elem[I])

◆ CWI_GET_NUM_ELEM

#define CWI_GET_NUM_ELEM ( RTX)     ((int)RTL_FLAG_CHECK1("CWI_GET_NUM_ELEM", (RTX), CONST_WIDE_INT)->u2.num_elem)
Number of elements of the HWIVEC if RTX is a CONST_WIDE_INT.   

Referenced by cwi_output_hex().

◆ CWI_PUT_NUM_ELEM

#define CWI_PUT_NUM_ELEM ( RTX,
NUM )    (RTL_FLAG_CHECK1("CWI_PUT_NUM_ELEM", (RTX), CONST_WIDE_INT)->u2.num_elem = (NUM))

Referenced by immed_wide_int_const_1().

◆ DEBUG_BIND_INSN_P

#define DEBUG_BIND_INSN_P ( INSN)

◆ DEBUG_EXPR_TREE_DECL

◆ DEBUG_IMPLICIT_PTR_DECL

#define DEBUG_IMPLICIT_PTR_DECL ( RTX)    XCTREE (RTX, 0, DEBUG_IMPLICIT_PTR)
VAR_DECL/PARM_DECL DEBUG_IMPLICIT_PTR takes address of.   

Referenced by cselib_hash_rtx(), implicit_ptr_descriptor(), rtx_writer::print_rtx_operand(), rtx_equal_for_cselib_1(), and rtx_equal_p().

◆ DEBUG_INSN_P

#define DEBUG_INSN_P ( X)    (GET_CODE (X) == DEBUG_INSN)
Predicate yielding nonzero iff X is a debug note/insn.   

Referenced by add_next_usage_insn(), add_removable_extension(), assign_spill_hard_regs(), base_reg_class_for_rename(), block_jumps_and_fallthru(), bypass_conditional_jumps(), can_move_invariant_reg(), canonicalize_insn(), check_new_reg_p(), combine_and_move_insns(), combine_reaching_defs(), cond_exec_process_if_block(), cond_exec_process_insns(), cprop_insn(), cselib_invalidate_mem(), cselib_invalidate_regno_val(), dce_process_block(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_or_predicable(), decompose_multiword_subregs(), def_dominates_uses(), delete_insn_and_edges(), delete_trivially_dead_insns(), delete_vta_debug_insns(), df_insn_change_bb(), df_insn_rescan(), df_insn_rescan_debug_internal(), df_install_ref_incremental(), df_note_bb_compute(), df_ref_create_structure(), df_set_note(), df_simulate_uses(), df_uses_record(), discard_useless_locs(), distribute_links(), duplicate_insn_chain(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_input_reload_insns(), emit_pattern_after(), emit_pattern_before(), cselib_hasher::equal(), equivalent_reg_at_start(), expand_gimple_basic_block(), final_scan_insn_1(), find_bb_boundaries(), find_equiv_reg(), find_moveable_pseudos(), find_rename_reg(), first_active_insn(), inherit_reload_reg(), insn_live_p(), invalidate_insn_data_regno_info(), last_active_insn(), local_cprop_pass(), lra_constraints(), lra_eliminate_regs_1(), lra_final_code_change(), lra_set_insn_recog_data(), lra_substitute_pseudo_within_insn(), lra_update_insn_recog_data(), mark_reg_dependencies(), mark_target_live_regs(), new_cselib_val(), new_elt_loc_list(), next_nondebug_insn(), next_nonnote_nondebug_insn(), next_nonnote_nondebug_insn_bb(), outgoing_edges_match(), prev_nondebug_insn(), prev_nonnote_nondebug_insn(), prev_nonnote_nondebug_insn_bb(), promote_debug_loc(), purge_dead_edges(), record_stack_refs(), referenced_in_one_insn_in_loop_p(), regrename_do_replace(), regrename_find_superclass(), regstat_init_n_sets_and_refs(), replace_oldest_value_addr(), replace_oldest_value_mem(), replace_oldest_value_reg(), reset_debug_uses_in_loop(), reset_unmarked_insns_debug_uses(), rtl_block_ends_with_call_p(), rtl_merge_blocks(), rtl_split_block(), save_call_clobbered_regs(), scan_insn(), scan_rtx_address(), scan_rtx_reg(), scan_trace(), set_new_first_and_last_insn(), shorten_branches(), spill_pseudos(), split_live_ranges_for_shrink_wrap(), split_reg(), is_a_helper< T >::test(), trivially_empty_bb_p(), try_back_substitute_reg(), try_combine(), try_crossjump_to_edge(), try_forward_edges(), verify_changes(), and word_dce_process_block().

◆ DEBUG_MARKER_INSN_P

#define DEBUG_MARKER_INSN_P ( INSN)
Value:
Evaluate to TRUE if INSN is a debug insn that denotes a program
source location marker.   

Referenced by delete_trivially_dead_insns(), delete_vta_debug_insn(), insn_live_p(), instantiate_virtual_regs(), lra_set_insn_recog_data(), print_insn(), reemit_marker_as_note(), and vt_initialize().

◆ DEBUG_PARAMETER_REF_DECL

#define DEBUG_PARAMETER_REF_DECL ( RTX)    XCTREE (RTX, 0, DEBUG_PARAMETER_REF)

◆ DEF_INSN_NOTE

#define DEF_INSN_NOTE ( NAME)    NAME,

◆ DEF_REG_NOTE

#define DEF_REG_NOTE ( NAME)    NAME,

◆ DEF_RTL_EXPR

#define DEF_RTL_EXPR ( ENUM,
NAME,
FORMAT,
CLASS )   ENUM ,

◆ ENTRY_VALUE_EXP

#define ENTRY_VALUE_EXP ( RTX)    (RTL_CHECKC1 (RTX, 0, ENTRY_VALUE).rt_rtx)

◆ EXTRACT_ARGS_IN_RANGE

#define EXTRACT_ARGS_IN_RANGE ( SIZE,
POS,
RANGE )
Value:
(IN_RANGE ((POS), 0, (unsigned HOST_WIDE_INT) (RANGE) - 1) \
&& IN_RANGE ((SIZE), 1, (unsigned HOST_WIDE_INT) (RANGE) \
- (unsigned HOST_WIDE_INT)(POS)))
#define IN_RANGE(VALUE, LOWER, UPPER)
Definition system.h:320
A convenience macro to validate the arguments of a zero_extract
expression.  It determines whether SIZE lies inclusively within
[1, RANGE], POS lies inclusively within between [0, RANGE - 1]
and the sum lies inclusively within [1, RANGE].  RANGE must be
>= 1, but SIZE and POS may be negative.   

◆ FAKE_CALL_P

#define FAKE_CALL_P ( RTX)     (RTL_FLAG_CHECK1 ("FAKE_CALL_P", (RTX), CALL_INSN)->used)
1 if RTX is a call_insn for a fake call.
CALL_INSN use "used" flag to indicate it's a fake call.   

Referenced by df_get_call_refs(), leaf_function_p(), and requires_stack_frame_p().

◆ fatal_insn

◆ fatal_insn_not_found

◆ FIND_REG_INC_NOTE

#define FIND_REG_INC_NOTE ( INSN,
REG )   0
Define a macro to look for REG_INC notes,
but save time on machines where they never exist.   

Referenced by can_combine_p(), canonicalize_condition(), insn_invalid_p(), reg_set_p(), try_combine(), and try_split().

◆ FIRST_VIRTUAL_REGISTER

#define FIRST_VIRTUAL_REGISTER   (FIRST_PSEUDO_REGISTER)
Virtual registers are used during RTL generation to refer to locations into
the stack frame when the actual location isn't known until RTL generation
is complete.  The routine instantiate_virtual_regs replaces these with
the proper value, which is normally {frame,arg,stack}_pointer_rtx plus
a constant.   

Referenced by rtx_writer::print_rtx_operand_code_r().

◆ frame_pointer_rtx

◆ GEN_INT

#define GEN_INT ( N)    gen_rtx_CONST_INT (VOIDmode, (N))

Referenced by add_mask_and_len_args(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asan_clear_shadow(), asan_emit_stack_protection(), assemble_real(), assign_parm_setup_block(), assign_parm_setup_stack(), avoid_expensive_constant(), bswap_loc_descriptor(), canonicalize_reload_addr(), change_zero_ext(), clz_loc_descriptor(), compute_stack_clash_protection_loop_data(), cse_insn(), decl_piece_node(), do_compare_rtx_and_jump(), do_store_flag(), doloop_condition_get(), dw2_asm_output_data(), dw2_asm_output_data_sleb128(), dw2_asm_output_data_uleb128(), dw2_fix_up_crossing_landing_pad(), tree_switch_conversion::bit_test_cluster::emit(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_note_insn_var_location(), emit_push_insn(), emit_store_flag(), emit_store_flag_force(), emit_store_flag_int(), expand_builtin_classify_type(), expand_builtin_dwarf_sp_column(), expand_builtin_eh_return_data_regno(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_issignaling(), expand_call(), expand_clrsb_using_clz(), expand_debug_expr(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_expr_real_2(), expand_ffs(), expand_field_assignment(), expand_fn_using_insn(), expand_function_end(), expand_GOACC_DIM_SIZE(), expand_mem_thread_fence(), expand_vec_perm_var(), expand_widen_pattern_expr(), find_address(), find_mem(), fold_rtx(), force_to_mode(), gen_int_mode(), if_then_else_cond(), immed_double_const(), index_part_to_reg(), init_emit_once(), init_expmed(), instantiate_new_reg(), internal_check_ptrs_fn_supported_p(), internal_gather_scatter_fn_supported_p(), internal_len_load_store_bias(), invert_br_probabilities(), make_extraction(), make_reg_eh_region_note(), make_reg_eh_region_note_nothrow_nononlocal(), maybe_expand_shift(), maybe_swap_commutative_operands(), move_block_from_reg(), move_block_to_reg(), noce_get_alt_condition(), noce_try_store_flag_constants(), optimize_range_tests_to_bit_test(), output_constructor(), output_constructor_bitfield(), output_constructor_regular_field(), parse_add_or_inc(), predict_insn(), prefer_and_bit_test(), prepare_call_address(), prepare_call_arguments(), prepare_cmp_insn(), print_exp(), reload_combine_recognize_pattern(), rotate_loc_descriptor(), round_push(), rtl_for_decl_init(), sign_extend_short_imm(), simplify_context::simplify_binary_operation_1(), simplify_compare_const(), simplify_comparison(), simplify_context::simplify_gen_vec_select(), simplify_shift_const_1(), simplify_context::simplify_truncation(), simplify_while_replacing(), sjlj_assign_call_site_values(), sjlj_fix_up_crossing_landing_pad(), split_double(), store_constructor(), store_expr(), store_split_bit_field(), try_apply_stack_adjustment(), try_const_anchors(), and try_store_by_multiple_pieces().

◆ gen_lowpart

#define gen_lowpart   rtl_hooks.gen_lowpart
Keep this for the nonce.   

Referenced by combine_simplify_rtx(), convert_extracted_bit_field(), convert_float_to_wider_int(), convert_mode_scalar(), convert_modes(), convert_move(), convert_wider_int_to_float(), copy_blkmode_to_reg(), cse_insn(), cse_process_note_1(), cselib_record_sets(), default_memtag_extract_tag(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), emit_group_load_1(), emit_group_store(), equiv_constant(), expand_absneg_bit(), expand_binop(), expand_builtin_issignaling(), expand_builtin_signbit(), expand_builtin_stpcpy_1(), expand_compound_operation(), expand_cond_expr_using_cmove(), expand_copysign_absneg(), expand_copysign_bit(), expand_divmod(), expand_doubleword_clz_ctz_ffs(), expand_expr_real_1(), expand_field_assignment(), expand_movstr(), expand_mult_const(), expand_mult_highpart(), expand_parity(), expand_unop(), expand_vec_perm_const(), expand_vec_perm_var(), extract_bit_field_1(), extract_low_bits(), find_split_point(), flip_storage_order(), force_to_mode(), gen_lowpart_or_truncate(), get_last_value(), get_stored_val(), insert_with_costs(), make_compound_operation_int(), make_extraction(), plus_constant(), record_dead_and_set_regs_1(), rtx_equal_for_field_assignment_p(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), simplify_if_then_else(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), store_bit_field_1(), store_bit_field_using_insv(), store_integral_bit_field(), try_combine(), widen_bswap(), and widen_operand().

◆ gen_rtx_ASM_INPUT

#define gen_rtx_ASM_INPUT ( MODE,
ARG0 )    gen_rtx_fmt_si (ASM_INPUT, (MODE), (ARG0), 0)
Include the RTL generation functions.   

Referenced by gen_blockage().

◆ gen_rtx_ASM_INPUT_loc

#define gen_rtx_ASM_INPUT_loc ( MODE,
ARG0,
LOC )    gen_rtx_fmt_si (ASM_INPUT, (MODE), (ARG0), (LOC))

Referenced by expand_asm_loc(), and expand_asm_stmt().

◆ GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT

#define GEN_RTX_DEBUG_MARKER_BEGIN_STMT_PAT ( )     gen_rtx_DEBUG_MARKER (VOIDmode)
Create patterns for debug markers.  These and the above abstract
the representation, so that it's easier to get rid of the abuse of
the mode to hold the marker kind.  Other marker types are
envisioned, so a single bit flag won't do; maybe separate RTL codes
wouldn't be a problem.   

Referenced by expand_gimple_basic_block().

◆ GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT

#define GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT ( )     gen_rtx_DEBUG_MARKER (BLKmode)

◆ gen_rtx_UNKNOWN_VAR_LOC

◆ GET_CODE

#define GET_CODE ( RTX)    ((enum rtx_code) (RTX)->code)
Define macros to access the `code' field of the rtx.   

Referenced by active_insn_p(), add_attributes(), add_auto_inc_notes(), add_const_value_attribute(), add_constraint(), add_constraints(), add_equal_note(), add_label_notes(), add_location_or_const_value_attribute(), add_mode_tests(), add_next_usage_insn(), add_regs_to_insn_regno_info(), add_removable_extension(), inchash::add_rtx(), add_shallow_copy_of_reg_note(), add_stored_regs(), add_stores(), generic_subrtx_iterator< T >::add_subrtxes_to_queue(), add_test(), add_uses(), add_var_loc_to_decl(), addr_for_mem_ref(), addr_side_effect_eval(), adjust_address_1(), adjust_for_new_dest(), adjust_insn(), adjust_mems(), alloc_INSN_LIST(), alter_attrs_for_insn(), alter_attrs_for_subst_insn(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), analyze_insn_to_expand_var(), anti_adjust_stack_and_probe(), any_condjump_p(), any_uncondjump_p(), fixup_expr::apply(), apply_distributive_law(), apply_int_iterator(), apply_opt_in_copies(), insn_propagation::apply_to_lvalue_1(), insn_propagation::apply_to_pattern_1(), insn_propagation::apply_to_rvalue_1(), arithmetic_flags_clobber_p(), asan_protect_global(), asm_insn_count(), asm_labels_ok(), asm_noperands(), asm_operand_ok(), assemble_integer(), assemble_variable(), assign_parm_adjust_entry_rtl(), assign_parm_is_stack_parm(), assign_parm_remove_parallels(), assign_parm_setup_block(), assign_parm_setup_reg(), attr_checksum(), attr_checksum_ordered(), attr_rtx_1(), attr_rtx_cost(), attr_value_alignment(), auto_inc_p(), autoinc_split(), avoid_complex_debug_insns(), avoid_constant_pool_reference(), bad_for_rematerialization_p(), base_alias_check(), bb_estimate_probability_locally(), bb_is_just_return(), bb_ok_for_noce_convert_multiple_sets(), block_has_only_trap(), block_jumps_and_fallthru(), break_out_memory_refs(), build_def_use(), build_insn_chain(), bypass_block(), bypass_conditional_jumps(), calculate_equiv_gains(), call_from_call_insn(), can_combine_p(), can_have_basic_block_p(), can_merge_compare_into_arith(), can_simplify_addr(), can_throw_external(), canon_address(), canon_condition(), canon_list_insert(), canon_reg(), canon_reg_for_combine(), canon_rtx(), canonical_cselib_val(), canonicalize_address_mult(), canonicalize_condition(), canonicalize_insn(), canonicalize_reload_addr(), canonicalize_values_mark(), canonicalize_values_star(), canonicalize_vars_star(), cant_combine_insn_p(), change_regs(), change_subst_attribute(), change_zero_ext(), check_and_make_def_conflict(), check_and_process_move(), check_attr_test(), check_attr_value(), check_cond_move_block(), check_defs(), check_eliminable_occurrences(), check_for_inc_dec(), check_for_inc_dec_1(), check_for_label_ref(), check_maybe_invariant(), check_promoted_subreg(), check_rtl(), check_sibcall_argument_overlap_1(), check_tune_attr(), check_tune_attr(), choose_reload_regs(), classify_insn(), cleanup_auto_inc_dec(), cleanup_subreg_operands(), clear_storage(), clear_struct_flag(), clobber_overlapping_mems(), clz_loc_descriptor(), collect_address_parts(), collect_insn_data(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_and_move_insns(), combine_instructions(), combine_set_extension(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), commutative_operand_precedence(), compare_and_jump_seq(), compare_constant(), compares_alternatives_p(), compute_alternative_mask(), compute_argument_addresses(), compute_bb_dataflow(), compute_hash_table(), compute_ld_motion_mems(), compute_reloc_for_rtx(), compute_reloc_for_rtx_1(), compute_test_codes(), compute_transp(), computed_jump_p(), computed_jump_p_1(), cond_exec_get_condition(), cond_exec_process_insns(), cond_move_convert_if_block(), condition_dominates_p(), condjump_in_parallel_p(), condjump_label(), condjump_p(), conforming_compare(), consolidate_reg(), function_reader::consolidate_singletons(), const_hash_1(), const_ok_for_output(), const_ok_for_output_1(), const_or_frame_p(), const_rtx_hash_1(), const_vec_duplicate_p(), const_vec_series_p(), constrain_operands(), constraints_supported_in_insn_p(), contains(), contains_call_div_mod(), contains_muldiv(), contains_reg_p(), contains_symbolic_reference_p(), control_flow_insn_p(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), convert_mode_scalar(), convert_modes(), convert_move(), convert_syntax(), convert_to_eh_region_ranges(), copy_boolean(), copy_cost(), copy_insn_1(), copy_replacements_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), symtab_node::copy_visibility_from(), copyprop_hardreg_forward_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), covers_regno_no_parallel_p(), covers_regno_p(), cprop_constant_p(), cprop_jump(), create_insn_allocnos(), create_pseudo_cfg(), cse_cc_succs(), cse_insn(), cse_prescan_path(), cselib_expand_value_rtx_1(), cselib_hash_plus_const_int(), cselib_hash_rtx(), cselib_invalidate_rtx(), cselib_lookup_1(), cselib_process_insn(), cselib_record_sets(), cselib_record_sp_cfa_base_equiv(), cselib_redundant_set_p(), cselib_reset_table(), cselib_sp_derived_value_p(), cselib_subst_to_values(), cst_pool_loc_descr(), curr_insn_transform(), dataflow_set_preserve_mem_locs(), dataflow_set_remove_mem_locs(), dbr_schedule(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_or_set_regno_p(), dead_pseudo_p(), debug_optab_libfuncs(), decl_piece_bitsize(), decode_asm_operands(), wi::int_traits< rtx_mode_t >::decompose(), decompose(), decompose_address(), decompose_automod_address(), decompose_multiword_subregs(), decompose_normal_address(), decrease_live_ranges_number(), default_const_not_ok_for_debug_p(), default_elf_select_rtx_section(), default_encode_section_info(), deletable_insn_p(), deletable_insn_p_1(), delete_address_reloads(), delete_address_reloads_1(), delete_dead_insn(), delete_jump(), delete_move_and_clobber(), delete_output_reload(), delete_prior_computation(), delete_related_insns(), determine_max_iter(), df_def_record_1(), df_defs_record(), df_find_def(), df_find_hard_reg_defs(), df_find_hard_reg_defs_1(), df_find_use(), df_get_call_refs(), df_insn_refs_collect(), df_ref_create_structure(), df_ref_record(), df_uses_record(), df_word_lr_mark_ref(), diddle_return_value_1(), distribute_and_simplify_rtx(), distribute_links(), distribute_notes(), do_compare_rtx_and_jump(), do_jump(), do_local_cprop(), do_output_reload(), do_SUBST(), do_tablejump(), doloop_condition_get(), doloop_modify(), doloop_simplify_count(), duplicate_insn_chain(), duplicate_reg_note(), dv_from_rtx(), dw2_asm_output_encoded_addr_rtx(), dw2_force_const_mem(), dw_loc_list(), dw_loc_list_1(), dw_sra_loc_expr(), dwarf2out_frame_debug(), dwarf2out_frame_debug_adjust_cfa(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_restore(), dwarf2out_frame_debug_expr(), eh_returnjump_p(), eliminate_constant_term(), eliminate_known_true(), eliminate_partially_redundant_loads(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), emit(), address_reload_context::emit_autoinc(), emit_block_move(), emit_call_1(), emit_call_insn(), emit_clobber(), emit_conditional_add(), emit_conditional_move(), emit_copy_of_insn_after(), emit_debug_insn(), emit_group_load_1(), emit_group_move(), emit_group_store(), emit_input_reload_insns(), emit_insn(), emit_insn_if_valid_for_reload(), emit_jump_insn(), emit_library_call_value_1(), emit_move_complex(), emit_move_complex_push(), emit_move_list(), emit_move_multi_word(), emit_move_resolve_push(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_pattern_after_noloc(), emit_pattern_before_noloc(), emit_push_insn(), emit_reload_insns(), emit_spill_move(), emit_use(), cselib_hasher::equal(), equal_different_set_p(), equiv_address_substitution(), equiv_constant(), equiv_init_movable_p(), equiv_init_varies_p(), evaluate_eq_attr(), exact_int_to_float_conversion_p(), exp_equiv_p(), expand_asm_stmt(), expand_assignment(), expand_builtin_apply(), expand_call(), expand_ccmp_expr(), expand_compound_operation(), expand_constructor(), expand_debug_expr(), expand_debug_locations(), expand_debug_parm_decl(), expand_expr_real_1(), expand_expr_real_2(), expand_field_assignment(), expand_fn_using_insn(), expand_function_end(), expand_function_start(), expand_gimple_basic_block(), expand_gimple_stmt(), expand_gimple_stmt_1(), expand_loc(), expand_mult_const(), expand_return(), expand_shift_1(), expand_ubsan_result_store(), expand_used_vars(), expand_value_return(), function_reader::extra_parsing_for_operand_code_0(), extract_asm_operands(), extract_bit_field_1(), extract_bit_field_using_extv(), extract_insn(), extract_left_shift(), extract_mem_from_operand(), extract_plus_operands(), extract_split_bit_field(), fill_simple_delay_slots(), fill_slots_from_thread(), final_scan_insn_1(), find_address(), find_args_size_adjust(), find_attrs_to_cache(), find_auto_inc(), find_base_term(), find_base_value(), find_bb_boundaries(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_cc_set(), find_comparison_args(), find_cond_trap(), find_constant_term_loc(), find_dead_or_set_registers(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_dummy_reload(), find_end_label(), find_equiv_reg(), find_first_parameter_load(), find_flags_uses_in_insn(), find_implicit_sets(), find_inc_amount(), find_loads(), find_loc_in_1pdv(), find_matching_operand(), find_mem(), find_mem_conflicts(), find_mem_expr_in_1pdv(), find_memory(), find_memory_stores(), find_operand(), find_reg_equal_equiv_note(), find_reg_fusage(), find_reg_offset_for_const(), find_regno_fusage(), find_reload_regno_insns(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_address_part(), find_reloads_toplev(), find_replacement(), find_reusable_reload(), find_sets_in_insn(), find_single_use_1(), find_split_point(), find_subregs_of_mode(), find_temp_slot_from_address(), find_tune_attr(), find_tune_attr(), find_used_regs(), fix_crossing_conditional_branches(), fixed_base_plus_p(), flow_active_insn_p(), fold_rtx(), for_each_inc_dec(), for_each_inc_dec_find_inc_dec(), force_const_mem(), force_int_to_mode(), force_operand(), force_reg(), force_reload_address(), force_to_mode(), forget_old_reloads_1(), form_sum(), form_sum(), forward_propagate_subreg(), forward_propagate_subreg(), free_INSN_LIST_node(), free_list(), free_load_extend(), function_invariant_p(), gen_addr_rtx(), gen_array_type_die(), gen_attr(), gen_attr(), gen_automata_option(), gen_automaton(), gen_bypass(), gen_cpu_unit(), gen_excl_set(), gen_exp(), gen_group_rtx(), gen_insn(), gen_insn(), gen_lowpart_common(), gen_lowpart_for_combine(), gen_lowpart_general(), gen_mnemonic_attr(), gen_peephole2(), gen_presence_absence_set(), gen_query_cpu_unit(), gen_reload(), gen_reload_chain_without_interm_reg_p(), gen_split(), general_operand(), generate_switch_p(), get_addr(), get_addr_from_global_cache(), get_addr_from_local_cache(), get_alternatives_number(), get_attr_length_1(), get_base_term(), get_biv_step_1(), get_branch_condition(), get_c_test(), get_call_args(), get_call_rtx_from(), get_condition(), get_defs(), get_eh_region_and_lp_from_rtx(), get_equiv_regno(), get_extended_src_reg(), get_first_nonnote_insn(), get_fnname_from_decl(), get_index_code(), get_index_scale(), get_index_term(), get_integer_term(), rtx_jump_table_data::get_labels(), get_last_value(), get_last_value_validate(), get_mem_expr_from_op(), get_pattern_stats_1(), get_peephole2_pattern(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_regno(), get_related_value(), get_reload_reg(), get_some_local_dynamic_name(), get_sub_rtx(), go_through_subreg(), function_reader::handle_any_trailing_information(), hard_reg_set_here_p(), has_subst_attribute(), hash_invariant_expr_1(), hash_rtx(), hash_scan_insn(), hash_scan_insn(), hash_scan_set(), identify_predicable_attribute(), if_test_bypass_p(), if_then_else_cond(), implicit_set_cond_p(), implies_p(), in_class_p(), in_initial_view_p(), inc_for_reload(), indirect_jump_optimize(), indirect_operand(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), initial_return_save(), initialize_argument_information(), insert_regs(), insert_right_side(), insert_with_costs(), inside_basic_block_p(), insn_invalid_p(), insn_live_p(), insn_nothrow_p(), insn_stack_adjust_offset_pre_post(), instantiate_decl_rtl(), instantiate_virtual_regs(), instantiate_virtual_regs_in_insn(), instantiate_virtual_regs_in_rtx(), interesting_dest_for_shprep(), internal_arg_pointer_based_exp(), intersect_loc_chains(), invalidate(), invalidate_any_buried_refs(), invalidate_dest(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invalidate_reg(), invariant_expr_equal_p(), invariant_or_equiv_p(), invariant_p(), invert_exp_1(), ira_bad_reload_regno_1(), ira_implicitly_set_insn_hard_regs(), ira_remove_insn_scratches(), is_based_loc(), is_cond_copy_insn(), is_not(), is_parallel_of_n_reg_sets(), is_predicable(), is_pseudo_reg(), iv_analyze(), iv_analyze_expr(), iv_analyze_op(), iv_get_reaching_def(), iv_number_of_iterations(), kill_autoinc_value(), kill_clobbered_value(), kill_set_value(), kill_value(), known_cond(), last_active_insn(), leaf_function_p(), likely_spilled_retval_p(), link_insn_into_chain(), load_register_parameters(), loc_cmp(), loc_descriptor(), loc_equivalence_change_p(), loc_list_from_tree_1(), loc_mentioned_in_p(), local_cprop_find_used_regs(), local_cprop_pass(), location_for_asm(), lookup_as_function(), lra_constraints(), lra_delete_dead_insn(), lra_eliminate_regs_1(), lra_emit_add(), lra_emit_move(), lra_final_code_change(), lra_rtx_hash(), lra_set_insn_recog_data(), lra_substitute_pseudo(), lra_update_insn_regno_info(), lsb_bitfield_op_p(), main(), main(), make_automaton_attrs(), make_canonical(), make_compound_operation(), make_compound_operation_int(), symtab_node::make_decl_local(), make_decl_rtl(), make_edges(), make_extraction(), make_field_assignment(), make_insn_raw(), make_pseudo_conflict(), make_return_insns(), make_safe_from(), make_tree(), mark_altered(), mark_constants_in_pattern(), mark_effect(), mark_hard_reg_early_clobbers(), mark_jump_label_1(), mark_label_nuses(), mark_mode_tests(), mark_nonreg_stores_1(), mark_nonreg_stores_2(), mark_not_eliminable(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_dead(), mark_ref_live(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_reg_clobber(), mark_reg_store(), mark_set_regs(), mark_set_resources(), mark_symbol_refs_as_used(), mark_target_live_regs(), mark_used_flags(), mark_used_regs_combine(), mark_user_reg(), mark_weak(), match_pattern_2(), match_reload(), match_rtx(), max_attr_value(), max_operand_1(), may_alias_p(), may_trap_p_1(), maybe_add_nop_after_section_switch(), maybe_emit_group_store(), maybe_fix_stack_asms(), maybe_merge_cfa_adjust(), maybe_propagate_label_ref(), maybe_record_trace_start(), maybe_reset_location_view(), maybe_swap_commutative_operands(), mem_autoinc_base(), mem_loc_descriptor(), memory_address_addr_space(), memory_operand(), memref_referenced_p(), memrefs_conflict_p(), mems_conflict_for_gcse_p(), mention_regs(), merge_equiv_classes(), merge_if_block(), merge_in_block(), merge_memattrs(), min_attr_value(), minmax_loc_descriptor(), mode_dependent_address_p(), modified_between_p(), modified_in_p(), move2add_note_store(), move2add_record_mode(), move2add_use_add2_insn(), move_deaths(), move_insn_for_shrink_wrap(), move_invariant_reg(), move_plus_up(), multiple_reg_loc_descriptor(), multiple_sets(), narrow_reload_pseudo_class(), native_encode_rtx(), need_fake_edge_p(), needs_barrier_p(), needs_variable(), new_elt_loc_list(), generic_subrtx_iterator< T >::next(), next_insn(), next_insn_no_annul(), no_conflict_move_test(), noce_bbs_ok_for_cond_zero_arith(), noce_can_force_operand(), noce_cond_zero_binary_op_supported(), noce_convert_multiple_sets_1(), noce_emit_cmove(), noce_emit_move_insn(), noce_emit_store_flag(), noce_get_alt_condition(), noce_get_condition(), noce_process_if_block(), noce_reversed_cond_code(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_ifelse_collapse(), noce_try_minmax(), noce_try_move(), noce_try_sign_mask(), noce_try_store_flag_constants(), non_suitable_const(), nonzero_address_p(), nonzero_bits1(), nonzero_bits_binary_arith_p(), noop_move_p(), note_pattern_stores(), note_sets_clobbers(), note_stores(), note_uses(), notice_stack_pointer_modification_1(), notify_dependents_of_changed_value(), notreg_cost(), num_sign_bit_copies1(), num_sign_bit_copies_binary_arith_p(), offset_address(), offset_within_block_p(), offsettable_address_addr_space_p(), old_insns_match_p(), one_cprop_pass(), onlyjump_p(), operand_for_swap_move_operator(), rtx_writer::operand_has_default_value_p(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), optimize_attrs(), optimize_bitfield_assignment_op(), optimize_skip(), ordered_comparison_operator(), outgoing_edges_match(), output_add_clobbers(), output_addr_const(), output_asm_label(), output_constant_pool_1(), output_constant_pool_2(), output_operand(), output_peephole2_scratches(), own_thread_p(), paradoxical_subreg_p(), parse_add_or_inc(), partial_subreg_p(), patch_jump_insn(), pattern_cost(), pc_set(), pieces_addr::pieces_addr(), place_block_symbol(), plus_constant(), plus_minus_operand_p(), pop_operand(), popcount_loc_descriptor(), pre_insert_copy_insn(), precompute_register_parameters(), predicate_name(), prepare_call_address(), prepare_call_arguments(), print_exp(), print_insn(), print_insn_with_notes(), print_pattern(), rtx_writer::print_rtl(), rtx_writer::print_rtx(), rtx_writer::print_rtx_operand(), rtx_writer::print_rtx_operand_code_0(), rtx_writer::print_rtx_operand_code_i(), rtx_writer::print_rtx_operand_code_u(), rtx_writer::print_rtx_operand_codes_E_and_V(), print_value(), process_addr_reg(), process_address_1(), process_alt_operands(), process_bb_node_lives(), process_define_constraint(), process_define_predicate(), process_define_subst(), process_rtx(), process_single_reg_class_operands(), process_substs_on_one_elem(), prune_expressions(), purge_dead_tablejump_edges(), push_operand(), push_reload(), read_complex_part(), read_md_rtx(), read_modify_subreg_p(), rtx_reader::read_rtx_code(), rtx_reader::read_rtx_operand(), function_reader::read_rtx_operand(), function_reader::read_rtx_operand_i_or_n(), function_reader::read_rtx_operand_u(), rtx_reader::read_rtx_variadic(), recog_for_combine(), recog_for_combine_1(), record_address_regs(), record_dead_and_set_regs_1(), record_jump_equiv(), record_last_set_info(), record_last_set_info(), record_operand_costs(), record_set(), record_set_data(), record_stack_refs(), record_store(), record_truncated_value(), record_value_for_reg(), redirect_exp_1(), redirect_jump_1(), redundant_insn(), references_value_p(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), refs_newer_value_p(), reg_bitfield_target_p(), reg_dead_at_p_1(), reg_mentioned_p(), reg_or_subregno(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), reg_subword_p(), register_operand(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), rehash_using_reg(), relax_delay_slots(), reload(), reload_as_needed(), reload_combine(), reload_combine_note_store(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), reload_cse_simplify_operands(), reload_inner_reg_of_subreg(), remove_clobbers(), remove_constraints(), remove_duplicate_values(), remove_inheritance_pseudos(), remove_insn(), remove_invalid_subreg_refs(), remove_pseudos(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_expr_with_values(), replace_label(), replace_oldest_value_addr(), replace_operands_with_dups(), replace_pseudos_in(), replace_read(), replace_rtx(), replaced_subreg(), reset_all_used_flags(), resolve_operand_for_swap_move_operator(), resolve_reg_p(), resolve_shift_zext(), resolve_simple_move(), resolve_subreg_p(), rest_of_clean_state(), return_insn_p(), returnjump_p(), reverse_op(), reversed_comparison_code(), reversed_comparison_code_parts(), rotate_loc_descriptor(), rtl_for_decl_location(), rtl_lv_add_condition_to_bb(), rtl_verify_bb_layout(), rtvec_all_equal_p(), rtx_addr_can_trap_p_1(), rtx_addr_varies_p(), rtx_cost(), rtx_debug_expr_p(), rtx_equal_for_cselib_1(), rtx_equal_for_field_assignment_p(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_interchangeable_p(), rtx_moveable_p(), rtx_referenced_p(), rtx_renumbered_equal_p(), rtx_size(), rtx_unstable_p(), rtx_varies_p(), safe_from_p(), same_dw_val_p(), save_call_clobbered_regs(), scan_insn(), scan_loop(), scan_one_insn(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), scan_rtx_reg(), scan_trace(), scratch_equal(), scratch_operand(), set_for_reg_notes(), set_label_offsets(), set_nonzero_bits_and_sign_copies(), set_noop_p(), set_paradoxical_subreg(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), set_reg_attrs_from_value(), set_return_jump_label(), set_rtl(), set_slot_part(), set_unique_reg_note(), setup_reg_equiv(), shallow_copy_rtx(), shared_const_p(), shorten_branches(), side_effects_p(), simple_move(), simple_move_operand(), simple_reg_p(), simple_regno_set(), simple_rhs_p(), simplejump_p(), simplify_and_const_int_1(), simplify_and_tree(), simplify_context::simplify_associative_operation(), simplify_context::simplify_binary_operation_1(), simplify_context::simplify_byte_swapping_operation(), simplify_comparison(), simplify_cond(), simplify_context::simplify_cond_clz_ctz(), simplify_const_binary_operation(), simplify_const_relational_operation(), simplify_const_unary_operation(), simplify_context::simplify_distributive_operation(), simplify_context::simplify_gen_subreg(), simplify_gen_subreg_concatn(), simplify_if_then_else(), simplify_logical(), simplify_context::simplify_logical_relational_operation(), simplify_context::simplify_merge_mask(), simplify_operand_subreg(), simplify_or_tree(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation(), simplify_context::simplify_relational_operation_1(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_subreg_concatn(), simplify_context::simplify_ternary_operation(), simplify_test_exp(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), simplify_using_initial_values(), simplify_while_replacing(), single_set(), single_set_2(), single_set_for_csa(), single_set_gcse(), skip_insns_after_block(), skip_usage_debug_insns(), sp_based_mem_offset(), special_predicate_operand_p(), split_const(), split_double(), split_if_necessary(), split_reg(), stack_adjust_offset_pre_post(), stack_adjust_offset_pre_post_cb(), stack_memref_p(), stop_search_p(), store_bit_field_1(), store_bit_field_using_insv(), store_data_bypass_p(), store_data_bypass_p_1(), store_expr(), store_field(), store_integral_bit_field(), store_killed_in_insn(), store_killed_in_pat(), store_one_arg(), store_split_bit_field(), store_unaligned_arguments_into_pseudos(), strip_address_mutations(), strip_offset(), strip_offset_and_add(), strip_paradoxical_subreg(), strip_subreg(), subreg_lowpart_p(), subst(), subst_dup(), subst_indexed_address(), subst_pattern_match(), subst_reg_equivs(), subst_reloads(), substitute(), substitute(), substitute_address(), tablejump_casesi_pattern(), tests_attr_p(), thread_jump(), tls_referenced_p(), gdbhooks.RtxPrinter::to_string(), transform_ifelse(), true_dependence_1(), true_regnum(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_emit_cmove_seq(), try_merge_delay_insns(), try_replace_in_use(), try_replace_reg(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_insn(), rtx_properties::try_to_add_pattern(), rtx_properties::try_to_add_src(), undefined_operand_subword_p(), undo_optional_reloads(), unique_base_value_p(), unsigned_reg_p(), unsuitable_loc(), update_equiv_regs(), update_live_status(), update_reg_equal_equiv_notes(), update_table_tick(), update_temp_slot_address(), use_anchored_address(), use_narrower_mode(), use_narrower_mode_test(), use_related_value(), use_type(), uses_hard_regs_p(), uses_rtx_reuse_p(), val_bind(), val_reset(), validate_autoinc_and_mem_addr_p(), validate_change_1(), validate_exp(), validate_pattern(), validate_replace_rtx_1(), validate_simplify_insn(), validate_test_and_branch(), variable_merge_over_cur(), variable_post_merge_new_vals(), vec_duplicate_p(), vec_series_p(), verify_changes(), verify_rtl_sharing(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), vt_add_function_parameter(), vt_canon_true_dep(), vt_canonicalize_addr(), vt_expand_loc_callback(), vt_expand_var_loc_chain(), vt_get_canonicalize_base(), vt_get_decl_and_offset(), vt_initialize(), walk_alter_subreg(), walk_attr_value(), walk_insn_part(), walk_rtx(), want_to_gcse_p(), widen_operand(), word_register_operation_p(), write_attr_set(), write_attr_value(), write_complex_part(), write_dependence_p(), write_insn_cases(), write_predicate_expr(), write_predicate_stmts(), and write_test_expr().

◆ GET_MODE

#define GET_MODE ( RTX)    ((machine_mode) (RTX)->mode)

Referenced by add_const_value_attribute(), add_equal_note(), add_regs_to_insn_regno_info(), add_removable_extension(), inchash::add_rtx(), add_stored_regs(), add_stores(), add_test(), add_uses(), addr_offset_valid_p(), addr_side_effect_eval(), address_operand(), adjust_address_1(), adjust_insn(), adjust_mems(), adjust_reg_mode(), allocate_basic_variable(), alter_reg(), alter_subreg(), analyze_insn_to_expand_var(), analyze_iv_to_split_insn(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), apply_distributive_law(), insn_propagation::apply_to_rvalue_1(), approx_reg_cost(), asm_operand_ok(), assemble_integer(), assign_mem_slot(), assign_parm_adjust_entry_rtl(), assign_parm_remove_parallels(), assign_parm_setup_block(), assign_parm_setup_block_p(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms_unsplit_complex(), assign_stack_temp_for_type(), attempt_change(), autoinc_split(), avoid_complex_debug_insns(), avoid_constant_pool_reference(), avoid_likely_spilled_reg(), base_plus_disp_to_reg(), base_to_reg(), bb_estimate_probability_locally(), bb_ok_for_noce_convert_multiple_sets(), find_comparison_dom_walker::before_dom_children(), break_out_memory_refs(), build_def_use(), calculate_elim_costs_all_insns(), calculate_equiv_gains(), can_assign_to_reg_without_clobbers_p(), can_change_dest_mode(), can_combine_p(), can_decompose_p(), can_eliminate_compare(), canon_address(), canon_condition(), canon_reg_for_combine(), canon_rtx(), canonicalize_address(), canonicalize_address_mult(), canonicalize_condition(), cc_in_cond(), change_address(), change_address_1(), change_zero_ext(), check_and_process_move(), check_cond_move_block(), check_mem_read_rtx(), check_new_reg_p(), check_secondary_memory_needed_p(), check_sibcall_argument_overlap_1(), choose_reload_regs(), cleanup_auto_inc_dec(), clear_storage(), clear_storage_hints(), clz_loc_descriptor(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_instructions(), combine_reaching_defs(), combine_set_extension(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), combine_temp_slots(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), comparison_operator(), complex_word_subreg_p(), compress_float_constant(), compute_ld_motion_mems(), compute_regs_asm_clobbered(), compute_reload_subreg_offset(), compute_transp(), concat_loc_descriptor(), concatn_loc_descriptor(), cond_exec_get_condition(), cond_exec_process_if_block(), cond_exec_process_insns(), consolidate_reg(), function_reader::consolidate_singletons(), const_double_operand(), const_rtx_hash_1(), const_vec_series_p_1(), const_vector_elt(), const_vector_int_elt(), constrain_operands(), contains_ccmode_rtx_p(), contains_reg_p(), convert_debug_memory_address(), convert_extracted_bit_field(), convert_memory_address_addr_space_1(), convert_mode_scalar(), convert_modes(), convert_move(), copy_blkmode_from_reg(), copy_to_mode_reg(), copy_to_reg(), copy_value(), copyprop_hardreg_forward_1(), create_insn_allocnos(), create_new_invariant(), cse_cc_succs(), cse_change_cc_mode(), cse_condition_code_reg(), cse_extended_basic_block(), cse_insn(), cse_process_note_1(), cselib_add_permanent_equiv(), cselib_expand_value_rtx_1(), cselib_hash_plus_const_int(), cselib_hash_rtx(), cselib_invalidate_mem(), cselib_invalidate_regno(), cselib_invalidate_rtx(), cselib_invalidated_by_call_p(), cselib_lookup_1(), cselib_lookup_mem(), cselib_record_autoinc_cb(), cselib_record_sets(), cselib_redundant_set_p(), cselib_reg_set_mode(), cselib_reset_table(), cselib_subst_to_values(), cst_pool_loc_descr(), curr_insn_transform(), dataflow_set_equiv_regs(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_or_predicable(), debug_lowpart_subreg(), decl_overlaps_hard_reg_set_p(), decl_piece_bitsize(), decl_piece_varloc_ptr(), decode_asm_operands(), decompose(), decompose_mem_address(), decompose_multiword_subregs(), decompose_register(), decrease_live_ranges_number(), default_memtag_set_tag(), default_unspec_may_trap_p(), delegitimize_mem_from_attrs(), delete_output_reload(), delete_trivially_dead_insns(), delete_unmarked_insns(), determine_block_size(), df_ref_change_reg_with_loc(), df_ref_record(), df_word_lr_mark_ref(), distribute_and_simplify_rtx(), do_compare_rtx_and_jump(), do_input_reload(), do_jump(), do_local_cprop(), do_output_reload(), do_remat(), do_store_flag(), do_SUBST(), doloop_modify(), doloop_simplify_count(), dw_loc_list_1(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_val_expression(), dwarf2out_frame_debug_expr(), dwf_cfa_reg(), eliminate_constant_term(), eliminate_partially_redundant_loads(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_effects(), emit_add3_insn(), address_reload_context::emit_autoinc(), emit_block_cmp_via_loop(), emit_block_move(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_cmp_and_jump_insns(), emit_conditional_add(), emit_conditional_move(), emit_conditional_move_1(), emit_group_load_1(), emit_group_load_into_temps(), emit_group_move_into_temps(), emit_group_store(), emit_inc(), emit_input_reload_insns(), emit_libcall_block_1(), emit_library_call_value_1(), emit_move_change_mode(), emit_move_insn(), emit_move_insn_1(), emit_note_insn_var_location(), emit_output_reload_insns(), emit_partition_copy(), emit_push_insn(), emit_reload_insns(), emit_spill_move(), emit_store_flag(), emit_store_flag_1(), emit_store_flag_force(), emit_store_flag_int(), emit_storent_insn(), entry_register(), cselib_hasher::equal(), const_poly_int_hasher::equal(), const_double_hasher::equal(), const_fixed_hasher::equal(), equiv_address_substitution(), equiv_constant(), equivalent_reg_at_start(), exact_int_to_float_conversion_p(), exp_equiv_p(), expand_abs(), expand_and(), expand_arith_overflow_result_store(), expand_asm_stmt(), expand_assignment(), expand_atomic_compare_and_swap(), expand_atomic_exchange(), expand_atomic_fetch_op(), expand_atomic_fetch_op_no_fallback(), expand_atomic_load(), expand_atomic_store(), expand_atomic_test_and_set(), expand_binop(), expand_binop_directly(), expand_builtin_apply(), expand_builtin_atomic_compare_exchange(), expand_builtin_bswap(), expand_builtin_extract_return_addr(), expand_builtin_feclear_feraise_except(), expand_builtin_fegetround(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_interclass_mathfn(), expand_builtin_issignaling(), expand_builtin_memcmp(), expand_builtin_powi(), expand_builtin_stpcpy_1(), expand_builtin_strcmp(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_thread_pointer(), expand_builtin_unop(), expand_call(), expand_clobber(), expand_compare_and_swap_loop(), expand_compound_operation(), expand_cond_expr_using_cmove(), expand_copysign(), expand_debug_expr(), expand_debug_locations(), expand_debug_parm_decl(), expand_debug_source_expr(), expand_dec(), expand_divmod(), expand_doubleword_mult(), expand_expr_addr_expr(), expand_expr_addr_expr_1(), expand_expr_force_mode(), expand_expr_real_1(), expand_expr_real_2(), expand_field_assignment(), expand_fix(), expand_fixed_convert(), expand_float(), expand_fn_using_insn(), expand_function_end(), expand_function_start(), expand_gimple_stmt_1(), expand_HWASAN_CHOOSE_TAG(), expand_ifn_atomic_compare_exchange(), expand_ifn_atomic_compare_exchange_into_call(), expand_inc(), expand_movstr(), expand_mult(), expand_mult_const(), expand_parity(), expand_POPCOUNT(), expand_return(), expand_SET_EDOM(), expand_sfix_optab(), expand_shift_1(), expand_single_bit_test(), expand_speculation_safe_value(), expand_twoval_binop(), expand_twoval_binop_libfunc(), expand_twoval_unop(), expand_unop(), expand_var_during_unrolling(), expand_vec_perm_1(), expand_vec_perm_const(), expand_vec_perm_var(), expand_vector_broadcast(), expand_vector_ubsan_overflow(), expand_widening_mult(), extract_bit_field(), extract_bit_field_1(), extract_bit_field_using_extv(), extract_insn(), extract_integral_bit_field(), extract_low_bits(), fill_slots_from_thread(), find_all_hard_regs(), find_and_remove_re(), find_args_size_adjust(), find_base_term(), find_base_value(), find_cc_set(), find_comparison_args(), find_cond_trap(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_dummy_reload(), find_equiv_reg(), find_identical_invariants(), find_inc(), find_inc_amount(), find_mem_conflicts(), find_moveable_pseudos(), find_moveable_store(), find_oldest_value_reg(), find_reg_offset_for_const(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_address_part(), find_reloads_subreg_address(), find_reloads_toplev(), find_replacement(), find_sets_in_insn(), find_shift_sequence(), find_split_point(), fold_rtx(), for_each_inc_dec_find_inc_dec(), force_int_to_mode(), force_not_mem(), force_operand(), force_reload_address(), force_to_mode(), form_sum(), form_sum(), forward_propagate_and_simplify(), forward_propagate_subreg(), free_load_extend(), gen_add2_insn(), gen_add3_insn(), gen_addptr3_insn(), gen_cond_trap(), gen_exp(), gen_group_rtx(), gen_highpart(), gen_highpart_mode(), gen_insn(), gen_lowpart_common(), gen_lowpart_for_combine(), gen_lowpart_for_debug(), gen_lowpart_general(), gen_lowpart_if_possible(), gen_lowpart_or_truncate(), gen_lowpart_SUBREG(), gen_reg_rtx_and_attrs(), gen_reload(), gen_rtx_scratch(), gen_rtx_SUBREG(), gen_sub2_insn(), gen_sub3_insn(), general_operand(), get_addr(), get_address_mode(), get_biv_step_1(), get_branch_condition(), get_call_args(), rtx_jump_table_data::get_data_mode(), get_dynamic_stack_size(), get_equiv_with_elimination(), get_hard_regno(), get_inv_cost(), get_last_value(), get_last_value_validate(), get_mem_attrs(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_reload_reg(), get_scratch_reg(), get_scratch_reg(), get_stored_val(), get_subreg_tracking_sizes(), go_through_subreg(), hard_function_value(), hard_reg_set_here_p(), has_hard_reg_initial_val(), pre_ldst_expr_hasher::hash(), st_expr_hasher::hash(), const_poly_int_hasher::hash(), const_double_hasher::hash(), const_fixed_hasher::hash(), hash_expr(), hash_invariant_expr_1(), hash_rtx(), hash_scan_set(), hash_scan_set(), hash_scan_set(), have_add2_insn(), have_addptr3_insn(), have_sub2_insn(), HONOR_INFINITIES(), HONOR_NANS(), HONOR_SIGN_DEPENDENT_ROUNDING(), HONOR_SIGNED_ZEROS(), HONOR_SNANS(), hwasan_truncate_to_tag_size(), if_then_else_cond(), immediate_operand(), implicit_set_cond_p(), implies_p(), in_class_p(), inc_for_reload(), pieces_addr::increment_address(), index_part_to_reg(), indirect_operand(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_curr_operand_mode(), init_eliminable_invariants(), initialize_uninitialized_regs(), insert_float(), insert_regs(), insert_restore(), insert_save(), insert_value_copy_on_edge(), insert_var_expansion_initialization(), insert_with_costs(), instantiate_virtual_regs_in_insn(), instantiate_virtual_regs_in_rtx(), inv_can_prop_to_addr_use(), invalidate(), invalidate_dest(), invalidate_for_call(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invalidate_reg(), invariant_expr_equal_p(), invariant_p(), invert_exp_1(), ira_create_new_reg(), ira_get_dup_out_num(), ira_implicitly_set_insn_hard_regs(), ira_remove_insn_scratches(), ira_restore_scratches(), ira_reuse_stack_slot(), iv_analyze_def(), iv_analyze_expr(), iv_analyze_op(), iv_mult(), iv_number_of_iterations(), iv_shift(), kill_autoinc_value(), kill_set_value(), kill_value(), known_cond(), ldst_entry(), load_kills_store(), loc_cmp(), loc_descriptor(), loc_equivalence_change_p(), loc_list_from_tree_1(), lookup_as_function(), lra_constraints(), lra_create_live_ranges_1(), lra_create_new_reg_with_unique_value(), lra_eliminate_regs_1(), lra_emit_add(), lra_spill(), lra_substitute_pseudo(), lsb_bitfield_op_p(), make_compound_operation(), make_compound_operation_int(), make_debug_expr_from_rtl(), make_decl_rtl(), make_extraction(), make_field_assignment(), make_memloc(), make_more_copies(), make_safe_from(), make_tree(), mark_mode_tests(), mark_not_eliminable(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_target_live_regs(), mark_used_regs_combine(), match_asm_constraints_1(), match_pattern_2(), match_reload(), match_rtx(), may_alias_p(), may_assign_reg_p(), may_trap_p_1(), maybe_emit_atomic_exchange(), maybe_emit_atomic_test_and_set(), maybe_emit_call_builtin___clear_cache(), maybe_emit_compare_and_swap_exchange_loop(), maybe_emit_group_store(), maybe_emit_op(), maybe_emit_sync_lock_test_and_set(), maybe_emit_unop_insn(), maybe_legitimize_operand(), maybe_memory_address_addr_space_p(), maybe_mode_change(), maybe_optimize_fetch_op(), maybe_swap_commutative_operands(), mem_loc_descriptor(), memory_address_addr_space(), memory_operand(), mems_conflict_for_gcse_p(), mention_regs(), merge_def_and_ext(), merge_memattrs(), move2add_note_store(), move2add_record_mode(), move2add_use_add3_insn(), move_deaths(), move_insn_for_shrink_wrap(), move_plus_up(), multiple_reg_loc_descriptor(), native_encode_rtx(), needs_variable(), noce_convert_multiple_sets_1(), noce_emit_cmove(), noce_emit_czero(), noce_emit_move_insn(), noce_emit_store_flag(), noce_find_if_block(), noce_get_alt_condition(), noce_get_condition(), noce_process_if_block(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_ifelse_collapse(), noce_try_inverse_constants(), noce_try_minmax(), noce_try_sign_mask(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), non_conflicting_reg_copy_p(), nonoverlapping_memrefs_p(), nonzero_bits(), nonzero_bits1(), note_sets_clobbers(), notreg_cost(), num_sign_bit_copies(), num_sign_bit_copies1(), offset_address(), offsettable_address_addr_space_p(), offsettable_memref_p(), offsettable_nonstrict_memref_p(), operand_for_swap_move_operator(), operand_subword(), operands_match_p(), operands_match_p(), optimize_bitfield_assignment_op(), ordered_comparison_operator(), output_peephole2_scratches(), paradoxical_subreg_p(), partial_subreg_p(), pattern_cost(), plus_constant(), pop_operand(), popcount_loc_descriptor(), prepare_call_address(), prepare_call_arguments(), prepare_cmp_insn(), prepare_copy_insn(), prepare_float_lib_cmp(), prepare_libcall_arg(), prepare_operand(), preserve_constants_and_equivs(), rtx_writer::print_rtx(), rtx_writer::print_rtx_operand_codes_E_and_V(), print_value(), probe_stack_range(), process_addr_reg(), process_address_1(), process_alt_operands(), process_bb_lives(), process_invariant_for_inheritance(), propagate_for_debug_subst(), push_operand(), push_reload(), push_secondary_reload(), read_complex_part(), read_modify_subreg_p(), rtx_reader::read_rtx_variadic(), recog_for_combine(), record_dead_and_set_regs_1(), record_entry_value(), record_hard_reg_sets(), record_jump_cond(), record_jump_cond_subreg(), record_last_set_info(), record_last_set_info(), record_operand_costs(), record_promoted_value(), record_reg_classes(), record_reg_sets(), record_store(), record_truncated_value(), record_value_for_reg(), reduce_to_bit_field_precision(), reg_bitfield_target_p(), reg_loc_descriptor(), reg_overlap_mentioned_for_reload_p(), reg_set_p(), reg_subword_p(), regrename_do_replace(), reload(), reload_adjust_reg_for_mode(), reload_adjust_reg_for_temp(), reload_as_needed(), reload_combine_note_store(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify_operands(), reload_cse_simplify_set(), remove_inheritance_pseudos(), remove_invalid_subreg_refs(), remove_pseudos(), replace_dead_reg(), replace_expr_with_values(), replace_oldest_value_mem(), replace_pseudos_in(), replace_read(), replace_reg_with_saved_mem(), replace_rtx(), requires_stack_frame_p(), resolve_clobber(), resolve_debug(), resolve_shift_zext(), resolve_simple_move(), resolve_subreg_use(), reverse_op(), reversed_comparison_code_parts(), reversed_condition(), rotate_loc_descriptor(), rtl_for_decl_location(), rtl_lv_add_condition_to_bb(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_field_assignment_p(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), safe_from_p(), save_call_clobbered_regs(), scan_loop(), scan_one_insn(), scan_operands(), scan_paradoxical_subregs(), scan_reads(), scan_rtx(), scan_rtx_address(), scompare_loc_descriptor(), scratch_operand(), set_mem_attributes_minus_bitpos(), set_mem_attrs(), set_nonzero_bits_and_sign_copies(), set_noop_p(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_from_value(), set_reload_reg(), set_rtl(), setup_incoming_promotions(), setup_reg_equiv(), setup_save_areas(), shape_of_subreg(), shift_return_value(), should_replace_address(), side_effects_p(), simple_mem(), simple_move(), simple_move_p(), simple_reg_p(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_compare_const(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_binary_operation(), simplify_const_relational_operation(), simplify_const_unary_operation(), simplify_const_vector_byte_offset(), simplify_context::simplify_gen_subreg(), simplify_gen_subreg_concatn(), simplify_context::simplify_gen_vec_select(), simplify_if_then_else(), simplify_logical(), simplify_context::simplify_logical_relational_operation(), simplify_context::simplify_merge_mask(), simplify_operand_subreg(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation(), simplify_context::simplify_relational_operation_1(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_subreg_concatn(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), single_reg_class(), sjlj_mark_call_sites(), split_double(), split_iv(), split_reg(), st_expr_entry(), store_bit_field_1(), store_bit_field_using_insv(), store_constructor(), store_constructor_field(), store_expr(), store_field(), store_integral_bit_field(), store_split_bit_field(), strip_paradoxical_subreg(), subreg_lowpart_p(), subreg_lsb(), subreg_memory_offset(), subreg_nregs_with_regno(), subreg_promoted_mode(), subreg_regno(), subreg_unpromoted_mode(), subst(), subst_indexed_address(), subst_mode(), subst_pattern_match(), subst_reloads(), temp_slot_address_compute_hash(), track_expr_p(), track_loc_p(), transform_ifelse(), true_dependence_1(), true_regnum(), truncated_to_mode(), try_apply_stack_adjustment(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_merge(), try_merge_compare(), try_replace_in_use(), try_shrink_wrapping(), try_store_by_multiple_pieces(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_reg(), rtx_properties::try_to_add_src(), ucompare_loc_descriptor(), undefined_operand_subword_p(), unique_base_value_p(), update_rsp_from_reg_equal(), update_scratch_ops(), use_anchored_address(), use_narrower_mode(), use_narrower_mode_test(), use_related_value(), use_type(), uses_hard_regs_p(), val_resolve(), valid_multiword_target_p(), validate_autoinc_and_mem_addr_p(), validate_pattern(), validate_replace_rtx_1(), validize_mem(), var_lowpart(), variable_merge_over_cur(), variable_post_merge_new_vals(), variable_post_merge_perm_vals(), vec_duplicate_p(), vector_compare_rtx(), vectorizable_store(), verify_changes(), vt_add_function_parameter(), vt_canon_true_dep(), vt_canonicalize_addr(), vt_expand_loc_callback(), vt_init_cfa_base(), vt_initialize(), want_to_gcse_p(), widen_operand(), widened_mode(), wider_subreg_mode(), word_dce_process_block(), write_complex_part(), write_dependence_p(), write_predicate_expr(), write_test_expr(), and zcur_select_mode_rtx().

◆ GET_NOTE_INSN_NAME

#define GET_NOTE_INSN_NAME ( NOTE_CODE)     (note_insn_name[(NOTE_CODE)])

◆ GET_NUM_ELEM

◆ GET_REG_NOTE_NAME

#define GET_REG_NOTE_NAME ( MODE)    (reg_note_name[(int) (MODE)])

◆ GET_RTX_CLASS

◆ GET_RTX_FORMAT

#define GET_RTX_FORMAT ( CODE)    (rtx_format[(int) (CODE)])

Referenced by add_auto_inc_notes(), add_constraints(), add_label_notes(), add_regs_to_insn_regno_info(), inchash::add_rtx(), generic_subrtx_iterator< T >::add_subrtxes_to_queue(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), apply_int_iterator(), insn_propagation::apply_to_rvalue_1(), attr_rtx_1(), attr_rtx_cost(), avoid_complex_debug_insns(), bad_for_rematerialization_p(), can_have_basic_block_p(), canon_reg(), canon_reg_for_combine(), change_regs(), check_eliminable_occurrences(), check_maybe_invariant(), check_promoted_subreg(), check_sibcall_argument_overlap_1(), cleanup_auto_inc_dec(), clear_struct_flag(), collect_insn_data(), collect_non_operand_hard_regs(), compares_alternatives_p(), compute_transp(), computed_jump_p_1(), contains_reg_p(), copy_insn_1(), copy_replacements_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), create_insn_allocnos(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_subst_to_values(), dead_pseudo_p(), delete_address_reloads_1(), df_uses_record(), eliminate_regs_1(), elimination_effects(), equiv_init_movable_p(), equiv_init_varies_p(), exp_equiv_p(), extract_mem_from_operand(), find_address(), find_inc_amount(), find_loads(), find_matching_operand(), find_mem(), find_operand(), find_reloads_address_1(), find_reloads_toplev(), find_single_use_1(), find_split_point(), find_subregs_of_mode(), find_used_regs(), fold_rtx(), gen_exp(), get_alternatives_number(), get_equiv_regno(), get_last_value_validate(), get_pattern_stats_1(), hash_invariant_expr_1(), hash_rtx(), invalidate_any_buried_refs(), invariant_expr_equal_p(), invariant_p(), known_cond(), loc_cmp(), loc_equivalence_change_p(), loc_mentioned_in_p(), lra_eliminate_regs_1(), lra_rtx_hash(), lra_substitute_pseudo(), make_compound_operation(), mark_jump_label_1(), mark_label_nuses(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_flags(), mark_used_regs_combine(), match_pattern_2(), match_rtx(), max_operand_1(), may_trap_p_1(), memref_referenced_p(), mention_regs(), merge_memattrs(), modified_between_p(), modified_in_p(), move_deaths(), rtx_writer::operand_has_default_value_p(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), rtx_writer::print_rtx_operand(), rtx_reader::read_rtx_code(), rtx_reader::read_rtx_operand(), function_reader::read_rtx_operand(), record_address_regs(), redirect_exp_1(), references_value_p(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_mentioned_p(), reg_overlap_mentioned_p(), reg_scan_mark_refs(), regno_use_in(), regno_val_use_in(), reload_combine_note_use(), remove_constraints(), remove_pseudos(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_oldest_value_addr(), replace_operands_with_dups(), replace_pseudos_in(), replace_rtx(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_moveable_p(), rtx_renumbered_equal_p(), rtx_unstable_p(), rtx_varies_p(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), setup_reg_subrtx_bounds(), side_effects_p(), simplify_replace_fn_rtx(), subst(), subst_dup(), subst_pattern_match(), subst_reg_equivs(), substitute(), substitute(), tests_attr_p(), gdbhooks.RtxPrinter::to_string(), update_table_tick(), uses_hard_regs_p(), validate_autoinc_and_mem_addr_p(), validate_pattern(), validate_replace_rtx_1(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), walk_attr_value(), walk_insn_part(), and walk_rtx().

◆ GET_RTX_LENGTH

#define GET_RTX_LENGTH ( CODE)    (rtx_length[(int) (CODE)])

Referenced by add_auto_inc_notes(), add_constraints(), add_label_notes(), add_regs_to_insn_regno_info(), inchash::add_rtx(), generic_subrtx_iterator< T >::add_subrtxes_to_queue(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), attr_rtx_1(), attr_rtx_cost(), avoid_complex_debug_insns(), bad_for_rematerialization_p(), canon_reg(), canon_reg_for_combine(), change_regs(), check_eliminable_occurrences(), check_maybe_invariant(), check_promoted_subreg(), check_sibcall_argument_overlap_1(), cleanup_auto_inc_dec(), clear_struct_flag(), collect_insn_data(), collect_non_operand_hard_regs(), compares_alternatives_p(), compute_transp(), computed_jump_p_1(), condition_dominates_p(), contains_reg_p(), copy_insn_1(), copy_replacements_1(), copy_rtx(), copy_rtx_if_shared_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), create_insn_allocnos(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_subst_to_values(), dead_pseudo_p(), delete_address_reloads_1(), df_uses_record(), eliminate_regs_1(), elimination_effects(), equiv_init_movable_p(), equiv_init_varies_p(), exp_equiv_p(), extract_mem_from_operand(), find_address(), find_inc_amount(), find_loads(), find_matching_operand(), find_mem(), find_operand(), find_reloads_address_1(), find_reloads_toplev(), find_single_use_1(), find_subregs_of_mode(), find_used_regs(), fold_rtx(), gen_exp(), get_alternatives_number(), get_equiv_regno(), get_last_value_validate(), get_pattern_stats_1(), hash_invariant_expr_1(), hash_rtx(), invalidate_any_buried_refs(), invariant_expr_equal_p(), invariant_p(), known_cond(), loc_cmp(), loc_equivalence_change_p(), loc_mentioned_in_p(), lra_eliminate_regs_1(), lra_rtx_hash(), lra_substitute_pseudo(), make_compound_operation(), mark_jump_label_1(), mark_label_nuses(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_flags(), mark_used_regs_combine(), match_rtx(), max_operand_1(), may_trap_p_1(), memref_referenced_p(), mention_regs(), merge_memattrs(), modified_between_p(), modified_in_p(), move_deaths(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), rtx_writer::print_rtx(), record_address_regs(), redirect_exp_1(), references_value_p(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_mentioned_p(), reg_overlap_mentioned_p(), reg_scan_mark_refs(), regno_use_in(), regno_val_use_in(), reload_combine_note_use(), remove_constraints(), remove_pseudos(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_oldest_value_addr(), replace_operands_with_dups(), replace_pseudos_in(), replace_rtx(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_moveable_p(), rtx_renumbered_equal_p(), rtx_unstable_p(), rtx_varies_p(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), side_effects_p(), subst(), subst_dup(), subst_pattern_match(), subst_reg_equivs(), substitute(), substitute(), tests_attr_p(), gdbhooks.RtxPrinter::to_string(), update_table_tick(), uses_hard_regs_p(), validate_autoinc_and_mem_addr_p(), validate_pattern(), validate_replace_rtx_1(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), walk_attr_value(), walk_insn_part(), and walk_rtx().

◆ GET_RTX_NAME

◆ global_rtl

#define global_rtl    (this_target_rtl->x_global_rtl)

◆ HARD_FRAME_POINTER_IS_ARG_POINTER

#define HARD_FRAME_POINTER_IS_ARG_POINTER    (HARD_FRAME_POINTER_REGNUM == ARG_POINTER_REGNUM)

◆ HARD_FRAME_POINTER_IS_FRAME_POINTER

◆ HARD_FRAME_POINTER_REGNUM

◆ hard_frame_pointer_rtx

◆ HARD_REGISTER_NUM_P

◆ HARD_REGISTER_P

#define HARD_REGISTER_P ( REG)    HARD_REGISTER_NUM_P (REGNO (REG))
1 if the given register REG corresponds to a hard register.   

Referenced by alter_subreg(), insn_propagation::apply_to_rvalue_1(), assign_parm_setup_reg(), avoid_likely_spilled_reg(), baseness(), can_combine_p(), can_move_invariant_reg(), canon_asm_operands(), cant_combine_insn_p(), change_zero_ext(), check_cond_move_block(), choose_reload_regs(), compress_float_constant(), convert_modes(), cprop_reg_p(), cselib_record_sets(), deletable_insn_p(), df_find_hard_reg_defs_1(), do_input_reload(), emit_group_load_1(), emit_move_complex(), emit_output_reload_insns(), emit_reload_insns(), expand_asm_stmt(), expand_call(), expand_cmpstr(), expand_cmpstrn_or_cmpmem(), expand_debug_parm_decl(), expand_expr_real_1(), extract_integral_bit_field(), find_call_crossed_cheap_reg(), find_invariant_insn(), gen_memset_value_from_prev(), interesting_dest_for_shprep_1(), internal_arg_pointer_based_exp(), internal_arg_pointer_based_exp_scan(), look_for_hardregs(), make_more_copies(), mark_referenced_resources(), mark_set_resources(), may_assign_reg_p(), noce_process_if_block(), note_sets_clobbers(), prepare_shrink_wrap(), process_alt_operands(), process_bb_lives(), process_register_constraint_filters(), process_regs_for_copy(), record_hard_reg_sets(), record_reg_sets(), reload_inner_reg_of_subreg(), rtx_moveable_p(), save_call_clobbered_regs(), set_noop_p(), set_reg_attrs_from_value(), shift_return_value(), simple_rhs_p(), simplify_context::simplify_subreg(), store_integral_bit_field(), strip_paradoxical_subreg(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_fwprop_subst(), use_reg_mode(), validate_subreg(), and vt_add_function_parameter().

◆ HAVE_POST_DECREMENT

#define HAVE_POST_DECREMENT   0

◆ HAVE_POST_INCREMENT

#define HAVE_POST_INCREMENT   0

◆ HAVE_POST_MODIFY_DISP

#define HAVE_POST_MODIFY_DISP   0

Referenced by init_decision_table().

◆ HAVE_POST_MODIFY_REG

#define HAVE_POST_MODIFY_REG   0

◆ HAVE_PRE_DECREMENT

#define HAVE_PRE_DECREMENT   0

◆ HAVE_PRE_INCREMENT

#define HAVE_PRE_INCREMENT   0

Referenced by fold_rtx(), and init_decision_table().

◆ HAVE_PRE_MODIFY_DISP

#define HAVE_PRE_MODIFY_DISP   0

Referenced by init_decision_table().

◆ HAVE_PRE_MODIFY_REG

#define HAVE_PRE_MODIFY_REG   0

◆ HWIVEC_CHECK

#define HWIVEC_CHECK ( RTX,
C )   (&(RTX)->u.hwiv)

◆ IGNORED_DWARF_REGNUM

#define IGNORED_DWARF_REGNUM   (INVALID_REGNUM - 1)
REGNUM for which no debug information can be generated.   

Referenced by mem_loc_descriptor(), and reg_loc_descriptor().

◆ INSN_ANNULLED_BRANCH_P

◆ INSN_CHAIN_CODE_P

#define INSN_CHAIN_CODE_P ( CODE)    IN_RANGE (CODE, DEBUG_INSN, NOTE)
True if CODE is part of the insn chain (i.e. has INSN_UID, PREV_INSN
and NEXT_INSN fields).   

Referenced by rtx_writer::print_rtx(), rtx_writer::print_rtx_operand_code_u(), and rtx_reader::read_rtx_code().

◆ INSN_CODE

◆ INSN_DEBUG_MARKER_KIND

#define INSN_DEBUG_MARKER_KIND ( INSN)
Value:
: (enum insn_note)-1) \
: (enum insn_note)-1)
insn_note
Definition rtl.h:1793
#define GET_MODE(RTX)
Definition rtl.h:728
Evaluate to the marker kind.   

Referenced by print_insn(), and reemit_marker_as_note().

◆ INSN_FROM_TARGET_P

#define INSN_FROM_TARGET_P ( RTX)
Value:
(RTL_FLAG_CHECK3 ("INSN_FROM_TARGET_P", (RTX), INSN, JUMP_INSN, \
CALL_INSN)->in_struct)
#define RTL_FLAG_CHECK3(NAME, RTX, C1, C2, C3)
Definition rtl.h:1338
1 if RTX is an insn in a delay slot and is from the target of the branch.
If the branch insn has INSN_ANNULLED_BRANCH_P set, this insn should only be
executed if the branch is taken.  For annulled branches with this bit
clear, the insn should be executed only if the branch is not taken.   

Referenced by check_annul_list_true_false(), dbr_schedule(), delete_from_delay_slot(), fill_slots_from_thread(), find_dead_or_set_registers(), make_return_insns(), mark_set_resources(), mark_target_live_regs(), next_insn_no_annul(), optimize_skip(), redirect_with_delay_list_safe_p(), redirect_with_delay_slots_safe_p(), redundant_insn(), relax_delay_slots(), scan_trace(), steal_delay_list_from_target(), and try_merge_delay_insns().

◆ INSN_P

#define INSN_P ( X)    (NONDEBUG_INSN_P (X) || DEBUG_INSN_P (X))
Predicate yielding nonzero iff X is a real insn.   

Referenced by _succ_iter_start(), add_equal_note(), add_insn_after(), add_insn_before(), add_store_equivs(), generic_subrtx_iterator< T >::add_subrtxes_to_queue(), alloc_mem(), analyze_insns_in_loop(), apply_opt_in_copies(), assign_parm_setup_reg(), block_jumps_and_fallthru(), bypass_conditional_jumps(), calculate_elim_costs_all_insns(), calculate_gen_cands(), calculate_needs_all_insns(), can_combine_p(), can_throw_external(), cfg_layout_can_duplicate_bb_p(), change_loop(), check_secondary_memory_needed_p(), check_sibcall_argument_overlap(), cleanup_auto_inc_dec(), combine_instructions(), combine_stack_adjustments_for_block(), compute_hash_table(), cond_exec_process_if_block(), confirm_change_group(), contains_call_div_mod(), contains_no_active_insn_p(), convert_to_eh_region_ranges(), copy_bb_p(), copy_insn_1(), copy_reg_eh_region_note_backward(), copy_reg_eh_region_note_forward(), cse_cc_succs(), cse_change_cc_mode_insn(), cse_change_cc_mode_insns(), cse_condition_code_reg(), cse_extended_basic_block(), cse_prescan_path(), cselib_process_insn(), dbr_schedule(), dce_process_block(), dead_or_predicable(), decompose_multiword_subregs(), decrease_live_ranges_number(), delete_address_reloads_1(), delete_insn(), delete_noop_moves(), delete_related_insns(), delete_trivially_dead_insns(), df_bb_refs_record(), df_bb_regno_first_def_find(), df_bb_regno_last_def_find(), df_bb_verify(), df_chain_create_bb(), df_chain_insn_bottom_dump(), df_chain_insn_top_dump(), df_chain_remove_problem(), df_insn_change_bb(), df_insn_delete(), df_insn_rescan(), df_live_bb_local_compute(), df_md_bb_local_compute(), df_mir_bb_local_compute(), df_note_bb_compute(), df_rd_bb_local_compute(), df_recompute_luids(), df_reorganize_refs_by_insn_bb(), df_reorganize_refs_by_reg_by_insn(), df_scan_free_bb_info(), df_scan_start_block(), df_scan_start_dump(), df_simulate_one_insn_forwards(), df_update_entry_exit_and_calls(), distribute_links(), distribute_notes(), doloop_condition_get(), dse_step1(), dse_step3_scan(), dse_step5(), dse_step6(), eliminate_partially_redundant_loads(), emit_output_reload_insns(), emit_pattern_after(), emit_pattern_before(), expand_binop_directly(), expand_unop_direct(), find_call_crossed_cheap_reg(), find_dead_or_set_registers(), find_equiv_reg(), find_first_parameter_load(), find_jump_block(), find_reg_equal_equiv_note(), find_reg_note(), find_regno_note(), find_shift_sequence(), fixup_abnormal_edges(), fixup_reorder_chain(), flow_find_cross_jump(), flow_find_head_matching_sequence(), get_eh_region_and_lp_from_rtx(), get_loop_location(), inherit_in_ebb(), init_eliminable_invariants(), init_elimination(), init_label_info(), insert_insn_end_basic_block(), insn_could_throw_p(), insn_nothrow_p(), instantiate_virtual_regs(), interesting_dest_for_shprep(), ira_emit(), keep_with_call_p(), likely_spilled_retval_p(), local_cprop_pass(), loop_exit_at_end_p(), lra_coalesce(), lra_constraints(), lra_final_code_change(), lra_update_insn_regno_info(), make_insn_raw(), mark_constants(), mark_target_live_regs(), maybe_duplicate_computed_goto(), maybe_emit_unop_insn(), maybe_fix_stack_asms(), memory_modified_in_insn_p(), move_insn_for_shrink_wrap(), multiple_sets(), need_fake_edge_p(), next_real_insn(), noce_get_alt_condition(), one_cprop_pass(), outgoing_edges_match(), peep2_update_life(), prev_real_insn(), print_insn_with_notes(), print_pattern(), rtx_writer::print_rtx_operand_code_e(), rtx_writer::print_rtx_operand_code_i(), rtx_writer::print_rtx_operand_code_r(), rtx_writer::print_rtx_operand_code_u(), push_insns(), function_reader::read_rtx_operand_i_or_n(), redundant_insn(), reg_dead_at_p(), reg_inc_found_and_valid_p(), reg_killed_on_edge(), reg_killed_on_edge(), reg_scan(), reg_set_between_p(), reg_set_p(), reg_used_on_edge(), reload(), reload_as_needed(), reload_combine(), reload_cse_move2add(), reload_cse_regs_1(), remove_inheritance_pseudos(), remove_scratches(), remove_scratches(), reset_all_used_flags(), reset_insn_used_flags(), reverse_equiv_p(), rtl_account_profile_record(), rtl_predicted_by_p(), set_for_reg_notes(), set_insn_deleted(), set_insn_locations(), set_of(), setup_sp_offset(), shallow_copy_rtx(), shorten_branches(), simplify_using_initial_values(), single_set(), single_set_gcse(), sjlj_mark_call_sites(), skip_consecutive_labels(), spill_hard_reg_in_range(), split_all_insns(), split_all_insns_noflow(), split_insn(), is_a_helper< T >::test(), is_a_helper< T >::test(), thread_jump(), try_combine(), try_forward_edges(), try_split(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), update_equiv_regs(), validate_equiv_mem(), verify_insn_sharing(), verify_rtl_sharing(), vt_initialize(), vt_stack_adjustments(), and word_dce_process_block().

◆ INSN_VAR_LOCATION

#define INSN_VAR_LOCATION ( INSN)     (RTL_FLAG_CHECK1 ("INSN_VAR_LOCATION", PATTERN (INSN), VAR_LOCATION))
The VAR_LOCATION rtx in a DEBUG_INSN.   

Referenced by expand_debug_locations().

◆ INSN_VAR_LOCATION_DECL

#define INSN_VAR_LOCATION_DECL ( INSN)     PAT_VAR_LOCATION_DECL (INSN_VAR_LOCATION (INSN))

◆ INSN_VAR_LOCATION_LOC

◆ INSN_VAR_LOCATION_PTR

#define INSN_VAR_LOCATION_PTR ( INSN)     (&PATTERN (INSN))
A pointer to the VAR_LOCATION rtx in a DEBUG_INSN.   

Referenced by instantiate_virtual_regs().

◆ INSN_VAR_LOCATION_STATUS

#define INSN_VAR_LOCATION_STATUS ( INSN)     PAT_VAR_LOCATION_STATUS (INSN_VAR_LOCATION (INSN))

Referenced by expand_debug_locations().

◆ INTVAL

#define INTVAL ( RTX)    XCWINT (RTX, 0, CONST_INT)
For a CONST_INT rtx, INTVAL extracts the integer.   

Referenced by add_const_value_attribute(), inchash::add_rtx(), allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asm_operand_ok(), assign_parm_adjust_entry_rtl(), attr_value_alignment(), autoinc_split(), avoid_expensive_constant(), base_alias_check(), can_nonlocal_goto(), canonicalize_address_mult(), canonicalize_condition(), canonicalize_reload_addr(), change_zero_ext(), check_attr_value(), clear_storage_hints(), clz_loc_descriptor(), combine_predictions_for_insn(), combine_set_extension(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), compute_stack_clash_protection_loop_data(), function_reader::consolidate_singletons(), const_int_operand(), const_rtx_hash_1(), cse_insn(), cselib_hash_rtx(), cselib_subst_to_values(), decl_piece_bitsize(), wi::int_traits< rtx_mode_t >::decompose(), decompose(), delete_address_reloads(), determine_max_iter(), distribute_notes(), do_SUBST(), do_tablejump(), dw2_assemble_integer(), dw2_fix_up_crossing_landing_pad(), dwarf2out_frame_debug_expr(), eliminate_regs_1(), eliminate_regs_in_insn(), elimination_effects(), emit_block_cmp_hints(), emit_block_move_hints(), emit_block_move_via_pattern(), emit_libcall_block_1(), emit_push_insn(), emit_store_flag(), emit_store_flag_int(), const_int_hasher::equal(), expand_binop(), expand_builtin_apply(), expand_builtin_memcmp(), expand_builtin_memory_copy_args(), expand_builtin_prefetch(), expand_builtin_stpcpy_1(), expand_compound_operation(), expand_divmod(), expand_DIVMOD(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_expr_real_2(), expand_field_assignment(), expand_mult(), expand_shift_1(), expand_widening_mult(), expmed_mult_highpart(), extract_left_shift(), find_address(), find_base_term(), find_base_value(), find_decomposable_shift_zext(), find_inc_amount(), find_mem(), find_reg_offset_for_const(), find_reloads(), find_reloads_address(), find_split_point(), fold_builtin_atomic_always_lock_free(), fold_rtx(), force_int_to_mode(), force_reg(), force_to_mode(), form_sum(), gen_exp(), general_operand(), get_call_args(), get_dynamic_stack_size(), get_eh_region_and_lp_from_rtx(), get_index_scale(), get_integer_term(), get_memmodel(), get_stored_val(), const_int_hasher::hash(), hash_rtx(), immediate_operand(), implies_p(), inc_for_reload(), invert_br_probabilities(), ira_setup_alts(), iv_number_of_iterations(), loc_descriptor(), loc_list_from_tree_1(), lra_eliminate_regs_1(), lsb_bitfield_op_p(), make_canonical(), make_compound_operation_int(), make_extraction(), make_field_assignment(), max_attr_value(), mem_loc_descriptor(), memory_load_overlap(), memrefs_conflict_p(), min_attr_value(), mode_signbit_p(), move2add_note_store(), move2add_record_sym_value(), move2add_use_add2_insn(), native_encode_rtx(), noce_emit_move_insn(), noce_get_alt_condition(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove(), noce_try_inverse_constants(), noce_try_store_flag(), noce_try_store_flag_constants(), nonzero_address_p(), nonzero_bits1(), num_sign_bit_copies1(), operand_for_swap_move_operator(), output_addr_const(), output_asm_insn(), output_constant_pool_2(), parse_add_or_inc(), poly_int_rtx_p(), print_exp(), print_value(), probe_stack_range(), process_alt_operands(), record_one_stack_ref(), record_reg_classes(), resolve_shift_zext(), reverse_rotate_by_imm_p(), round_push(), rtl_predicted_by_p(), rtvec_series_p(), rtx_to_double_int(), rtx_to_poly_int64(), scan_insn(), scompare_loc_descriptor_narrow(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), set_storage_via_setmem(), sign_extend_short_imm(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_compare_const(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_relational_operation(), simplify_logical(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation_1(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), sjlj_fix_up_crossing_landing_pad(), sjlj_output_call_site_table(), sjlj_size_of_call_site_table(), sp_based_mem_offset(), split_double(), stack_adjust_offset_pre_post(), stack_adjust_offset_pre_post_cb(), store_bit_field_using_insv(), store_expr(), store_one_arg(), store_split_bit_field(), try_combine(), ucompare_loc_descriptor(), update_reg_equal_equiv_notes(), use_anchored_address(), vt_canonicalize_addr(), vt_get_canonicalize_base(), and write_attr_value().

◆ INVALID_REGNUM

◆ JUMP_LABEL

#define JUMP_LABEL ( INSN)    XCEXP (INSN, 7, JUMP_INSN)
In jump.cc, each JUMP_INSN can point to a label that it can jump to,
so that if the JUMP_INSN is deleted, the label's LABEL_NUSES can
be decremented and possibly the label can be deleted.   

Referenced by add_labels_and_missing_jumps(), add_test(), compare_and_jump_seq(), computed_jump_p(), cond_exec_get_condition(), condition_dominates_p(), cprop_jump(), create_eh_forwarder_block(), cse_insn(), dbr_schedule(), dead_or_predicable(), delete_insn(), delete_related_insns(), discover_loop(), distribute_notes(), doloop_modify(), duplicate_insn_chain(), fill_eager_delay_slots(), fill_simple_delay_slots(), fill_slots_from_thread(), final_forward_branch_p(), find_cond_trap(), find_dead_or_set_registers(), find_if_case_1(), fix_crossing_unconditional_branches(), fixup_reorder_chain(), follow_jumps(), force_nonfallthru_and_redirect(), get_condition(), handle_simple_exit(), insn_current_reference_address(), invert_jump(), invert_jump_1(), rtx_jump_insn::jump_label(), JUMP_LABEL_AS_INSN(), rtx_jump_insn::jump_target(), jump_to_label_p(), label_is_jump_target_p(), make_edges(), make_jump_insn_raw(), make_return_insns(), mark_all_labels(), mark_jump_label_1(), maybe_propagate_label_ref(), noce_emit_store_flag(), noce_get_alt_condition(), noce_get_condition(), optimize_skip(), patch_jump_insn(), rtx_writer::print_rtx_operand_code_0(), purge_dead_edges(), redirect_jump_1(), redirect_jump_2(), relax_delay_slots(), reload_combine(), replace_label(), rtl_lv_add_condition_to_bb(), rtl_split_edge(), rtl_verify_edges(), set_edge_can_fallthru_flag(), rtx_jump_insn::set_jump_target(), set_return_jump_label(), steal_delay_list_from_fallthrough(), steal_delay_list_from_target(), tablejump_p(), try_merge_delay_insns(), try_optimize_cfg(), and try_redirect_by_replacing_jump().

◆ JUMP_P

#define JUMP_P ( X)    (GET_CODE (X) == JUMP_INSN)
Predicate yielding nonzero iff X is a jump insn.   

Referenced by active_insn_p(), add_label_notes(), add_reg_br_prob_note(), add_test(), asan_clear_shadow(), bb_valid_for_noce_process_p(), block_jumps_and_fallthru(), bypass_conditional_jumps(), calculate_elim_costs_all_insns(), calculate_needs_all_insns(), can_combine_p(), can_predict_insn_p(), cfg_layout_can_merge_blocks_p(), cfg_layout_merge_blocks(), cfg_layout_redirect_edge_and_branch(), check_cond_move_block(), check_for_label_ref(), clear_hashed_info_until_next_barrier(), combine_and_move_insns(), commit_one_edge_insertion(), computed_jump_p(), cond_exec_find_if_block(), cond_move_convert_if_block(), contains_no_active_insn_p(), count_bb_insns(), create_preheader(), create_trace_edges(), cse_condition_code_reg(), cse_extended_basic_block(), curr_insn_transform(), dbr_schedule(), dead_or_predicable(), delete_address_reloads_1(), delete_from_delay_slot(), delete_insn(), delete_output_reload(), discover_loops(), distribute_notes(), doloop_optimize(), duplicate_insn_chain(), eh_returnjump_p(), emit_cmp_and_jump_insn_1(), end_ifcvt_sequence(), expand_addsub_overflow(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_gimple_basic_block(), expand_mul_overflow(), expand_neg_overflow(), fill_simple_delay_slots(), fill_slots_from_thread(), find_active_insn_after(), find_active_insn_before(), find_dead_or_set_registers(), find_end_label(), find_if_case_1(), find_if_case_2(), find_invariant_insn(), find_jump_block(), find_many_sub_basic_blocks(), find_reloads(), first_active_insn(), fix_crossing_unconditional_branches(), fix_up_fall_thru_edges(), fixup_partition_crossing(), flow_find_head_matching_sequence(), follow_jumps(), force_nonfallthru_and_redirect(), forward_propagate_into(), get_condition(), get_jump_flags(), get_live_on_other_edges(), hash_scan_set(), hash_scan_set(), if_test_bypass_p(), indirect_jump_optimize(), inherit_in_ebb(), insert_insn_end_basic_block(), instantiate_virtual_regs_in_insn(), ira(), ira_nullify_asm_goto(), jump_to_label_p(), last_active_insn(), lra_asm_insn_error(), lra_process_new_insns(), make_epilogue_seq(), make_return_insns(), mark_all_labels(), mark_jump_label(), mark_set_resources(), mark_target_live_regs(), maybe_cleanup_end_of_block(), maybe_duplicate_computed_goto(), merge_if_block(), merge_in_block(), move_invariant_reg(), next_insn_no_annul(), noce_convert_multiple_sets(), onlyjump_p(), operand_to_remat(), outgoing_edges_match(), pc_set(), peep2_attempt(), prepare_call_address(), prepare_shrink_wrap(), rtx_writer::print_rtx_operand_code_0(), purge_dead_edges(), redirect_branch_edge(), redundant_insn(), relax_delay_slots(), reorder_basic_blocks_simple(), replace_label(), return_insn_p(), returnjump_p(), rtl_can_merge_blocks(), rtl_merge_blocks(), rtl_split_edge(), rtl_tidy_fallthru_edge(), rtl_verify_bb_layout(), rtl_verify_edges(), save_call_clobbered_regs(), scan_trace(), simplejump_or_return_p(), simplejump_p(), sjlj_emit_function_enter(), stack_protect_epilogue(), subst_reloads(), tablejump_p(), is_a_helper< T >::test(), is_a_helper< T >::test(), tidy_fallthru_edges(), try_combine(), try_merge_delay_insns(), try_optimize_cfg(), try_shrink_wrapping(), try_split(), update_br_prob_note(), and update_crossing_jump_flags().

◆ JUMP_TABLE_DATA_P

◆ LABEL_ALT_ENTRY_P

#define LABEL_ALT_ENTRY_P ( LABEL)    (LABEL_KIND (LABEL) != LABEL_NORMAL)

◆ LABEL_KIND

#define LABEL_KIND ( LABEL)     ((enum label_kind) (((LABEL)->jump << 1) | (LABEL)->call))
Retrieve the kind of LABEL.   

Referenced by output_alternate_entry_point(), and rtx_writer::print_rtx().

◆ LABEL_NAME

#define LABEL_NAME ( RTX)    XCSTR (RTX, 6, CODE_LABEL)
The name of a label, in case it corresponds to an explicit label
in the input source code.   

Referenced by can_delete_label_p(), delete_insn(), expand_label(), final_scan_insn_1(), output_alternate_entry_point(), and rtl_tidy_fallthru_edge().

◆ LABEL_NUSES

◆ LABEL_P

#define LABEL_P ( X)    (GET_CODE (X) == CODE_LABEL)
Predicate yielding nonzero iff X is a label insn.   

Referenced by add_label_notes(), bb_note(), block_label(), calculate_elim_costs_all_insns(), calculate_needs_all_insns(), cfg_layout_delete_block(), cfg_layout_merge_blocks(), check_for_label_ref(), classify_insn(), clear_hashed_info_until_next_barrier(), commit_one_edge_insertion(), compute_alignments(), cond_exec_process_if_block(), const_ok_for_output_1(), create_basic_block_structure(), create_pseudo_cfg(), cselib_process_insn(), dead_or_predicable(), delete_address_reloads_1(), delete_dead_jumptables(), delete_insn(), delete_output_reload(), delete_related_insns(), distribute_notes(), emit_delay_sequence(), emit_libcall_block_1(), emit_moves(), expand_gimple_basic_block(), expand_gimple_tailcall(), fill_slots_from_thread(), find_basic_block(), find_bb_boundaries(), find_end_label(), find_equiv_reg(), find_first_parameter_load(), find_jump_block(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_reloads(), first_active_insn(), first_insn_after_basic_block_note(), flow_find_cross_jump(), for_each_eh_label(), free_resource_info(), get_label_before(), init_label_info(), init_resource_info(), insert_insn_end_basic_block(), insert_insn_start_basic_block(), label_before_next_insn(), label_for_bb(), last_active_insn(), lra_inheritance(), lra_process_new_insns(), make_edges(), make_label_edge(), mark_all_labels(), mark_jump_label_1(), mark_label_nuses(), mark_tablejump_edge(), mark_target_live_regs(), maybe_add_nop_after_section_switch(), no_labels_between_p(), output_asm_label(), own_thread_p(), rtx_writer::print_rtx_operand_code_u(), rebuild_jump_labels_1(), redundant_insn(), relink_block_chain(), reload_as_needed(), reload_combine(), reload_cse_move2add(), reload_cse_simplify_operands(), remove_barriers_from_footer(), reposition_prologue_and_epilogue_notes(), rest_of_clean_state(), reversed_comparison_code_parts(), rtl_merge_blocks(), rtl_verify_bb_insns(), rtx_referenced_p(), rtx_renumbered_equal_p(), save_point_p(), shorten_branches(), sjlj_emit_function_exit(), sjlj_mark_call_sites(), skip_consecutive_labels(), is_a_helper< T >::test(), is_a_helper< T >::test(), is_a_helper< T >::test(), try_crossjump_to_edge(), try_optimize_cfg(), and update_cfg_for_uncondjump().

◆ LABEL_PRESERVE_P

◆ LABEL_REF_NONLOCAL_P

#define LABEL_REF_NONLOCAL_P ( RTX)     (RTL_FLAG_CHECK1 ("LABEL_REF_NONLOCAL_P", (RTX), LABEL_REF)->volatil)
1 if RTX is a label_ref for a nonlocal label.   
Likewise in an expr_list for a REG_LABEL_OPERAND or
REG_LABEL_TARGET note.   

Referenced by add_label_notes(), check_for_label_ref(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), cse_insn(), expand_expr_real_1(), mark_jump_label_1(), rtx_renumbered_equal_p(), and set_label_offsets().

◆ LABEL_REF_P

#define LABEL_REF_P ( X)     (GET_CODE (X) == LABEL_REF)
1 if X is a LABEL_REF.   

◆ LABEL_REFS

#define LABEL_REFS ( LABEL)    XCEXP (LABEL, 3, CODE_LABEL)
Once basic blocks are found, each CODE_LABEL starts a chain that
goes through all the LABEL_REFs that jump to that label.  The chain
eventually winds up at the CODE_LABEL: it is circular.   

◆ LAST_VIRTUAL_POINTER_REGISTER

#define LAST_VIRTUAL_POINTER_REGISTER   ((FIRST_VIRTUAL_REGISTER) + 4)

◆ LAST_VIRTUAL_REGISTER

◆ LRA_SUBREG_P

#define LRA_SUBREG_P ( RTX)     (RTL_FLAG_CHECK1 ("LRA_SUBREG_P", (RTX), SUBREG)->jump)
True if the subreg was generated by LRA for reload insns.  Such
subregs are valid only during LRA.   

Referenced by emit_spill_move(), general_operand(), match_reload(), and simplify_operand_subreg().

◆ MAX_COST

#define MAX_COST   INT_MAX
Maximum cost of an rtl expression.  This value has the special meaning
not to use an rtx with this cost under any circumstances.   

Referenced by approx_reg_cost(), cse_insn(), expand_ccmp_expr_1(), expand_shift_1(), init_costs_to_max(), merge_equiv_classes(), preferable(), and vect_synth_mult_by_constant().

◆ MAX_SAVED_CONST_INT

#define MAX_SAVED_CONST_INT   64

◆ MAY_HAVE_DEBUG_BIND_INSNS

◆ MAY_HAVE_DEBUG_INSNS

#define MAY_HAVE_DEBUG_INSNS    (MAY_HAVE_DEBUG_MARKER_INSNS || MAY_HAVE_DEBUG_BIND_INSNS)
Nonzero if DEBUG_INSN_P may possibly hold.   

Referenced by delete_vta_debug_insns(), set_new_first_and_last_insn(), and variable_tracking_main_1().

◆ MAY_HAVE_DEBUG_MARKER_INSNS

#define MAY_HAVE_DEBUG_MARKER_INSNS   debug_nonbind_markers_p
Nonzero if DEBUG_MARKER_INSN_P may possibly hold.   

Referenced by expand_gimple_basic_block(), final_scan_insn_1(), and rest_of_handle_final().

◆ MEM_ADDR_SPACE

◆ MEM_ALIAS_SET

#define MEM_ALIAS_SET ( RTX)    (get_mem_attrs (RTX)->alias)
For a MEM rtx, the alias set.  If 0, this MEM is not in any alias
set, and may alias anything.  Otherwise, the MEM can only alias
MEMs in a conflicting alias set.  This value is set in a
language-dependent manner in the front-end, and should not be
altered in the back-end.  These set numbers are tested with
alias_sets_conflict_p.   

Referenced by ao_ref_from_mem(), check_mem_read_rtx(), cse_insn(), get_alias_set(), may_alias_p(), mems_in_disjoint_alias_sets_p(), mems_same_for_tbaa_p(), merge_memattrs(), noce_try_cmove_arith(), rtx_writer::print_rtx(), read_dependence(), rtx_refs_may_alias_p(), safe_from_p(), set_mem_alias_set(), set_mem_attrs_for_spill(), store_constructor(), store_constructor_field(), store_field(), true_dependence_1(), and write_dependence_p().

◆ MEM_ALIGN

◆ MEM_ATTRS

#define MEM_ATTRS ( RTX)    X0MEMATTR (RTX, 1)
The memory attribute block.  We provide access macros for each value
in the block and provide defaults if none specified.   

Referenced by compute_bb_dataflow(), emit_notes_in_bb(), exp_equiv_p(), gen_rtx_MEM(), get_mem_attrs(), merge_memattrs(), reload(), set_mem_attributes_minus_bitpos(), set_mem_attrs(), and vt_get_decl_and_offset().

◆ MEM_COPY_ATTRIBUTES

#define MEM_COPY_ATTRIBUTES ( LHS,
RHS )
Value:
#define MEM_NOTRAP_P(RTX)
Definition rtl.h:2620
#define MEM_KEEP_ALIAS_SET_P(RTX)
Definition rtl.h:2611
#define MEM_READONLY_P(RTX)
Definition rtl.h:2605
#define MEM_POINTER(RTX)
Definition rtl.h:1966
#define MEM_ATTRS(RTX)
Definition rtl.h:2625
#define MEM_VOLATILE_P(RTX)
Definition rtl.h:2615
Copy the attributes that apply to memory locations from RHS to LHS.   

Referenced by change_address(), change_address_1(), emit_move_change_mode(), and reload().

◆ MEM_EXPR

◆ MEM_KEEP_ALIAS_SET_P

#define MEM_KEEP_ALIAS_SET_P ( RTX)     (RTL_FLAG_CHECK1 ("MEM_KEEP_ALIAS_SET_P", (RTX), MEM)->jump)
1 if RTX is a mem and we should keep the alias set for this mem
unchanged when we access a component.  Set to 1, or example, when we
are already in a non-addressable component of an aggregate.   

Referenced by set_mem_attributes_minus_bitpos(), store_constructor(), store_constructor_field(), and store_field().

◆ MEM_NOTRAP_P

◆ MEM_OFFSET

◆ MEM_OFFSET_KNOWN_P

◆ MEM_P

#define MEM_P ( X)    (GET_CODE (X) == MEM)
Predicate yielding nonzero iff X is an rtx for a memory location.   

Referenced by add_equal_note(), add_mem_for_addr(), add_store_equivs(), add_stores(), add_uses(), adjust_insn(), adjust_mem_stores(), adjust_mems(), allocate_initial_values(), alter_subreg(), insn_propagation::apply_to_lvalue_1(), asan_protect_global(), asm_operand_ok(), assemble_variable(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), autoinc_split(), avoid_complex_debug_insns(), bad_for_rematerialization_p(), baseness(), bbs_ok_for_cmove_arith(), break_out_memory_refs(), calculate_equiv_gains(), can_combine_p(), symtab_node::can_increase_alignment_p(), can_reload_into(), cancel_changes(), canon_list_insert(), canon_rtx(), canonicalize_insn(), change_address_1(), check_and_process_move(), check_argument_load(), check_dependence(), check_invalid_inc_dec(), check_mem_read_use(), choose_reload_regs(), cleanup_subreg_operands(), clobber_slot_part(), combinable_i3pat(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), commutative_operand_precedence(), computation_cost(), compute_bb_dataflow(), compute_ld_motion_mems(), constrain_operands(), contains_mem_rtx_p(), convert_mode_scalar(), convert_modes(), copy_blkmode_from_reg(), copy_cost(), symtab_node::copy_visibility_from(), copyprop_hardreg_forward_1(), count_occurrences(), count_reg_usage(), cse_insn(), cse_process_note_1(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_invalidate_mem(), cselib_invalidate_rtx(), cselib_lookup_1(), cselib_lookup_mem(), cselib_process_insn(), cselib_record_set(), cselib_record_sets(), cselib_redundant_set_p(), cst_pool_loc_descr(), curr_insn_transform(), decode_addr_const(), decompose_mem_address(), default_encode_section_info(), delegitimize_mem_from_attrs(), delete_address_reloads(), delete_output_reload(), df_uses_record(), do_input_reload(), do_local_cprop(), duplicate_insn_chain(), dw_loc_list_1(), dw_sra_loc_expr(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_def_cfa(), dwarf2out_frame_debug_expr(), eliminate_partially_redundant_loads(), eliminate_regs_1(), eliminate_regs_in_insn(), emit_block_cmp_hints(), emit_block_move_hints(), emit_group_load_1(), emit_group_store(), emit_library_call_value_1(), emit_move_change_mode(), emit_move_complex(), emit_move_insn(), emit_move_multi_word(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_push_insn(), emit_reload_insns(), emit_spill_move(), emit_store_flag_1(), equiv_constant(), expand_abs(), expand_asm_stmt(), expand_assignment(), expand_atomic_compare_and_swap(), expand_builtin(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_issignaling(), expand_builtin_prefetch(), expand_call(), expand_debug_expr(), expand_debug_parm_decl(), expand_divmod(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_expr_real_2(), expand_function_start(), expand_load_lanes_optab_fn(), expand_one_stack_var(), expand_one_var(), expand_partial_load_optab_fn(), expand_partial_store_optab_fn(), expand_store_lanes_optab_fn(), expand_used_vars(), expand_vector_ubsan_overflow(), extract_bit_field_1(), extract_bit_field_using_extv(), extract_fixed_bit_field(), extract_integral_bit_field(), extract_mem_from_operand(), final_scan_insn_1(), find_call_stack_args(), find_decomposable_subregs(), find_equiv_reg(), find_loads(), find_mem_conflicts(), find_mem_expr_in_1pdv(), find_memory(), find_memory_stores(), find_moveable_pseudos(), find_moveable_store(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_subreg_address(), find_split_point(), find_src_set_src(), find_src_status(), find_use_val(), for_each_inc_dec(), force_not_mem(), force_operand(), force_reg(), forward_propagate_and_simplify(), gen_array_type_die(), gen_highpart(), gen_lowpart_for_combine(), gen_lowpart_general(), gen_lowpart_if_possible(), gen_reload(), gen_reload_chain_without_interm_reg_p(), general_operand(), get_addr(), get_address_mode(), get_alias_set(), get_base_term(), get_call_rtx_from(), get_fnname_from_decl(), get_index_term(), get_last_value_validate(), get_mem_align_offset(), get_mem_expr_from_op(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), hash_rtx(), hash_scan_set(), hash_scan_set(), immune_p(), in_class_p(), indirect_operand(), initialize_argument_information(), instantiate_decl_rtl(), internal_arg_pointer_based_exp(), inv_can_prop_to_addr_use(), invalidate_any_buried_refs(), invalidate_dest(), invalidate_from_clobbers(), invariant_p(), ira_setup_alts(), layout_decl(), loc_cmp(), loc_list_from_tree_1(), lra_constraints(), lra_eliminate_regs_1(), lra_update_insn_regno_info(), make_compound_operation_int(), make_debug_expr_from_rtl(), symtab_node::make_decl_local(), make_decl_rtl(), make_extraction(), make_field_assignment(), make_safe_from(), mark_referenced_resources(), mark_used_regs_combine(), mark_weak(), match_asm_constraints_1(), maybe_legitimize_operand_same_code(), mem_autoinc_base(), mem_loc_descriptor(), memory_modified_1(), memory_operand(), mems_conflict_for_gcse_p(), mems_same_for_tbaa_p(), move_deaths(), noce_emit_move_insn(), noce_operand_ok(), noce_process_if_block(), noce_try_abs(), noce_try_cmove_arith(), non_mem_decl_p(), nonoverlapping_memrefs_p(), nonzero_bits1(), note_reg_elim_costly(), note_uses(), notice_stack_pointer_modification_1(), num_sign_bit_copies1(), offsettable_memref_p(), offsettable_nonstrict_memref_p(), operand_subword(), optimize_bitfield_assignment_op(), place_block_symbol(), pop_operand(), prepare_call_arguments(), preserve_temp_slots(), process_address_1(), process_alt_operands(), process_set_for_memref_referenced_p(), prune_expressions(), push_operand(), push_reload(), read_complex_part(), record_dead_and_set_regs_1(), record_last_set_info(), record_last_set_info(), record_operand_costs(), record_reg_classes(), record_store(), refers_to_mem_for_reload_p(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), register_operand(), reload(), reload_as_needed(), reload_combine_note_store(), reload_cse_move2add_invalidate(), reload_cse_simplify_operands(), reload_cse_simplify_set(), replace_expr_with_values(), resolve_simple_move(), reverse_op(), rtl_for_decl_init(), rtl_for_decl_location(), rtx_equal_for_cselib_1(), rtx_equal_for_field_assignment_p(), safe_from_p(), same_variable_part_p(), satisfies_memory_constraint_p(), scan_insn(), scan_one_insn(), set_noop_p(), set_of_1(), set_parm_rtl(), set_reg_attrs_from_value(), set_rtl(), set_slot_part(), setup_reg_equiv(), simple_mem_bitfield_p(), simple_move_operand(), simplify_compare_const(), simplify_comparison(), simplify_operand_subreg(), simplify_set(), simplify_context::simplify_subreg(), simplify_context::simplify_truncation(), simplify_while_replacing(), stack_memref_p(), store_bit_field(), store_bit_field_1(), store_bit_field_using_insv(), store_constructor(), store_constructor_field(), store_data_bypass_p_1(), store_expr(), store_field(), store_fixed_bit_field(), store_integral_bit_field(), store_killed_in_pat(), store_one_arg(), store_split_bit_field(), store_unaligned_arguments_into_pseudos(), strict_volatile_bitfield_p(), subst(), swap_change(), track_expr_p(), try_apply_stack_adjustment(), try_combine(), try_replace_reg(), rtx_properties::try_to_add_dest(), unmentioned_reg_p(), unshare_variable(), update_equiv_regs(), use_anchored_address(), use_type(), val_bind(), valid_address_p(), validate_autoinc_and_mem_addr_p(), validate_change_1(), validate_equiv_mem_from_store(), validate_subreg(), validize_mem(), var_lowpart(), variable_union(), verify_changes(), vt_add_function_parameter(), vt_get_decl_and_offset(), and write_complex_part().

◆ MEM_POINTER

#define MEM_POINTER ( RTX)     (RTL_FLAG_CHECK1 ("MEM_POINTER", (RTX), MEM)->frame_related)

◆ MEM_READONLY_P

◆ MEM_SIZE

◆ MEM_SIZE_KNOWN_P

#define MEM_SIZE_KNOWN_P ( RTX)    (get_mem_attrs (RTX)->size_known_p)

◆ MEM_VOLATILE_P

#define MEM_VOLATILE_P ( RTX)
Value:
(RTL_FLAG_CHECK3 ("MEM_VOLATILE_P", (RTX), MEM, ASM_OPERANDS, \
ASM_INPUT)->volatil)
1 if RTX is a mem or asm_operand for a volatile reference.   

Referenced by adjust_bit_field_mem_for_reg(), assign_stack_temp_for_type(), can_combine_p(), check_maybe_invariant(), check_mem_read_rtx(), combine_simplify_rtx(), convert_mode_scalar(), convert_modes(), cselib_hash_rtx(), cselib_lookup_mem(), eliminate_partially_redundant_loads(), emit_block_move_hints(), emit_stack_probe(), emit_store_flag_1(), equiv_init_movable_p(), equiv_init_varies_p(), exp_equiv_p(), expand_abs(), expand_asm_loc(), expand_asm_memory_blockage(), expand_asm_reg_clobber_mem_blockage(), expand_asm_stmt(), expand_assignment(), expand_constructor(), expand_divmod(), expand_expr_real_1(), expand_expr_real_2(), extract_fixed_bit_field(), find_equiv_reg(), find_memory(), find_memory_stores(), find_moveable_store(), gen_blockage(), gen_lowpart_for_combine(), general_operand(), get_builtin_sync_mem(), hash_rtx(), make_extraction(), mark_referenced_resources(), mark_set_resources(), may_alias_p(), may_trap_p_1(), merge_memattrs(), need_fake_edge_p(), noce_try_cmove_arith(), prune_expressions(), read_dependence(), record_store(), rtx_moveable_p(), rtx_unstable_p(), rtx_varies_p(), set_mem_attributes_minus_bitpos(), side_effects_p(), simple_mem(), simple_move_operand(), simplify_compare_const(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), store_bit_field(), store_fixed_bit_field(), strict_volatile_bitfield_p(), true_dependence_1(), rtx_properties::try_to_add_src(), volatile_insn_p(), volatile_refs_p(), and write_dependence_p().

◆ mode_mem_attrs

◆ NON_COMMUTATIVE_P

#define NON_COMMUTATIVE_P ( X)
Value:
#define RTX_NON_COMMUTATIVE_RESULT
Definition rtl.h:106
1 if X is a non-commutative operator.   

Referenced by rtx_equal_for_memref_p(), and rtx_renumbered_equal_p().

◆ NONDEBUG_INSN_P

#define NONDEBUG_INSN_P ( X)    (NONJUMP_INSN_P (X) || JUMP_P (X) || CALL_P (X))
Predicate yielding nonzero iff X is an insn that is not a debug insn.   

Referenced by add_copies(), add_next_usage_insn(), average_num_loop_insns(), bb_is_just_return(), find_comparison_dom_walker::before_dom_children(), build_def_use(), build_insn_chain(), build_store_vectors(), calculate_bb_reg_pressure(), calculate_equiv_gains(), calculate_local_reg_remat_bb_data(), calculate_loop_reg_pressure(), can_dup_for_shrink_wrapping(), can_merge_compare_into_arith(), can_move_insns_across(), cant_combine_insn_p(), check_cond_move_block(), check_rtl(), collect_fn_hard_reg_usage(), combine_instructions(), combine_reload_insn(), compute_hash_table_work(), compute_hash_table_work(), compute_ld_motion_mems(), compute_regs_asm_clobbered(), compute_store_table(), cond_move_convert_if_block(), copyprop_hardreg_forward_1(), create_bb_allocnos(), create_cands(), create_log_links(), cse_extended_basic_block(), dead_or_predicable(), delete_insn_and_edges(), delete_move_and_clobber(), delete_unmarked_insns(), df_insn_delete(), df_lr_bb_local_compute(), df_simulate_one_insn_backwards(), df_word_lr_bb_local_compute(), discover_loops(), distribute_notes(), do_remat(), emit_copy_of_insn_after(), emit_moves(), emit_to_new_bb_before(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_invariants_bb(), find_moveable_pseudos(), find_removable_extensions(), find_single_use(), fixup_args_size_notes(), fixup_reorder_chain(), flow_find_cross_jump(), flow_find_head_matching_sequence(), free_insn_recog_data(), get_last_insertion_point(), get_some_local_dynamic_name(), hoist_code(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), init_elimination(), init_subregs_of_mode(), initialize_uninitialized_regs(), lra_update_insn_regno_info(), make_more_copies(), mark_all_labels(), memref_used_between_p(), merge_in_block(), new_insn_reg(), next_real_nondebug_insn(), num_loop_insns(), peep2_attempt(), peephole2_optimize(), prepare_shrink_wrap(), prescan_insns_for_dce(), prev_real_nondebug_insn(), print_rtl_with_bb(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_bb_node_lives(), reg_used_between_p(), regstat_bb_compute_calls_crossed(), regstat_bb_compute_ri(), reload_combine(), remove_inheritance_pseudos(), remove_reachable_equiv_notes(), replace_store_insn(), rtl_block_empty_p(), rtl_split_block_before_cond_jump(), rtl_tidy_fallthru_edge(), rtl_verify_fallthru(), save_call_clobbered_regs(), scan_loop(), scan_one_insn(), seq_cost(), split_reg(), store_killed_in_insn(), thread_prologue_and_epilogue_insns(), try_combine(), try_head_merge_bb(), try_shrink_wrapping(), unique_locus_on_edge_between_p(), update_bb_reg_pressure(), update_ebb_live_info(), update_equiv_regs_prescan(), update_inc_notes(), and walk_to_nondebug_insn().

◆ NONJUMP_INSN_P

#define NONJUMP_INSN_P ( X)    (GET_CODE (X) == INSN)
Predicate yielding nonzero iff X is an insn that cannot jump.   

Referenced by active_insn_p(), arithmetic_flags_clobber_p(), bypass_conditional_jumps(), can_merge_compare_into_arith(), can_throw_external(), canonicalize_condition(), cheap_bb_rtx_cost_p(), cond_exec_process_insns(), constprop_register(), contains(), convert_to_eh_region_ranges(), copyprop_hardreg_forward_1(), dbr_schedule(), deletable_insn_p(), delete_output_reload(), delete_prior_computation(), do_output_reload(), eliminate_partially_redundant_loads(), emit_input_reload_insns(), fill_simple_delay_slots(), fill_slots_from_thread(), find_active_insn_after(), find_active_insn_before(), find_end_label(), find_equiv_reg(), find_reloads_address_1(), find_split_point(), fixup_abnormal_edges(), forward_propagate_into(), free_load_extend(), get_eh_region_and_lp_from_rtx(), get_first_nonnote_insn(), get_last_nonnote_insn(), insert_insn_end_basic_block(), insn_nothrow_p(), insn_valid_noce_process_p(), last_active_insn(), leaf_function_p(), likely_spilled_retval_p(), link_insn_into_chain(), lra_final_code_change(), make_return_insns(), mark_target_live_regs(), merge_if_block(), next_insn(), next_insn_no_annul(), noce_process_if_block(), optimize_skip(), own_thread_p(), previous_insn(), purge_dead_edges(), redundant_insn(), relax_delay_slots(), reload(), reload_as_needed(), remove_insn(), rest_of_clean_state(), return_insn_p(), scan_trace(), shorten_branches(), single_set_for_csa(), is_a_helper< T >::test(), try_back_substitute_reg(), try_combine(), try_merge_delay_insns(), try_split(), and update_equiv_regs().

◆ NOOP_MOVE_INSN_CODE

#define NOOP_MOVE_INSN_CODE   INT_MAX
Value used by some passes to "recognize" noop moves as valid
instructions.   

Referenced by noop_move_p(), and recog_for_combine_1().

◆ NOTE_BASIC_BLOCK

◆ NOTE_BLOCK

◆ NOTE_CFI

◆ NOTE_DATA

#define NOTE_DATA ( INSN)    RTL_CHECKC1 (INSN, 3, NOTE)
In a NOTE that is a line number, this is a string for the file name that the
line is in.  We use the same field to record block numbers temporarily in
NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes.  (We avoid lots of casts
between ints and pointers if we use a different macro for the block number.)
Opaque data.   

Referenced by emit_note_copy(), and make_note_raw().

◆ NOTE_DELETED_LABEL_NAME

◆ NOTE_DURING_CALL_P

#define NOTE_DURING_CALL_P ( RTX)     (RTL_FLAG_CHECK1 ("NOTE_VAR_LOCATION_DURING_CALL_P", (RTX), NOTE)->call)
1 if RTX is emitted after a call, but it should take effect before
the call returns.   

Referenced by emit_note_insn_var_location().

◆ NOTE_EH_HANDLER

◆ NOTE_INSN_BASIC_BLOCK_P

◆ NOTE_KIND

#define NOTE_KIND ( INSN)    XCINT (INSN, 4, NOTE)

◆ NOTE_LABEL_NUMBER

#define NOTE_LABEL_NUMBER ( INSN)    XCINT (INSN, 3, NOTE)

◆ NOTE_MARKER_LOCATION

◆ NOTE_MARKER_P

#define NOTE_MARKER_P ( INSN)
Value:
(NOTE_P (INSN) && \
#define NOTE_P(X)
Definition rtl.h:871
#define NOTE_KIND(INSN)
Definition rtl.h:1683
Nonzero if INSN is a debug nonbind marker note,
for which NOTE_MARKER_LOCATION can be used.   

Referenced by notice_source_line().

◆ NOTE_P

#define NOTE_P ( X)    (GET_CODE (X) == NOTE)
Predicate yielding nonzero iff X is a note insn.   

Referenced by add_cfis_to_fde(), add_location_or_const_value_attribute(), add_var_loc_to_decl(), before_next_cfi_note(), build_insn_chain(), can_move_insns_across(), combine_instructions(), cond_exec_find_if_block(), cond_exec_process_if_block(), cond_exec_process_insns(), connect_traces(), construct_exit_block(), contains_deleted_insn_p(), convert_to_eh_region_ranges(), create_pseudo_cfg(), dbr_schedule(), dead_or_predicable(), delete_for_peephole(), delete_insn(), delete_insn_chain(), delete_related_insns(), discover_loops(), distribute_links(), dump_eh_tree(), dw_loc_list(), emit_input_reload_insns(), emit_note_insn_var_location(), equivalent_reg_at_start(), expand_debug_expr(), expand_function_start(), expand_gimple_basic_block(), final_1(), final_scan_insn_1(), final_start_function_1(), find_bb_boundaries(), find_end_label(), first_active_insn(), fixup_abnormal_edges(), fixup_tail_calls(), flow_find_head_matching_sequence(), get_first_nonnote_insn(), get_last_nonnote_insn(), init_alias_analysis(), ira_restore_scratches(), last_active_insn(), make_edges(), mark_jump_label_1(), mark_target_live_regs(), merge_if_block(), next_non_note_insn_var_location(), next_nonnote_insn(), next_nonnote_nondebug_insn(), next_nonnote_nondebug_insn_bb(), one_cprop_pass(), outgoing_edges_match(), output_asm_label(), output_constant_pool_1(), prev_nonnote_insn(), prev_nonnote_nondebug_insn(), prev_nonnote_nondebug_insn_bb(), print_rtl_with_bb(), rtx_writer::print_rtx_operand_code_0(), rtx_writer::print_rtx_operand_code_i(), rtx_writer::print_rtx_operand_code_u(), purge_dead_edges(), function_reader::read_rtx_operand_i_or_n(), record_effective_endpoints(), reemit_insn_block_notes(), reload_as_needed(), reload_cse_simplify_operands(), remove_init_insns(), remove_insn(), reorder_blocks_1(), reposition_prologue_and_epilogue_notes(), rest_of_clean_state(), rtl_block_ends_with_call_p(), rtl_merge_blocks(), save_call_clobbered_regs(), save_point_p(), scan_trace(), shorten_branches(), sjlj_emit_function_enter(), sjlj_mark_call_sites(), skip_insns_after_block(), split_reg(), switch_text_sections_between_p(), is_a_helper< T >::test(), is_a_helper< T >::test(), is_a_helper< T >::test(), thread_prologue_and_epilogue_insns(), try_back_substitute_reg(), try_combine(), try_crossjump_to_edge(), try_shrink_wrapping(), and update_ebb_live_info().

◆ NOTE_VAR_LOCATION

◆ NOTE_VAR_LOCATION_DECL

#define NOTE_VAR_LOCATION_DECL ( NOTE)     PAT_VAR_LOCATION_DECL (NOTE_VAR_LOCATION (NOTE))
Accessors for a NOTE_INSN_VAR_LOCATION.   

Referenced by add_var_loc_to_decl().

◆ NOTE_VAR_LOCATION_LOC

◆ NOTE_VAR_LOCATION_STATUS

#define NOTE_VAR_LOCATION_STATUS ( NOTE)     PAT_VAR_LOCATION_STATUS (NOTE_VAR_LOCATION (NOTE))

◆ NULL_RTVEC

#define NULL_RTVEC   (rtvec) 0

◆ NULL_RTX

#define NULL_RTX   (rtx) 0

Referenced by add_args_size_note(), add_constraints(), add_equal_note(), add_insn_allocno_copies(), add_loc_list(), add_mask_and_len_args(), add_next_usage_insn(), add_pseudo_to_slot(), inchash::add_rtx(), add_store_equivs(), add_stores(), add_test(), add_var_loc_to_decl(), add_with_sets(), addr_for_mem_ref(), addr_offset_valid_p(), pieces_addr::adjust(), adjust_bit_field_mem_for_reg(), adjust_cleared_regs(), adjust_insn(), adjust_mem_stores(), adjust_mem_uses(), adjust_mems(), adjust_piece_list(), align_dynamic_address(), allocate_dynamic_stack_space(), alter_reg(), alter_subregs(), analyze_iv_to_split_insn(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), anti_dependence(), any_uncondjump_p(), insn_propagation::apply_to_rvalue_1(), asan_clear_shadow(), asan_emit_stack_protection(), asan_memfn_rtl(), asm_labels_ok(), assign_by_spills(), assign_mem_slot(), assign_parm_adjust_entry_rtl(), assign_parm_is_stack_parm(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parms(), assign_parms_initialize_all(), assign_spill_hard_regs(), assign_stack_slot_num_and_sort_pseudos(), attr_rtx_1(), autoinc_split(), avoid_complex_debug_insns(), base_plus_disp_to_reg(), base_to_reg(), based_loc_descr(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), block_jumps_and_fallthru(), block_move_libcall_safe_for_call_parm(), builtin_memset_gen_str(), calculate_equiv_gains(), calculate_loop_reg_pressure(), calculate_spill_cost(), can_assign_to_reg_without_clobbers_p(), can_combine_p(), can_implement_as_sibling_call_p(), can_move_insns_across(), can_nonlocal_goto(), can_replace_by(), can_vec_perm_const_p(), can_widen_mult_without_libcall(), canon_address(), canonicalize_condition(), canonicalize_insn(), canonicalize_values_mark(), canonicalize_values_star(), cc_in_cond(), cfg_layout_split_edge(), change_regs(), check_and_process_move(), check_conflict_input_operands(), check_defs(), check_for_cc_cmp_clobbers(), check_for_inc_dec(), check_for_inc_dec_1(), check_invalid_inc_dec(), check_secondary_memory_needed_p(), check_sibcall_argument_overlap(), check_sibcall_argument_overlap_1(), choose_reload_regs(), clear_storage_hints(), coalescable_pseudo_p(), collect_fn_hard_reg_usage(), combine_and_move_insns(), combine_instructions(), combine_reaching_defs(), combine_reload_insn(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), compare_and_jump_seq(), compare_by_pieces(), computation_cost(), compute_bb_dataflow(), compute_frame_pointer_to_fb_displacement(), compute_hash_table_work(), compute_stack_clash_protection_loop_data(), compute_store_table(), cond_exec_get_condition(), cond_exec_process_if_block(), cond_move_convert_if_block(), condjump_label(), construct_piece_list(), contains_deleted_insn_p(), contains_reloaded_insn_p(), convert_memory_address_addr_space_1(), convert_mode_scalar(), convert_optab_libfunc(), convert_set_attr_alternative(), convert_to_eh_region_ranges(), copy_blkmode_from_reg(), copy_blkmode_to_reg(), copy_reg_eh_region_note_backward(), copy_reg_eh_region_note_forward(), copyprop_hardreg_forward_1(), count_reg_usage(), covers_regno_p(), cprop_jump(), create_new_chain(), create_new_invariant(), create_trace_edges(), cse_cc_succs(), cse_condition_code_reg(), cse_insn(), cse_process_note(), cse_process_note_1(), cselib_record_sp_cfa_base_equiv(), cst_pool_loc_descr(), curr_insn_transform(), dead_debug_insert_temp(), dead_or_predicable(), dead_pseudo_p(), debug_lowpart_subreg(), pieces_addr::decide_autoinc(), decide_unroll_constant_iterations(), decompose(), decompose_multiword_subregs(), decompose_register(), decrease_live_ranges_number(), default_expand_builtin(), default_memtag_insert_random_tag(), default_memtag_set_tag(), delete_insn(), delete_output_reload(), delete_store(), delete_trivially_dead_insns(), delete_unmarked_insns(), df_find_single_def_src(), discover_loops(), distribute_and_simplify_rtx(), distribute_notes(), do_cmp_and_jump(), do_compare_and_jump(), do_compare_rtx_and_jump(), do_jump(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), do_jump_if_equal(), do_local_cprop(), do_store_flag(), do_tablejump(), doloop_condition_get(), doloop_modify(), doloop_optimize(), duplicate_insn_chain(), duplicate_reg_note(), dw2_fix_up_crossing_landing_pad(), dw_loc_list(), dw_loc_list_1(), dw_sra_loc_expr(), dwarf2out_frame_debug_expr(), eliminate_partially_redundant_load(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_add2_insn(), emit_add3_insn(), emit_block_cmp_via_cmpmem(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_block_op_via_libcall(), emit_call_1(), emit_conditional_add(), emit_conditional_move(), emit_conditional_move(), emit_conditional_move_1(), emit_conditional_neg_or_complement(), emit_copy_of_insn_after(), emit_cstore(), emit_debug_insn(), emit_group_load_1(), emit_group_store(), emit_insn(), emit_libcall_block_1(), emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call_value_1(), emit_move_insn(), emit_move_list(), emit_move_via_integer(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_output_reload_insns(), emit_pattern_after_noloc(), emit_pattern_after_setloc(), emit_pattern_before_noloc(), emit_pattern_before_setloc(), emit_push_insn(), emit_reload_insns(), emit_stack_clash_protection_probe_loop_end(), emit_stack_clash_protection_probe_loop_start(), emit_store_flag(), emit_store_flag_1(), emit_store_flag_force(), cselib_hasher::equal(), equiv_address_substitution(), equivalent_reg_at_start(), expand_abs(), expand_abs_nojump(), expand_absneg_bit(), expand_addsub_overflow(), expand_arith_overflow(), expand_arith_overflow_result_store(), expand_asan_emit_allocas_unpoison(), expand_asm_stmt(), expand_assignment(), expand_atomic_compare_and_swap(), expand_atomic_exchange(), expand_atomic_fetch_op(), expand_atomic_fetch_op_no_fallback(), expand_atomic_load(), expand_atomic_store(), expand_binop(), expand_binop_directly(), expand_BITINTTOFLOAT(), expand_builtin___clear_cache(), expand_builtin_adjust_descriptor(), expand_builtin_adjust_trampoline(), expand_builtin_alloca(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_atomic_compare_exchange(), expand_builtin_atomic_exchange(), expand_builtin_atomic_fetch_op(), expand_builtin_atomic_is_lock_free(), expand_builtin_atomic_load(), expand_builtin_atomic_store(), expand_builtin_bswap(), expand_builtin_bzero(), expand_builtin_cexpi(), expand_builtin_compare_and_swap(), expand_builtin_copysign(), expand_BUILTIN_EXPECT(), expand_builtin_extend_pointer(), expand_builtin_extract_return_addr(), expand_builtin_fabs(), expand_builtin_feclear_feraise_except(), expand_builtin_fegetround(), expand_builtin_fork_or_exec(), expand_builtin_frob_return_addr(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_init_descriptor(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_interclass_mathfn(), expand_builtin_issignaling(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memmove(), expand_builtin_memory_chk(), expand_builtin_memory_copy_args(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_memset_args(), expand_builtin_next_arg(), expand_builtin_nonlocal_goto(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_return_addr(), expand_builtin_set_thread_pointer(), expand_builtin_setjmp_setup(), expand_builtin_signbit(), expand_builtin_sincos(), expand_builtin_stpcpy(), expand_builtin_stpcpy_1(), expand_builtin_strcmp(), expand_builtin_strcpy(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_builtin_strnlen(), expand_builtin_strub_enter(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_builtin_thread_pointer(), expand_builtin_trap(), expand_builtin_unop(), expand_builtin_va_copy(), expand_call(), expand_ccmp_expr(), expand_ccmp_expr_1(), expand_clrsb_using_clz(), expand_cmpstr(), expand_cmpstrn_or_cmpmem(), expand_compare_and_swap_loop(), expand_compound_operation(), expand_cond_expr_using_cmove(), expand_constructor(), expand_copysign(), expand_copysign_absneg(), expand_copysign_bit(), expand_ctz(), expand_debug_expr(), expand_debug_locations(), expand_debug_parm_decl(), expand_debug_source_expr(), expand_DEFERRED_INIT(), expand_divmod(), expand_DIVMOD(), expand_DIVMODBITINT(), expand_doubleword_bswap(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_doubleword_mult(), expand_doubleword_parity(), expand_doubleword_popcount(), expand_expr_addr_expr_1(), expand_expr_force_mode(), expand_expr_real_1(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_fixed_convert(), expand_float(), expand_fn_using_insn(), expand_function_end(), expand_function_start(), expand_gather_load_optab_fn(), expand_gimple_basic_block(), expand_gimple_stmt(), expand_gimple_stmt_1(), expand_GOACC_DIM_POS(), expand_GOACC_DIM_SIZE(), expand_GOMP_SIMT_ENTER_ALLOC(), expand_GOMP_SIMT_LANE(), expand_GOMP_SIMT_LAST_LANE(), expand_GOMP_SIMT_ORDERED_PRED(), expand_GOMP_SIMT_VOTE_ANY(), expand_GOMP_SIMT_XCHG_BFLY(), expand_GOMP_SIMT_XCHG_IDX(), expand_HWASAN_ALLOCA_UNPOISON(), expand_HWASAN_CHOOSE_TAG(), expand_HWASAN_MARK(), expand_HWASAN_SET_TAG(), expand_ifn_atomic_bit_test_and(), expand_ifn_atomic_compare_exchange(), expand_ifn_atomic_compare_exchange_into_call(), expand_ifn_atomic_op_fetch_cmp_0(), expand_load_lanes_optab_fn(), expand_loc(), expand_mem_thread_fence(), expand_misaligned_mem_ref(), expand_movstr(), expand_mul_overflow(), expand_MULBITINT(), expand_mult(), expand_mult_const(), expand_mult_highpart(), expand_mult_highpart_adjust(), expand_neg_overflow(), expand_normal(), expand_one_cmpl_abs_nojump(), expand_operands(), expand_parity(), expand_partial_load_optab_fn(), expand_partial_store_optab_fn(), expand_POPCOUNT(), expand_RAWMEMCHR(), expand_sdiv_pow2(), expand_shift_1(), expand_single_bit_test(), expand_smod_pow2(), expand_SPACESHIP(), expand_speculation_safe_value(), expand_stack_save(), expand_stack_vars(), expand_store_lanes_optab_fn(), expand_twoval_binop_libfunc(), expand_UADDC(), expand_ubsan_result_store(), expand_UNIQUE(), expand_unop(), expand_unop_direct(), expand_used_vars(), expand_vec_cond_mask_optab_fn(), expand_vec_cond_optab_fn(), expand_vec_perm_1(), expand_vec_perm_const(), expand_vec_perm_var(), expand_vec_set_optab_fn(), expand_vector_broadcast(), expand_vector_ubsan_overflow(), expand_while_optab_fn(), expmed_mult_highpart_optab(), expr_size(), extract_bit_field_as_subreg(), extract_bit_field_using_extv(), extract_integral_bit_field(), extract_left_shift(), extract_low_bits(), extract_split_bit_field(), fill_eager_delay_slots(), fill_simple_delay_slots(), fill_slots_from_thread(), final_scan_insn_1(), find_active_insn_after(), find_active_insn_before(), find_base_term(), rtx_vector_builder::find_cached_value(), find_call_crossed_cheap_reg(), find_constant_src(), find_costs_and_classes(), find_equiv_reg(), find_if_case_1(), find_moveable_pseudos(), find_moveable_store(), find_oldest_value_reg(), find_operand(), find_pseudo_copy(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_reg_offset_for_const(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_address_part(), find_reloads_subreg_address(), find_removable_extensions(), find_shift_sequence(), find_simple_exit(), find_split_point(), find_src_set_src(), compare_by_pieces_d::finish_mode(), first_insn_after_basic_block_note(), fix_crossing_conditional_branches(), fix_reg_equiv_init(), fixup_abnormal_edges(), fixup_args_size_notes(), fixup_eh_region_note(), fixup_reorder_chain(), flip_storage_order(), fold_rtx(), follow_jumps(), force_const_mem(), force_int_to_mode(), force_move_args_size_note(), force_nonfallthru_and_redirect(), force_operand(), force_reg(), forward_propagate_and_simplify(), forward_propagate_into(), fp_setter_insn(), free_loop_data(), gcse_emit_move_after(), gen_addr_rtx(), gen_cond_trap(), gen_label_rtx(), gen_lowpart_for_debug(), move_by_pieces_d::generate(), compare_by_pieces_d::generate(), get_base_reg(), get_biv_step_1(), get_builtin_sync_mem(), get_call_args(), get_call_fndecl(), get_call_rtx_from(), get_condition(), get_dynamic_stack_base(), get_dynamic_stack_size(), get_eh_region_and_lp_from_rtx(), get_equiv(), get_equiv_regno(), get_group_info(), get_hard_reg_initial_reg(), get_memory_rtx(), get_pattern_stats_1(), get_pressure_class_and_nregs(), lra_autoinc_reload_context::get_reload_reg(), get_reload_reg(), get_secondary_mem(), get_stored_val(), handle_common_deferred_options(), has_hard_reg_initial_val(), hash_scan_set(), hwasan_emit_prologue(), hwasan_emit_untag_frame(), hwasan_frame_base(), hwasan_get_frame_extent(), hwasan_record_frame_init(), in_list_p(), index_part_to_reg(), indirect_jump_optimize(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), init_elimination(), init_emit_once(), init_emit_regs(), init_expr_target(), init_insn_rhs_dead_pseudo_p(), initialize_lra_reg_info_element(), inline_expand_builtin_bytecmp(), inline_string_cmp(), insert_insn_end_basic_block(), insert_insn_on_edge(), insert_one_insn(), insert_restore(), insert_save(), insert_store(), insert_with_costs(), insn_invalid_p(), insn_stack_adjust_offset_pre_post(), insns_have_identical_cfa_notes(), instantiate_new_reg(), instantiate_virtual_regs_in_insn(), internal_arg_pointer_based_exp(), internal_arg_pointer_based_exp_scan(), inv_can_prop_to_addr_use(), ira_equiv_no_lvalue_p(), ira_reuse_stack_slot(), ira_update_equiv_info_by_shuffle_insn(), is_cond_copy_insn(), is_dead_debug_insn(), iv_analyze_biv(), iv_analyze_def(), iv_analyze_expr(), iv_number_of_iterations(), label_before_next_insn(), layout_decl(), ldst_entry(), loc_descriptor_from_tree(), loc_equivalence_callback(), loc_list_for_address_of_addr_expr_of_indirect_ref(), loc_list_from_tree_1(), lookup_constant_def(), lra_assign(), lra_coalesce(), lra_constraints(), lra_create_live_ranges_1(), lra_create_new_reg(), lra_create_new_reg_with_unique_value(), lra_eliminate_regs_1(), lra_emit_add(), lra_emit_move(), lra_init_equiv(), lra_process_new_insns(), lra_set_insn_recog_data(), lra_spill(), lra_substitute_pseudo(), lra_undo_inheritance(), lra_update_insn_regno_info(), main(), make_compound_operation_int(), make_edges(), make_extraction(), make_field_assignment(), make_hard_regno_dead(), make_memloc(), make_object_dead(), make_reg_eh_region_note_nothrow_nononlocal(), make_return_insns(), match_pattern_2(), match_reload(), maybe_emit_atomic_exchange(), maybe_emit_atomic_test_and_set(), maybe_emit_compare_and_swap_exchange_loop(), maybe_emit_op(), maybe_emit_sync_lock_test_and_set(), maybe_emit_unop_insn(), maybe_merge_cfa_adjust(), maybe_mode_change(), maybe_move_args_size_note(), maybe_optimize_fetch_op(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), mem_loc_descriptor(), mem_might_overlap_already_clobbered_arg_p(), memory_address_addr_space(), move2add_note_store(), move2add_use_add2_insn(), move2add_use_add3_insn(), move_insn_for_shrink_wrap(), move_invariant_reg(), move_invariants(), multiple_reg_loc_descriptor(), multiplier_allowed_in_address_p(), native_decode_rtx(), native_decode_vector_rtx(), need_cmov_or_rewire(), negate_rtx(), no_equiv(), noce_bbs_ok_for_cond_zero_arith(), noce_convert_multiple_sets_1(), noce_emit_cmove(), noce_emit_czero(), noce_emit_move_insn(), noce_emit_store_flag(), noce_find_if_block(), noce_get_condition(), noce_process_if_block(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_minmax(), noce_try_sign_mask(), noce_try_store_flag_constants(), non_conflicting_reg_copy_p(), nonzero_bits(), num_sign_bit_copies(), operand_for_swap_move_operator(), rtx_writer::operand_has_default_value_p(), insn_gen_fn::operator()(), optab_libfunc(), optimize_bitfield_assignment_op(), output_asm_insn(), output_constant(), output_dependence(), output_operand(), output_ttype(), patch_jump_insn(), pattern_cost(), pc_set(), peep2_attempt(), peep2_find_free_register(), peep2_reg_dead_p(), peep2_regno_dead_p(), pieces_addr::pieces_addr(), pre_edge_insert(), pre_insert_copy_insn(), prepare_call_address(), prepare_call_arguments(), prepare_cmp_insn(), prepare_decl_rtl(), prepare_float_lib_cmp(), compare_by_pieces_d::prepare_mode(), prepare_operand(), print_exp(), print_rtl_with_bb(), probe_stack_range(), process_address_1(), process_alt_operands(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_bb_node_lives(), process_invariant_for_inheritance(), process_pending_assemble_externals(), process_regs_for_copy(), propagate_for_debug_subst(), push_insns(), push_reload(), read_complex_part(), rtx_reader::read_nested_rtx(), rtx_reader::read_rtx_operand(), recog_for_combine_1(), record_dead_and_set_regs(), record_dead_and_set_regs_1(), record_jump_cond(), record_jump_equiv(), record_operand_costs(), record_set(), record_store(), redirect_jump_1(), redirect_jump_2(), redirect_target(), redundant_insn(), reg_loc_descriptor(), reg_saved_in(), reg_set_p(), regno_use_in(), regno_val_use_in(), regrename_do_replace(), relational_result(), reload(), reload_as_needed(), reload_combine(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), reload_reg_free_for_value_p(), reload_reg_reaches_end_p(), remove_inheritance_pseudos(), remove_note(), remove_pseudos(), replace_dead_reg(), replace_read(), resolve_clobber(), resolve_reg_notes(), resolve_shift_zext(), resolve_simple_move(), rest_of_clean_state(), reverse_equiv_p(), reverse_op(), reversed_comparison(), reversed_condition(), round_push(), rtl_for_decl_init(), rtl_for_decl_location(), rtl_force_nonfallthru(), rtl_lv_add_condition_to_bb(), rtl_redirect_edge_and_branch_force(), rtl_verify_bb_insn_chain(), rtl_verify_edges(), rtx_equal_for_cselib_1(), op_by_pieces_d::run(), scan_insn(), scan_one_insn(), scan_reads(), sel_bb_empty_or_nop_p(), set_dst_reg_note(), set_for_reg_notes(), set_of(), set_stack_check_libfunc(), set_storage_via_libcall(), set_unique_reg_note(), set_user_assembler_name(), setup_live_pseudos_and_spill_after_risky_transforms(), setup_reg_equiv(), setup_regno_cost_classes_by_aclass(), setup_save_areas(), setup_sp_offset(), shift_amt_for_vec_perm_mask(), shorten_branches(), simple_move(), simple_move_p(), simplify_and_const_int_1(), simplify_context::simplify_associative_operation(), simplify_context::simplify_binary_operation(), simplify_context::simplify_binary_operation_1(), simplify_context::simplify_binary_operation_series(), simplify_context::simplify_byte_swapping_operation(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_binary_operation(), simplify_const_relational_operation(), simplify_const_unary_operation(), simplify_const_vector_subreg(), simplify_context::simplify_distributive_operation(), simplify_context::simplify_gen_subreg(), simplify_gen_subreg_concatn(), simplify_if_then_else(), simplify_immed_subreg(), simplify_context::simplify_merge_mask(), simplify_operand_subreg(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation(), simplify_context::simplify_relational_operation_1(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_subreg_concatn(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_using_initial_values(), simplify_while_replacing(), single_reg_class(), single_reg_operand_class(), single_set(), single_set_2(), single_set_for_csa(), sjlj_emit_function_enter(), sjlj_fix_up_crossing_landing_pad(), skip_usage_debug_insns(), spill_pseudos(), spill_pseudos(), split_all_insns(), split_if_necessary(), split_reg(), st_expr_entry(), stack_protect_epilogue(), std_expand_builtin_va_start(), store_expr(), store_field(), store_fixed_bit_field_1(), store_integral_bit_field(), store_killed_after(), store_one_arg(), store_split_bit_field(), store_unaligned_arguments_into_pseudos(), substitute(), suitable_set_for_replacement(), tablejump_casesi_pattern(), tablejump_p(), target_supports_divmod_p(), true_dependence(), true_dependence_1(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_casesi(), try_combine(), try_const_anchors(), try_crossjump_to_edge(), try_emit_cmove_seq(), try_fwprop_subst_pattern(), try_head_merge_bb(), try_replace_in_use(), try_split(), try_store_by_multiple_pieces(), rtx_properties::try_to_add_insn(), try_validate_parallel(), undo_optional_reloads(), unroll_loop_constant_iterations(), unroll_loop_runtime_iterations(), update_alignments(), update_br_prob_note(), update_ebb_live_info(), update_equiv(), update_equiv_regs(), update_nonlocal_goto_save_area(), update_rsp_from_reg_equal(), uses_hard_regs_p(), val_bind(), val_resolve(), validate_pattern(), variable_merge_over_cur(), vector_compare_rtx(), verify_changes(), vt_init_cfa_base(), vt_initialize(), widen_bswap(), widen_leading(), and write_dependence_p().

◆ NUM_RTX_CODE

#define NUM_RTX_CODE   ((int) LAST_AND_UNUSED_RTX_CODE)
The cast here, saves many elsewhere.   

◆ OBJECT_P

◆ ORIGINAL_REGNO

◆ PAT_VAR_LOCATION_DECL

#define PAT_VAR_LOCATION_DECL ( PAT)    (XCTREE ((PAT), 0, VAR_LOCATION))
Variable declaration and the location of a variable.   

Referenced by compute_bb_dataflow(), dw_loc_list_1(), emit_notes_in_bb(), rtx_writer::print_rtx(), and use_type().

◆ PAT_VAR_LOCATION_LOC

◆ PAT_VAR_LOCATION_STATUS

#define PAT_VAR_LOCATION_STATUS ( PAT)
Value:
(RTL_FLAG_CHECK1 ("PAT_VAR_LOCATION_STATUS", PAT, VAR_LOCATION) \
->u2.var_location_status)
Initialization status of the variable in the location.  Status
can be unknown, uninitialized or initialized.  See enumeration
type below.   

Referenced by gen_rtx_VAR_LOCATION(), and rtx_writer::print_rtx().

◆ pic_offset_table_rtx

◆ PREFETCH_SCHEDULE_BARRIER_P

#define PREFETCH_SCHEDULE_BARRIER_P ( RTX)     (RTL_FLAG_CHECK1 ("PREFETCH_SCHEDULE_BARRIER_P", (RTX), PREFETCH)->volatil)
True if RTX is flagged to be a scheduling barrier.   

◆ PUT_CODE

◆ PUT_MODE_RAW

#define PUT_MODE_RAW ( RTX,
MODE )   ((RTX)->mode = (MODE))

◆ PUT_NUM_ELEM

#define PUT_NUM_ELEM ( RTVEC,
NUM )   ((RTVEC)->num_elem = (NUM))

Referenced by rtvec_alloc().

◆ PUT_REG_NOTE_KIND

◆ REG_ATTRS

◆ REG_CHECK

#define REG_CHECK ( RTX)    (&(RTX)->u.reg)

Referenced by rhs_regno(), and set_regno_raw().

◆ REG_EXPR

◆ REG_FUNCTION_VALUE_P

#define REG_FUNCTION_VALUE_P ( RTX)     (RTL_FLAG_CHECK2 ("REG_FUNCTION_VALUE_P", (RTX), REG, PARALLEL)->return_val)
1 if RTX is a reg or parallel that is the current function's return
value.   

Referenced by assign_parms(), bb_is_just_return(), expand_divmod(), expand_function_end(), flow_active_insn_p(), reload(), reload_combine_note_use(), and reload_cse_simplify().

◆ REG_NOTE_KIND

#define REG_NOTE_KIND ( LINK)    ((enum reg_note) GET_MODE (LINK))
Define macros to extract and insert the reg-note kind in an EXPR_LIST.   

Referenced by add_shallow_copy_of_reg_note(), br_prob_note_reliable_p(), build_def_use(), calculate_loop_reg_pressure(), can_combine_p(), combine_and_move_insns(), combine_instructions(), combine_predictions_for_insn(), combine_reloads(), compute_ld_motion_mems(), concat_INSN_LIST(), copy_frame_info_to_split_insn(), copyprop_hardreg_forward_1(), count_reg_usage(), cse_extended_basic_block(), delete_computation(), delete_related_insns(), df_insn_refs_collect(), df_notes_rescan(), df_remove_dead_and_unused_notes(), df_remove_dead_eq_notes(), df_simulate_one_insn_forwards(), distribute_notes(), duplicate_reg_note(), dwarf2out_frame_debug(), eliminate_regs_1(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_copy_of_insn_after(), emit_delay_sequence(), emit_group_load_into_temps(), emit_group_move_into_temps(), fill_slots_from_thread(), find_all_hard_reg_sets(), find_equiv_reg(), find_moveable_pseudos(), find_reg_equal_equiv_note(), find_reg_note(), find_regno_note(), fix_reg_dead_note(), get_args_size(), hash_scan_set(), hash_scan_set(), init_alias_analysis(), init_label_info(), insn_invalid_p(), insns_have_identical_cfa_notes(), invert_br_probabilities(), lra_eliminate_regs_1(), make_edges(), mark_target_live_regs(), move_dead_notes(), no_unhandled_cfa(), old_insns_match_p(), peep2_attempt(), print_insn_with_notes(), process_bb_lives(), push_reload(), record_dead_and_set_regs(), record_opr_changes(), reg_inc_found_and_valid_p(), regstat_bb_compute_ri(), reload(), reload_as_needed(), reload_combine(), reload_cse_move2add_invalidate(), remove_note(), remove_reg_equal_equiv_notes(), resolve_reg_notes(), rtl_predicted_by_p(), set_label_offsets(), spill_pseudos(), try_combine(), try_fwprop_subst_notes(), try_fwprop_subst_pattern(), try_replace_reg(), try_split(), rtx_properties::try_to_add_insn(), update_auto_inc_notes(), update_equiv_regs(), update_inc_notes(), update_reg_dead_notes(), update_reg_equal_equiv_notes(), update_reg_unused_notes(), validate_equiv_mem(), and validate_replace_rtx_group().

◆ REG_NOTES

#define REG_NOTES ( INSN)    XEXP(INSN, 6)
Holds a list of notes on what this insn does to various REGs.
It is a chain of EXPR_LIST rtx's, where the second operand is the
chain pointer and the first operand is the REG being described.
The mode field of the EXPR_LIST contains not a real machine mode
but a value from enum reg_note.   

Referenced by add_int_reg_note(), add_reg_note(), build_def_use(), calculate_elim_costs_all_insns(), calculate_loop_reg_pressure(), calculate_needs_all_insns(), can_combine_p(), canonicalize_insn(), combine_and_move_insns(), combine_instructions(), combine_predictions_for_insn(), combine_reloads(), cond_exec_process_insns(), copy_frame_info_to_split_insn(), copyprop_hardreg_forward_1(), cse_change_cc_mode_insn(), cse_extended_basic_block(), cse_insn(), decrease_live_ranges_number(), delete_computation(), delete_prior_computation(), delete_related_insns(), df_create_unused_note(), df_insn_refs_collect(), df_note_bb_compute(), df_notes_rescan(), df_remove_dead_and_unused_notes(), df_remove_dead_eq_notes(), df_set_dead_notes_for_mw(), df_set_unused_notes_for_mw(), df_simulate_one_insn_forwards(), distribute_notes(), dwarf2out_frame_debug(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_copy_of_insn_after(), emit_delay_sequence(), fill_slots_from_thread(), find_all_hard_reg_sets(), find_equiv_reg(), find_moveable_pseudos(), find_reg_equal_equiv_note(), find_reg_note(), find_regno_note(), fix_reg_dead_note(), init_alias_analysis(), init_label_info(), insns_have_identical_cfa_notes(), instantiate_virtual_regs(), invert_br_probabilities(), make_call_insn_raw(), make_debug_insn_raw(), make_edges(), make_insn_raw(), make_jump_insn_raw(), mark_target_live_regs(), move_dead_notes(), no_unhandled_cfa(), old_insns_match_p(), peep2_attempt(), print_insn_with_notes(), process_bb_lives(), push_reload(), recog_for_combine_1(), record_dead_and_set_regs(), record_opr_changes(), reg_inc_found_and_valid_p(), reg_scan(), regstat_bb_compute_ri(), reload(), reload_as_needed(), reload_combine(), reload_cse_move2add_invalidate(), remove_note(), remove_reg_equal_equiv_notes(), replace_store_insn(), reset_all_used_flags(), reset_insn_used_flags(), resolve_reg_notes(), rtl_predicted_by_p(), set_label_offsets(), set_unique_reg_note(), spill_pseudos(), try_combine(), try_fwprop_subst_notes(), try_fwprop_subst_pattern(), try_split(), rtx_properties::try_to_add_insn(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), update_auto_inc_notes(), update_br_prob_note(), update_equiv_regs(), update_inc_notes(), update_reg_dead_notes(), update_reg_equal_equiv_notes(), update_reg_unused_notes(), validate_equiv_mem(), validate_replace_rtx_group(), and verify_insn_sharing().

◆ REG_NREGS

◆ REG_OFFSET

#define REG_OFFSET ( RTX)    (REG_ATTRS (RTX) == 0 ? 0 : REG_ATTRS (RTX)->offset)
For a REG rtx, the offset from the start of REG_EXPR, if known, as an
HOST_WIDE_INT.   

Referenced by add_stores(), get_tracked_reg_offset(), rtx_writer::print_rtx_operand_code_r(), same_variable_part_p(), update_reg_offset(), use_type(), var_reg_delete(), and vt_get_decl_and_offset().

◆ REG_P

#define REG_P ( X)    (GET_CODE (X) == REG)
Predicate yielding nonzero iff X is an rtx for a register.   

Referenced by add_insn_allocno_copies(), add_regs_to_insn_regno_info(), add_removable_extension(), add_store_equivs(), add_stored_regs(), add_stores(), add_used_regs(), add_uses(), adjust_cleared_regs(), adjust_for_new_dest(), adjust_one_expanded_partition_var(), aggregate_value_p(), allocate_dynamic_stack_space(), allocate_initial_values(), alter_reg(), alter_subreg(), alter_subregs(), altered_reg_used(), analyze_insn_to_expand_var(), analyze_iv_to_split_insn(), insn_propagation::apply_to_lvalue_1(), insn_propagation::apply_to_rvalue_1(), approx_reg_cost(), arithmetic_flags_clobber_p(), assemble_variable(), assign_by_spills(), assign_mem_slot(), assign_parm_adjust_entry_rtl(), assign_parm_setup_block(), assign_parm_setup_block_p(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms(), assign_spill_hard_regs(), autoinc_split(), avoid_likely_spilled_reg(), baseness(), bb_estimate_probability_locally(), bb_is_just_return(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), bbs_ok_for_cmove_arith(), find_comparison_dom_walker::before_dom_children(), block_move_libcall_safe_for_call_parm(), build_def_use(), bypass_conditional_jumps(), calculate_bb_reg_pressure(), calculate_elim_costs_all_insns(), calculate_gen_cands(), calculate_needs_all_insns(), calculate_spill_cost(), can_change_dest_mode(), can_combine_p(), can_decompose_p(), can_move_invariant_reg(), can_reload_into(), can_simplify_addr(), canon_asm_operands(), canon_reg_for_combine(), canon_rtx(), canonicalize_condition(), canonicalize_insn(), cant_combine_insn_p(), change_zero_ext(), check_and_make_def_conflict(), check_and_process_move(), check_cond_move_block(), check_promoted_subreg(), check_secondary_memory_needed_p(), choose_reload_regs(), cleanup_auto_inc_dec(), clobber_reg_mode(), clobber_return_register(), clobber_slot_part(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_and_move_insns(), combine_reaching_defs(), combine_reload_insn(), combine_reloads(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), commutative_operand_precedence(), compare_by_pieces(), compare_reg_or_pc(), compress_float_constant(), computation_cost(), compute_bb_dataflow(), compute_ld_motion_mems(), compute_local_properties(), cond_move_convert_if_block(), conforming_compare(), constprop_register(), constrain_operands(), contains_reg_p(), contains_reloaded_insn_p(), convert_debug_memory_address(), convert_mode_scalar(), convert_modes(), copy_blkmode_from_reg(), copy_cost(), copy_insn_1(), copy_rtx(), copy_rtx_if_shared_1(), copy_to_suggested_reg(), copyprop_hardreg_forward_1(), count_reg_usage(), count_stores(), covers_regno_no_parallel_p(), cprop_find_used_regs(), cprop_reg_p(), create_cand(), create_cands(), cse_cc_succs(), cse_change_cc_mode(), cse_condition_code_reg(), cse_insn(), cse_process_note_1(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_invalidate_regno_val(), cselib_invalidate_rtx(), cselib_lookup_1(), cselib_preserve_cfa_base_value(), cselib_record_set(), cselib_record_sets(), cselib_reg_set_mode(), curr_insn_transform(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_or_set_p(), dead_pseudo_p(), decl_overlaps_hard_reg_set_p(), decompose(), decrease_live_ranges_number(), deletable_insn_p(), delete_address_reloads_1(), delete_computation(), delete_dead_insn(), delete_prior_computation(), delete_slot_part(), delete_unmarked_insns(), df_def_record_1(), df_find_def(), df_find_hard_reg_defs_1(), df_find_single_def_src(), df_find_use(), df_get_call_refs(), df_get_entry_block_def_set(), df_get_exit_block_use_set(), df_ref_record(), df_uses_record(), df_whole_mw_reg_dead_p(), df_whole_mw_reg_unused_p(), diddle_return_value_1(), distribute_links(), distribute_notes(), do_input_reload(), do_jump(), do_local_cprop(), do_output_reload(), do_remat(), do_tablejump(), doloop_condition_get(), dwarf2out_frame_debug(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_restore(), dwarf2out_frame_debug_cfa_val_expression(), dwarf2out_frame_debug_def_cfa(), dwarf2out_frame_debug_expr(), dwf_cfa_reg(), eliminate_partially_redundant_loads(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), address_reload_context::emit_autoinc(), emit_block_cmp_via_loop(), emit_group_load_1(), emit_group_store(), emit_input_reload_insns(), emit_libcall_block_1(), emit_library_call_value_1(), emit_move_complex(), emit_move_complex_parts(), emit_move_insn(), emit_move_list(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_output_reload_insns(), emit_push_insn(), emit_reload_insns(), emit_store_flag_force(), equiv_address_substitution(), equiv_constant(), equivalent_reg_at_start(), expand_abs(), expand_addsub_overflow(), expand_asm_stmt(), expand_assignment(), expand_binop(), expand_builtin_apply(), expand_builtin_apply_args(), expand_builtin_frame_address(), expand_builtin_setjmp_receiver(), expand_builtin_thread_pointer(), expand_call(), expand_clobber(), expand_cmpstr(), expand_cmpstrn_or_cmpmem(), expand_debug_parm_decl(), expand_divmod(), expand_doubleword_bswap(), expand_doubleword_mult(), expand_eh_return(), expand_expr_real_1(), expand_expr_real_2(), expand_expr_real_gassign(), expand_float(), expand_function_end(), expand_function_start(), expand_loc(), expand_one_register_var(), expand_return(), extract_bit_field_1(), extract_bit_field_using_extv(), extract_fixed_bit_field_1(), extract_integral_bit_field(), extract_mentioned_regs(), extract_split_bit_field(), fill_slots_from_thread(), find_all_hard_regs(), find_and_remove_re(), find_args_size_adjust(), find_avail_set(), find_bypass_set(), find_call_crossed_cheap_reg(), find_cc_set(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_dummy_reload(), find_equiv_reg(), find_first_parameter_load(), find_invariant_insn(), find_mem(), find_moveable_pseudos(), find_pseudo_copy(), find_reg(), find_reg_fusage(), find_reg_offset_for_const(), find_regno_fusage(), find_regno_note(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_toplev(), find_reusable_reload(), find_single_use(), find_single_use_1(), find_split_point(), find_src_set_src(), find_src_status(), find_temp_slot_from_address(), find_used_regs(), fix_bb_live_info(), fix_reg_dead_note(), fix_reg_equiv_init(), flow_active_insn_p(), flush_hash_table(), fold_rtx(), force_int_to_mode(), force_operand(), force_reg(), forget_old_reloads_1(), forward_propagate_and_simplify(), forward_propagate_subreg(), forward_propagate_subreg(), gcse_emit_move_after(), gen_exp(), gen_insn(), gen_lowpart_common(), gen_lowpart_general(), gen_lowpart_or_truncate(), gen_memset_value_from_prev(), gen_reload(), gen_reload_chain_without_interm_reg_p(), general_operand(), get_addr(), get_avail_load_store_reg(), get_base_reg(), get_base_term(), get_call_args(), get_elimination(), get_equiv(), get_equiv_regno(), get_extended_src_reg(), get_hard_regno(), get_index_term(), get_last_value(), get_last_value_validate(), get_mem_expr_from_op(), get_op_class(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_regno(), get_reload_reg(), get_sub_rtx(), get_subtarget(), go_through_subreg(), hard_function_value(), hard_reg_set_here_p(), HASH(), hash_rtx(), hash_scan_set(), hash_scan_set(), hash_scan_set(), if_then_else_cond(), implies_p(), in_class_p(), inc_for_reload(), indirect_jump_optimize(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), insert_regs(), insert_value_copy_on_edge(), insert_with_costs(), instantiate_decl_rtl(), instantiate_virtual_regs_in_insn(), interesting_dest_for_shprep_1(), internal_arg_pointer_based_exp(), internal_arg_pointer_based_exp_scan(), invalidate_dest(), invalidate_for_call(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invalidate_reg(), invariant_p(), ira_implicitly_set_insn_hard_regs(), ira_register_new_scratch_op(), ira_restore_scratches(), ira_setup_alts(), is_based_loc(), is_dead_reg(), is_parallel_of_n_reg_sets(), is_pseudo_reg(), iv_analyze_biv(), iv_analyze_def(), iv_analyze_expr(), iv_get_reaching_def(), keep_with_call_p(), kill_set_value(), kill_value(), likely_spilled_retval_1(), likely_spilled_retval_p(), loc_cmp(), loc_descriptor(), loc_equivalence_callback(), look_for_hardregs(), lookup(), lookup_for_remove(), lra_coalesce(), lra_constraints(), lra_create_new_reg(), lra_create_new_reg_with_unique_value(), lra_delete_dead_insn(), lra_eliminate_reg_if_possible(), lra_eliminate_regs_1(), lra_emit_add(), lra_emit_move(), lra_final_code_change(), lra_set_insn_recog_data(), lra_substitute_pseudo(), lra_undo_inheritance(), make_compound_operation_int(), make_debug_expr_from_rtl(), make_extraction(), make_more_copies(), make_pseudo_conflict(), make_safe_from(), mark_altered(), mark_effect(), mark_hard_reg_early_clobbers(), mark_nonreg_stores_1(), mark_nonreg_stores_2(), mark_not_eliminable(), mark_referenced_regs(), mark_referenced_resources(), mark_reg_store(), mark_set_regs(), mark_set_resources(), mark_target_live_regs(), mark_user_reg(), match_asm_constraints_1(), match_reload(), may_assign_reg_p(), maybe_legitimize_operand_same_code(), mem_loc_descriptor(), memory_address_addr_space(), memrefs_conflict_p(), mention_regs(), mentions_nonequal_regs(), merge_equiv_classes(), move2add_note_store(), move2add_record_mode(), move_insn_for_shrink_wrap(), move_invariant_reg(), narrow_reload_pseudo_class(), need_cmov_or_rewire(), new_cselib_val(), no_equiv(), noce_bbs_ok_for_cond_zero_arith(), noce_emit_move_insn(), noce_get_condition(), noce_process_if_block(), noce_try_abs(), noce_try_inverse_constants(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), non_conflicting_reg_copy_p(), nonoverlapping_memrefs_p(), note_add_store(), note_pattern_stores(), note_reg_elim_costly(), note_sets_clobbers(), notreg_cost(), operand_subword_force(), operand_to_remat(), operands_match_p(), operands_match_p(), optimize_bitfield_assignment_op(), output_asm_operand_names(), output_operand(), parms_set(), parse_add_or_inc(), pre_check_invariant_p(), pre_insert_copy_insn(), precompute_arguments(), precompute_register_parameters(), prepare_call_address(), prepare_call_arguments(), prepare_shrink_wrap(), preserve_temp_slots(), process_addr_reg(), process_address_1(), process_alt_operands(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_bb_node_lives(), process_invariant_for_inheritance(), process_register_constraint_filters(), process_regs_for_copy(), process_single_reg_class_operands(), profile_function(), propagate_for_debug_subst(), push_block(), push_reload(), push_secondary_reload(), PUT_MODE(), read_complex_part(), recog_for_combine_1(), record_address_regs(), record_dead_and_set_regs(), record_dead_and_set_regs_1(), record_hard_reg_sets(), record_jump_cond(), record_last_set_info(), record_last_set_info(), record_one_stack_ref(), record_operand_costs(), record_out_operands(), record_promoted_value(), record_reg_classes(), record_reg_sets(), record_set(), record_store(), record_subregs_of_mode(), record_truncated_value(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_dead_at_p_1(), reg_is_parm_p(), reg_mentioned_p(), reg_or_subregno(), reg_overlap_mentioned_for_reload_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), reg_single_def_p(), reg_subword_p(), register_asm_p(), register_operand(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), rehash_using_reg(), reload(), reload_combine(), reload_combine_note_store(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), reload_cse_simplify_operands(), reload_cse_simplify_set(), reload_inner_reg_of_subreg(), reload_reg_free_for_value_p(), remove_clobbers(), remove_inheritance_pseudos(), remove_invalid_refs(), remove_invalid_subreg_refs(), remove_pseudos(), replace_dead_reg(), replace_expr_with_values(), replace_pseudos_in(), replace_read(), replace_rtx(), replace_single_def_regs(), requires_stack_frame_p(), resolve_shift_zext(), resolve_simple_move(), reverse_equiv_p(), reverse_op(), reversed_comparison_code_parts(), rtl_for_decl_location(), rtx_equal_for_cselib_1(), rtx_renumbered_equal_p(), safe_from_p(), SAFE_HASH(), same_variable_part_p(), save_call_clobbered_regs(), scan_loop(), scan_one_insn(), scan_paradoxical_subregs(), scratch_operand(), set_for_reg_notes(), set_nonzero_bits_and_sign_copies(), set_noop_p(), set_paradoxical_subreg(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), set_reg_attrs_from_value(), set_rtl(), set_slot_part(), setjmp_args_warning(), setjmp_vars_warning(), setup_incoming_promotions(), setup_reg_equiv(), shift_return_value(), simple_reg_p(), simple_rhs_p(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_const_relational_operation(), simplify_if_then_else(), simplify_operand_subreg(), simplify_context::simplify_plus_minus(), simplify_plus_minus_op_data_cmp(), simplify_set(), simplify_context::simplify_subreg(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), sp_based_mem_offset(), spilled_pseudo_p(), store_bit_field_1(), store_bit_field_using_insv(), store_constructor(), store_expr(), store_field(), store_integral_bit_field(), store_split_bit_field(), strip_paradoxical_subreg(), subst(), subst_indexed_address(), suitable_set_for_replacement(), swap_commutative_operands_with_target(), track_loc_p(), true_regnum(), truncated_to_mode(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_fwprop_subst(), try_fwprop_subst_pattern(), try_replace_in_use(), try_replace_reg(), rtx_properties::try_to_add_dest(), undo_optional_reloads(), unmentioned_reg_p(), unsigned_reg_p(), update_ebb_live_info(), update_equiv_regs(), update_live_status(), update_reg_dead_notes(), update_reg_unused_notes(), update_scratch_ops(), update_temp_slot_address(), use_group_regs(), use_reg_mode(), use_related_value(), use_type(), uses_hard_regs_p(), val_bind(), val_resolve(), validate_autoinc_and_mem_addr_p(), validate_equiv_mem(), validate_equiv_mem_from_store(), validate_replace_rtx_1(), validate_subreg(), var_lowpart(), variable_part_different_p(), variable_post_merge_perm_vals(), variable_union(), vectorizable_store(), verify_changes(), verify_reg_in_set(), verify_rtx_sharing(), vt_add_function_parameter(), vt_get_decl_and_offset(), will_delete_init_insn_p(), and write_complex_part().

◆ REG_POINTER

◆ REG_USERVAR_P

#define REG_USERVAR_P ( RTX)     (RTL_FLAG_CHECK1 ("REG_USERVAR_P", (RTX), REG)->volatil)

◆ REGNO

#define REGNO ( RTX)    (rhs_regno(RTX))
For a REG rtx, REGNO extracts the register number.  REGNO can only
be used on RHS.  Use SET_REGNO to change the value.   

Referenced by add_range_and_copies_from_move_list(), add_regs_to_insn_regno_info(), add_removable_extension(), inchash::add_rtx(), add_store_equivs(), add_stored_regs(), add_used_regs(), adjust_cleared_regs(), adjust_for_new_dest(), adjust_insn(), aggregate_value_p(), allocate_initial_values(), alter_subregs(), altered_reg_used(), analyzed_for_bivness_p(), approx_reg_cost(), arithmetic_flags_clobber_p(), assign_by_spills(), assign_parm_adjust_entry_rtl(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parms(), attempt_change(), avoid_likely_spilled_reg(), based_loc_descr(), baseness(), bb_valid_for_noce_process_p(), find_comparison_dom_walker::before_dom_children(), build_def_use(), bypass_block(), calculate_bb_reg_pressure(), calculate_elim_costs_all_insns(), calculate_gen_cands(), calculate_loop_reg_pressure(), calculate_needs_all_insns(), calculate_spill_cost(), can_change_dest_mode(), can_combine_p(), can_decompose_p(), can_move_invariant_reg(), can_simplify_addr(), canon_reg(), canon_rtx(), canonicalize_insn(), canonicalize_values_star(), cant_combine_insn_p(), change_loop(), change_regs(), change_zero_ext(), check_and_make_def_conflict(), check_and_process_move(), check_eliminable_occurrences(), check_secondary_memory_needed_p(), choose_reload_regs(), choose_reload_regs_init(), cleanup_auto_inc_dec(), clobber_reg_mode(), clobber_return_register(), clobber_slot_part(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_reaching_defs(), combine_reload_insn(), combine_reloads(), combine_set_extension(), combine_stack_adjustments_for_block(), compare_by_pieces(), compare_reg_or_pc(), compute_bb_dataflow(), compute_local_properties(), compute_transp(), conforming_compare(), consolidate_reg(), constrain_operands(), contains_reg_p(), contains_reloaded_insn_p(), convert_mode_scalar(), convert_modes(), copy_cost(), copy_info_to_removed_store_destinations(), copy_insn_1(), copy_rtx(), copy_rtx_if_shared_1(), copy_value(), copyprop_hardreg_forward_1(), count_reg_usage(), count_stores(), covers_regno_no_parallel_p(), cprop_find_used_regs(), cprop_insn(), cprop_jump(), create_cand(), create_cands(), create_insn_allocnos(), cse_cc_succs(), cse_change_cc_mode(), cse_condition_code_reg(), cse_insn(), cse_process_note_1(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_invalidate_regno_val(), cselib_invalidate_rtx(), cselib_lookup_1(), cselib_record_set(), cselib_reg_set_mode(), cselib_subst_to_values(), curr_insn_transform(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_or_set_p(), dead_pseudo_p(), debug_df_reg(), debugger_reg_number(), decl_overlaps_hard_reg_set_p(), decompose(), decompose_register(), decrease_live_ranges_number(), deletable_insn_p(), delete_address_reloads_1(), delete_dead_insn(), delete_output_reload(), delete_prior_computation(), delete_slot_part(), delete_trivially_dead_insns(), df_def_record_1(), df_find_def(), df_find_hard_reg_defs_1(), df_find_single_def_src(), df_find_use(), df_get_call_refs(), df_get_entry_block_def_set(), df_mark_reg(), df_ref_change_reg_with_loc(), df_ref_create_structure(), df_ref_record(), df_remove_dead_and_unused_notes(), df_simulate_one_insn_forwards(), df_word_lr_mark_ref(), diddle_return_value_1(), discover_loop(), discover_loops(), distribute_links(), distribute_notes(), do_input_reload(), do_local_cprop(), do_output_reload(), do_reload(), do_remat(), dump_hwloops(), dump_inc_insn(), dump_mem_insn(), dwarf2out_frame_debug_expr(), dwf_regno(), eliminate_partially_redundant_load(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), emit_block_cmp_via_loop(), emit_group_store(), emit_input_reload_insns(), emit_libcall_block_1(), emit_library_call_value_1(), emit_move_list(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_output_reload_insns(), emit_push_insn(), emit_reload_insns(), END_REGNO(), entry_register(), biv_entry_hasher::equal(), equiv_constant(), equiv_init_movable_p(), equiv_init_varies_p(), equivalent_reg_at_start(), exp_equiv_p(), expand_abs(), expand_asm_stmt(), expand_builtin_apply_args(), expand_builtin_init_dwarf_reg_sizes(), expand_call(), expand_debug_parm_decl(), expand_expr_real_1(), expand_expr_real_2(), expand_float(), expand_function_end(), expand_loc(), find_all_hard_regs(), find_and_remove_re(), find_args_size_adjust(), find_avail_set(), find_base_value(), find_bypass_set(), find_call_crossed_cheap_reg(), find_costs_and_classes(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_dummy_reload(), find_equiv_reg(), find_first_parameter_load(), find_implicit_sets(), find_inc(), find_moveable_pseudos(), find_oldest_value_reg(), find_pseudo_copy(), find_reg(), find_reg_fusage(), find_regno_fusage(), find_regno_note(), find_reload_regs(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), find_single_use(), find_single_use_1(), fix_bb_live_info(), fix_reg_equiv_init(), fold_rtx(), forget_old_reloads_1(), forward_propagate_subreg(), free_load_extend(), gen_exp(), gen_insn(), gen_memset_value_from_prev(), gen_reload(), general_operand(), generate_edge_moves(), get_call_args(), get_defs(), get_elimination(), get_equiv(), get_equiv_regno(), get_hard_regno(), get_last_value(), get_last_value_validate(), get_op_class(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_regno(), get_reload_reg(), get_subreg_tracking_sizes(), get_subtarget(), get_uses(), go_through_subreg(), hard_reg_set_here_p(), has_hard_reg_initial_val(), dead_debug_hash_descr::hash(), HASH(), hash_rtx(), hash_scan_set(), hash_scan_set(), in_class_p(), inc_for_reload(), indirect_jump_optimize(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), initial_return_save(), initialize_uninitialized_regs(), insert_insn_end_basic_block(), insert_regs(), insert_set_in_table(), insert_with_costs(), instantiate_virtual_regs_in_insn(), interesting_dest_for_shprep_1(), internal_arg_pointer_based_exp(), internal_arg_pointer_based_exp_scan(), invalidate_for_call(), invalidate_reg(), invariant_p(), ira(), ira_bad_reload_regno_1(), ira_create_new_reg(), ira_flattening(), ira_implicitly_set_insn_hard_regs(), ira_register_new_scratch_op(), ira_remove_insn_scratches(), ira_restore_scratches(), ira_subloop_allocnos_can_differ_p(), is_based_loc(), is_dead_debug_insn(), is_dead_reg(), is_pseudo_reg(), keep_with_call_p(), kill_autoinc_value(), kill_set_value(), kill_value(), latch_dominating_def(), likely_spilled_retval_1(), likely_spilled_retval_p(), load_register_parameters(), loc_cmp(), look_for_hardregs(), lookup_for_remove(), lookup_set(), lra_coalesce(), lra_constraints(), lra_create_new_reg(), lra_create_new_reg_with_unique_value(), lra_delete_dead_insn(), lra_eliminate_reg_if_possible(), lra_final_code_change(), lra_rtx_hash(), lra_set_insn_recog_data(), lra_substitute_pseudo(), lra_undo_inheritance(), make_hard_regno_dead(), make_more_copies(), make_object_dead(), make_pseudo_conflict(), make_safe_from(), mark_altered(), mark_effect(), mark_hard_reg_dead(), mark_hard_reg_early_clobbers(), mark_hard_reg_live(), mark_not_eliminable(), mark_ref_dead(), mark_ref_live(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_reg_death(), mark_reg_pointer(), mark_reg_store(), mark_set_regs(), mark_set_resources(), mark_target_live_regs(), mark_used_regs_combine(), match_pattern_2(), match_reload(), match_rtx(), may_assign_reg_p(), maybe_fix_stack_asms(), maybe_legitimize_operand_same_code(), mem_loc_descriptor(), memref_referenced_p(), mention_regs(), mentions_nonequal_regs(), merge_equiv_classes(), merge_in_block(), modify_move_list(), move2add_note_store(), move2add_record_mode(), move2add_record_sym_value(), move2add_use_add2_insn(), move2add_use_add3_insn(), move_deaths(), move_insn_for_shrink_wrap(), move_invariant_reg(), move_invariants(), move_unallocated_pseudos(), multiple_reg_loc_descriptor(), must_not_spill_p(), narrow_reload_pseudo_class(), new_cselib_val(), next_set(), no_equiv(), non_conflicting_reg_copy_p(), nonoverlapping_memrefs_p(), nonzero_bits1(), note_add_store(), note_pattern_stores(), note_reg_elim_costly(), note_sets_clobbers(), ok_for_base_p_nonstrict(), ok_for_index_p_nonstrict(), old_insns_match_p(), operand_to_remat(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), output_asm_operand_names(), output_operand(), parms_set(), peep2_reg_dead_p(), pre_check_invariant_p(), pre_delete(), pre_insert_copy_insn(), prepare_call_arguments(), prepare_shrink_wrap(), rtx_writer::print_rtx_operand_code_r(), print_value(), process_addr_reg(), process_address_1(), process_alt_operands(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_bb_node_lives(), process_invariant_for_inheritance(), process_register_constraint_filters(), process_regs_for_copy(), process_single_reg_class_operands(), profile_function(), push_reload(), push_secondary_reload(), PUT_MODE(), read_complex_part(), rtx_reader::read_rtx_operand(), record_address_regs(), record_biv(), record_dead_and_set_regs(), record_dead_and_set_regs_1(), record_hard_reg_sets(), record_jump_cond(), record_last_reg_set_info(), record_last_set_info(), record_operand_costs(), record_out_operands(), record_promoted_value(), record_reg_classes(), record_reg_sets(), record_set(), record_stack_refs(), record_subregs_of_mode(), record_truncated_value(), record_value_for_reg(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_available_p(), reg_bitfield_target_p(), reg_changed_after_insn_p(), reg_dead_at_p(), reg_dead_at_p_1(), reg_fits_class_p(), reg_in_class_p(), reg_inc_found_and_valid_p(), reg_loc_descriptor(), reg_mentioned_p(), reg_nonzero_bits_for_combine(), reg_not_set_p(), reg_num_sign_bit_copies_for_combine(), reg_or_subregno(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_saved_in(), reg_scan_mark_refs(), reg_set_p(), reg_single_def_p(), reg_truncated_to_mode(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), regrename_do_replace(), regstat_bb_compute_ri(), rehash_using_reg(), reload(), reload_adjust_reg_for_mode(), reload_adjust_reg_for_temp(), reload_as_needed(), reload_combine(), reload_combine_note_store(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify_operands(), reload_cse_simplify_set(), reload_reg_reaches_end_p(), reload_reg_rtx_reaches_end_p(), remove_inheritance_pseudos(), remove_invalid_subreg_refs(), remove_pseudos(), replace_dead_reg(), replace_oldest_value_addr(), replace_oldest_value_reg(), replace_pseudos_in(), replace_ref(), replace_rtx(), requires_stack_frame_p(), reverse_equiv_p(), rtl_for_decl_location(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), safe_from_p(), SAFE_HASH(), save_call_clobbered_regs(), scan_loop(), scan_one_insn(), scan_paradoxical_subregs(), scan_rtx_address(), scan_rtx_reg(), scratch_operand(), set_allocno_somewhere_renamed_p(), set_nonzero_bits_and_sign_copies(), set_noop_p(), set_paradoxical_subreg(), set_reg_attrs_from_value(), set_slot_part(), setjmp_args_warning(), setjmp_vars_warning(), setup_live_pseudos_and_spill_after_risky_transforms(), setup_reg_equiv(), simple_reg_p(), simplify_context::simplify_binary_operation_1(), simplify_operand_subreg(), simplify_context::simplify_plus_minus(), simplify_plus_minus_op_data_cmp(), simplify_set(), simplify_context::simplify_subreg(), spilled_pseudo_p(), split_live_ranges_for_shrink_wrap(), split_reg(), store_can_be_removed_p(), store_integral_bit_field(), store_ops_ok(), subreg_nregs(), subreg_regno(), subst(), subst_indexed_address(), subst_reg_equivs(), substitute(), track_loc_p(), transform_ifelse(), true_regnum(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_merge(), try_merge_compare(), try_shrink_wrapping(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_reg(), undo_optional_reloads(), union_defs(), update_auto_inc_notes(), update_bb_reg_pressure(), update_ebb_live_info(), update_equiv_regs(), update_live_status(), update_reg_unused_notes(), update_scratch_ops(), update_table_tick(), use_type(), val_bind(), val_resolve(), validate_replace_rtx_1(), validate_subreg(), var_lowpart(), var_reg_decl_set(), var_reg_delete(), var_reg_delete_and_set(), variable_merge_over_cur(), variable_part_different_p(), variable_post_merge_new_vals(), variable_post_merge_perm_vals(), variable_union(), vectorizable_store(), verify_reg_in_set(), verify_rtx_sharing(), vt_add_function_parameter(), vt_equate_reg_base_value(), vt_init_cfa_base(), vt_initialize(), will_delete_init_insn_p(), and write_complex_part().

◆ REGNO_PTR_FRAME_P

#define REGNO_PTR_FRAME_P ( REGNUM)
Value:
#define VIRTUAL_REGISTER_NUM_P(REG_NO)
Definition rtl.h:1979
#define HARD_FRAME_POINTER_REGNUM
Definition rtl.h:3835
Nonzero if REGNUM is a pointer into the stack frame.   

Referenced by nonoverlapping_memrefs_p().

◆ return_address_pointer_rtx

#define return_address_pointer_rtx    (this_target_rtl->x_return_address_pointer_rtx)

◆ RTL_CHECK1

#define RTL_CHECK1 ( RTX,
N,
C1 )   ((RTX)->u.fld[N])
General accessor macros for accessing the fields of an rtx.   

◆ RTL_CHECK2

#define RTL_CHECK2 ( RTX,
N,
C1,
C2 )   ((RTX)->u.fld[N])

◆ RTL_CHECKC1

#define RTL_CHECKC1 ( RTX,
N,
C )   ((RTX)->u.fld[N])

◆ RTL_CHECKC2

#define RTL_CHECKC2 ( RTX,
N,
C1,
C2 )   ((RTX)->u.fld[N])

◆ RTL_CHECKC3

#define RTL_CHECKC3 ( RTX,
N,
C1,
C2,
C3 )   ((RTX)->u.fld[N])

◆ RTL_CONST_CALL_P

#define RTL_CONST_CALL_P ( RTX)     (RTL_FLAG_CHECK1 ("RTL_CONST_CALL_P", (RTX), CALL_INSN)->unchanging)
1 if RTX is a call to a const function.  Built from ECF_CONST and
TREE_READONLY.   

Referenced by delete_prior_computation(), df_get_call_refs(), emit_call_1(), emit_copy_of_insn_after(), memref_used_between_p(), scan_insn(), store_killed_in_insn(), and rtx_properties::try_to_add_insn().

◆ RTL_CONST_OR_PURE_CALL_P

◆ RTL_FLAG_CHECK1

#define RTL_FLAG_CHECK1 ( NAME,
RTX,
C1 )   (RTX)

◆ RTL_FLAG_CHECK2

#define RTL_FLAG_CHECK2 ( NAME,
RTX,
C1,
C2 )   (RTX)

◆ RTL_FLAG_CHECK3

#define RTL_FLAG_CHECK3 ( NAME,
RTX,
C1,
C2,
C3 )   (RTX)

◆ RTL_FLAG_CHECK4

#define RTL_FLAG_CHECK4 ( NAME,
RTX,
C1,
C2,
C3,
C4 )   (RTX)

◆ RTL_FLAG_CHECK5

#define RTL_FLAG_CHECK5 ( NAME,
RTX,
C1,
C2,
C3,
C4,
C5 )   (RTX)

◆ RTL_FLAG_CHECK6

#define RTL_FLAG_CHECK6 ( NAME,
RTX,
C1,
C2,
C3,
C4,
C5,
C6 )   (RTX)

◆ RTL_FLAG_CHECK7

#define RTL_FLAG_CHECK7 ( NAME,
RTX,
C1,
C2,
C3,
C4,
C5,
C6,
C7 )   (RTX)

◆ RTL_INSN_CHAIN_FLAG_CHECK

#define RTL_INSN_CHAIN_FLAG_CHECK ( NAME,
RTX )   (RTX)

Referenced by INSN_UID().

◆ RTL_LOCATION

#define RTL_LOCATION ( X)
Value:
(INSN_P (X) ? \
#define UNKNOWN_LOCATION
Definition input.h:32
#define INSN_P(X)
Definition rtl.h:868
LOCATION of an RTX if relevant.   

Referenced by make_tree().

◆ RTL_LOOPING_CONST_OR_PURE_CALL_P

#define RTL_LOOPING_CONST_OR_PURE_CALL_P ( RTX)     (RTL_FLAG_CHECK1 ("CONST_OR_PURE_CALL_P", (RTX), CALL_INSN)->call)
1 if RTX is a call to a looping const or pure function.  Built from
ECF_LOOPING_CONST_OR_PURE and DECL_LOOPING_CONST_OR_PURE_P.   

Referenced by compute_hash_table_work(), cselib_process_insn(), deletable_insn_p(), emit_call_1(), emit_copy_of_insn_after(), find_exits(), find_invariants_bb(), mark_insn(), and record_opr_changes().

◆ RTL_PURE_CALL_P

#define RTL_PURE_CALL_P ( RTX)     (RTL_FLAG_CHECK1 ("RTL_PURE_CALL_P", (RTX), CALL_INSN)->return_val)
1 if RTX is a call to a pure function.  Built from ECF_PURE and
DECL_PURE_P.   

Referenced by df_get_call_refs(), emit_call_1(), emit_copy_of_insn_after(), and rtx_properties::try_to_add_insn().

◆ RTVEC_ELT

◆ rtx_alloc_v

#define rtx_alloc_v ( c,
SZ )   rtx_alloc_stat_v (c MEM_STAT_INFO, SZ)

Referenced by immed_wide_int_const().

◆ rtx_alloca

#define rtx_alloca ( code)     rtx_init ((rtx) alloca (RTX_CODE_SIZE ((code))), (code))

◆ RTX_ARITHMETIC_MASK

#define RTX_ARITHMETIC_MASK   (~1)

◆ RTX_ARITHMETIC_RESULT

#define RTX_ARITHMETIC_RESULT   (RTX_COMM_ARITH & RTX_ARITHMETIC_MASK)

◆ RTX_BINARY_MASK

#define RTX_BINARY_MASK   (~3)

◆ RTX_BINARY_RESULT

#define RTX_BINARY_RESULT   (RTX_COMPARE & RTX_BINARY_MASK)

◆ RTX_CODE

◆ RTX_CODE_BITSIZE

#define RTX_CODE_BITSIZE   8
Similar, but since generator files get more entries...  

◆ RTX_CODE_SIZE

#define RTX_CODE_SIZE ( CODE)    rtx_code_size[CODE]

◆ RTX_COMMUTATIVE_MASK

#define RTX_COMMUTATIVE_MASK   (~2)

◆ RTX_COMMUTATIVE_RESULT

#define RTX_COMMUTATIVE_RESULT   (RTX_COMM_COMPARE & RTX_COMMUTATIVE_MASK)

◆ RTX_COMPARE_MASK

#define RTX_COMPARE_MASK   (~1)

◆ RTX_COMPARE_RESULT

#define RTX_COMPARE_RESULT   (RTX_COMPARE & RTX_COMPARE_MASK)

◆ RTX_FLAG

#define RTX_FLAG ( RTX,
FLAG )   ((RTX)->FLAG)
General accessor macros for accessing the flags of an rtx.   
Access an individual rtx flag, with no checking of any kind.   

Referenced by build_constant_desc(), cleanup_auto_inc_dec(), copy_insn_1(), copy_rtx_if_shared_1(), default_stack_protect_guard(), mark_used_flags(), rtx_writer::print_rtx(), read_flags(), shallow_copy_rtx(), and verify_rtx_sharing().

◆ RTX_FRAME_RELATED_P

◆ RTX_HDR_SIZE

#define RTX_HDR_SIZE   offsetof (struct rtx_def, u)
The size in bytes of an rtx header (code, mode and flags).   

Referenced by create_block_symbol(), function_reader::extra_parsing_for_operand_code_0(), new_cselib_val(), rtx_init(), and rtx_size().

◆ RTX_NEXT

#define RTX_NEXT ( X)
Value:
(rtx_next[GET_CODE (X)] == 0 ? NULL \
: *(rtx *)(((char *)X) + rtx_next[GET_CODE (X)]))
const unsigned char rtx_next[NUM_RTX_CODE]
Definition rtl.h:311
#define NULL
Definition system.h:50
The "next" and "previous" RTX, relative to this one.   

◆ RTX_NON_COMMUTATIVE_RESULT

#define RTX_NON_COMMUTATIVE_RESULT   (RTX_COMPARE & RTX_COMMUTATIVE_MASK)

◆ RTX_OBJ_MASK

#define RTX_OBJ_MASK   (~1)

◆ RTX_OBJ_RESULT

#define RTX_OBJ_RESULT   (RTX_OBJ & RTX_OBJ_MASK)

◆ RTX_PREV

#define RTX_PREV ( X)
Value:
((INSN_P (X) \
|| NOTE_P (X) \
|| BARRIER_P (X) \
|| LABEL_P (X)) \
rtx_insn * PREV_INSN(const rtx_insn *insn)
Definition rtl.h:1464
#define BARRIER_P(X)
Definition rtl.h:874
#define LABEL_P(X)
Definition rtl.h:837
#define JUMP_TABLE_DATA_P(INSN)
Definition rtl.h:877
rtx_insn * NEXT_INSN(const rtx_insn *insn)
Definition rtl.h:1475
FIXME: the "NEXT_INSN (PREV_INSN (X)) == X" condition shouldn't be needed.

◆ SCHED_GROUP_P

#define SCHED_GROUP_P ( RTX)
Value:
(RTL_FLAG_CHECK4 ("SCHED_GROUP_P", (RTX), DEBUG_INSN, INSN, \
JUMP_INSN, CALL_INSN)->in_struct)
#define RTL_FLAG_CHECK4(NAME, RTX, C1, C2, C3, C4)
Definition rtl.h:1339
During sched, 1 if RTX is an insn that must be scheduled together
with the preceding insn.   

◆ SET_DEST

#define SET_DEST ( RTX)    XC2EXP (RTX, 0, SET, CLOBBER)
For a SET rtx, SET_DEST is the place that is set
and SET_SRC is the value it is set to.   

Referenced by add_equal_note(), add_insn_allocno_copies(), add_regs_to_insn_regno_info(), add_removable_extension(), add_store_equivs(), add_stores(), adjust_for_new_dest(), adjust_mem_stores(), adjust_stack_1(), allocate_dynamic_stack_space(), alter_attrs_for_insn(), analyze_insn_to_expand_var(), analyze_iv_to_split_insn(), insn_propagation::apply_to_pattern_1(), arithmetic_flags_clobber_p(), assign_parm_setup_reg(), assign_spill_hard_regs(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), bbs_ok_for_cmove_arith(), find_comparison_dom_walker::before_dom_children(), build_def_use(), bypass_block(), bypass_conditional_jumps(), calculate_elim_costs_all_insns(), calculate_equiv_gains(), calculate_gen_cands(), calculate_needs_all_insns(), can_assign_to_reg_without_clobbers_p(), can_combine_p(), can_replace_by(), can_split_parallel_of_n_reg_sets(), canonicalize_condition(), canonicalize_insn(), cant_combine_insn_p(), change_zero_ext(), cheap_bb_rtx_cost_p(), check_and_process_move(), check_cond_move_block(), check_secondary_memory_needed_p(), classify_insn(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_and_move_insns(), combine_instructions(), combine_reaching_defs(), combine_reload_insn(), combine_set_extension(), combine_stack_adjustments_for_block(), compute_bb_dataflow(), compute_ld_motion_mems(), computed_jump_p(), cond_move_convert_if_block(), condjump_in_parallel_p(), condjump_p(), conforming_compare(), constprop_register(), contains_reloaded_insn_p(), copyprop_hardreg_forward_1(), count_occurrences(), count_reg_usage(), cprop_jump(), create_cands(), create_insn_allocnos(), create_new_invariant(), cse_cc_succs(), cse_condition_code_reg(), cse_insn(), cselib_record_sets(), cselib_redundant_set_p(), curr_insn_transform(), dead_debug_insert_temp(), dead_or_set_regno_p(), decode_asm_operands(), decrease_live_ranges_number(), delete_address_reloads(), delete_address_reloads_1(), delete_dead_insn(), delete_jump(), delete_output_reload(), delete_prior_computation(), delete_trivially_dead_insns(), df_defs_record(), df_find_hard_reg_defs(), df_find_single_def_src(), df_uses_record(), distribute_links(), distribute_notes(), do_remat(), doloop_condition_get(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_val_expression(), dwarf2out_frame_debug_expr(), eliminate_partially_redundant_load(), eliminate_partially_redundant_loads(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), emit_input_reload_insns(), emit_libcall_block_1(), emit_move_insn(), emit_move_list(), emit_notes_in_bb(), emit_output_reload_insns(), emit_reload_insns(), expand_field_assignment(), expand_var_during_unrolling(), fill_slots_from_thread(), find_and_remove_re(), find_args_size_adjust(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_decomposable_shift_zext(), find_equiv_reg(), find_identical_invariants(), find_invariant_insn(), find_moveable_store(), find_pseudo_copy(), find_reloads(), find_sets_in_insn(), find_single_use_1(), find_split_point(), fix_reg_equiv_init(), force_reg(), forward_propagate_and_simplify(), forward_propagate_into(), free_load_extend(), gcse_emit_move_after(), gen_mnemonic_attr(), get_avail_load_store_reg(), get_branch_condition(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_sub_rtx(), hard_reg_set_here_p(), has_subst_attribute(), hash_scan_set(), hash_scan_set(), hash_scan_set(), hoist_code(), if_test_bypass_p(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), init_expr_target(), insn_valid_noce_process_p(), instantiate_virtual_regs_in_insn(), interesting_dest_for_shprep_1(), internal_arg_pointer_based_exp_scan(), inv_can_prop_to_addr_use(), invalidate_from_sets_and_clobbers(), is_cond_copy_insn(), is_parallel_of_n_reg_sets(), is_predicable(), iv_analyze_def(), keep_with_call_p(), lra_coalesce(), lra_constraints(), lra_delete_dead_insn(), lra_final_code_change(), lra_set_insn_recog_data(), make_edges(), make_field_assignment(), make_insn_raw(), make_more_copies(), mark_effect(), mark_not_eliminable(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_regs_combine(), match_asm_constraints_1(), maybe_merge_cfa_adjust(), maybe_propagate_label_ref(), memref_referenced_p(), merge_def_and_ext(), move2add_note_store(), move_deaths(), move_insn_for_shrink_wrap(), move_invariant_reg(), move_unallocated_pseudos(), need_cmov_or_rewire(), needs_barrier_p(), no_conflict_move_test(), noce_convert_multiple_sets_1(), noce_get_alt_condition(), noce_process_if_block(), noce_try_abs(), noce_try_cmove_arith(), non_conflicting_reg_copy_p(), note_pattern_stores(), note_uses(), onlyjump_p(), parse_add_or_inc(), pattern_cost(), pc_set(), pre_delete(), pre_insert_copy_insn(), print_pattern(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_bb_node_lives(), process_invariant_for_inheritance(), purge_dead_tablejump_edges(), recog_for_combine(), record_dead_and_set_regs_1(), record_operand_costs(), record_promoted_value(), record_set_data(), record_store(), redirect_exp_1(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_referenced_p(), reg_scan_mark_refs(), reload(), reload_combine_note_store(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), reload_cse_simplify_operands(), reload_cse_simplify_set(), remove_inheritance_pseudos(), replace_store_insn(), resolve_shift_zext(), resolve_simple_move(), reverse_op(), reversed_comparison_code_parts(), rtx_cost(), rtx_moveable_p(), save_call_clobbered_regs(), scan_one_insn(), scan_rtx(), scan_rtx_reg(), set_dst_reg_note(), set_for_reg_notes(), set_label_offsets(), set_live_p(), set_nonzero_bits_and_sign_copies(), set_noop_p(), setup_reg_equiv(), simple_move(), simple_move_p(), simple_regno_set(), simplejump_p(), simplify_set(), single_set_2(), single_set_for_csa(), split_insn(), split_iv(), stack_adjust_offset_pre_post(), store_data_bypass_p_1(), store_killed_in_pat(), subst(), suitable_set_for_replacement(), tablejump_casesi_pattern(), transform_ifelse(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_replace_in_use(), try_replace_reg(), rtx_properties::try_to_add_pattern(), undo_optional_reloads(), union_defs(), update_ebb_live_info(), update_equiv_regs(), validate_pattern(), validate_replace_rtx_1(), validate_simplify_insn(), verify_rtx_sharing(), walk_insn_part(), and will_delete_init_insn_p().

◆ SET_INSN_DELETED

◆ SET_IS_RETURN_P

#define SET_IS_RETURN_P ( RTX)     (RTL_FLAG_CHECK1 ("SET_IS_RETURN_P", (RTX), SET)->jump)

Referenced by returnjump_p().

◆ SET_LABEL_KIND

#define SET_LABEL_KIND ( LABEL,
KIND )
Value:
do { \
rtx const _label = (LABEL); \
const unsigned int _kind = (KIND); \
_label->jump = ((_kind >> 1) & 1); \
_label->call = (_kind & 1); \
} while (0)
Set the kind of LABEL.   

◆ SET_REGNO

◆ SET_SRC

#define SET_SRC ( RTX)    XCEXP (RTX, 1, SET)

Referenced by add_equal_note(), add_insn_allocno_copies(), add_regs_to_insn_regno_info(), add_removable_extension(), add_store_equivs(), add_stores(), adjust_insn(), allocate_basic_variable(), allocate_dynamic_stack_space(), alter_attrs_for_insn(), analyze_insn_to_expand_var(), any_condjump_p(), any_uncondjump_p(), insn_propagation::apply_to_pattern_1(), asm_noperands(), assign_spill_hard_regs(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), bypass_block(), calculate_elim_costs_all_insns(), calculate_gen_cands(), calculate_needs_all_insns(), can_assign_to_reg_without_clobbers_p(), can_combine_p(), can_replace_by(), can_split_parallel_of_n_reg_sets(), canonicalize_condition(), canonicalize_insn(), cant_combine_insn_p(), change_zero_ext(), check_and_process_move(), check_cond_move_block(), classify_insn(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_instructions(), combine_reaching_defs(), combine_reload_insn(), combine_set_extension(), combine_stack_adjustments_for_block(), compare_and_jump_seq(), compute_bb_dataflow(), compute_costs(), compute_ld_motion_mems(), computed_jump_p(), cond_exec_get_condition(), condjump_in_parallel_p(), condjump_label(), condjump_p(), conforming_compare(), copyprop_hardreg_forward_1(), count_occurrences(), count_reg_usage(), cprop_jump(), create_cands(), create_insn_allocnos(), create_new_invariant(), create_trace_edges(), cse_cc_succs(), cse_condition_code_reg(), cse_insn(), cselib_record_sets(), cselib_redundant_set_p(), curr_insn_transform(), dead_debug_insert_temp(), decode_asm_operands(), decompose_multiword_subregs(), decrease_live_ranges_number(), delete_address_reloads(), delete_address_reloads_1(), delete_dead_insn(), delete_prior_computation(), delete_trivially_dead_insns(), df_find_single_def_src(), df_uses_record(), distribute_notes(), do_remat(), doloop_condition_get(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_val_expression(), dwarf2out_frame_debug_expr(), eliminate_partially_redundant_loads(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), emit_input_reload_insns(), emit_move_insn(), emit_notes_in_bb(), emit_output_reload_insns(), emit_reload_insns(), equiv_init_movable_p(), equivalent_reg_at_start(), expand_field_assignment(), extract_asm_operands(), extract_insn(), fill_slots_from_thread(), find_and_remove_re(), find_args_size_adjust(), find_call_crossed_cheap_reg(), find_constant_src(), find_decomposable_shift_zext(), find_equiv_reg(), find_flags_uses_in_insn(), find_identical_invariants(), find_invariant_insn(), find_loads(), find_moveable_store(), find_pseudo_copy(), find_reloads(), find_sets_in_insn(), find_single_use_1(), find_split_point(), fix_crossing_conditional_branches(), fix_reg_equiv_init(), force_reg(), forward_propagate_and_simplify(), forward_propagate_into(), free_load_extend(), gcse_emit_move_after(), get_avail_load_store_reg(), get_biv_step_1(), get_branch_condition(), get_call_rtx_from(), get_condition(), get_inv_cost(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), has_subst_attribute(), hash_scan_set(), hash_scan_set(), hash_scan_set(), if_test_bypass_p(), in_class_p(), indirect_jump_optimize(), inherit_in_ebb(), init_alias_analysis(), init_expr_target(), insert_base_initialization(), insn_rhs_dead_pseudo_p(), insn_valid_noce_process_p(), instantiate_virtual_regs_in_insn(), interesting_dest_for_shprep_1(), internal_arg_pointer_based_exp_scan(), inv_can_prop_to_addr_use(), invalidate_from_sets_and_clobbers(), invert_jump_1(), is_cond_copy_insn(), is_just_move(), is_predicable(), iv_analyze_def(), keep_with_call_p(), location_for_asm(), lra_coalesce(), lra_constraints(), lra_delete_dead_insn(), lra_final_code_change(), make_defs_and_copies_lists(), make_edges(), make_field_assignment(), make_more_copies(), mark_not_eliminable(), mark_not_eliminable(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_regs_combine(), match_asm_constraints_1(), maybe_merge_cfa_adjust(), maybe_propagate_label_ref(), memref_referenced_p(), merge_def_and_ext(), move2add_note_store(), move2add_use_add2_insn(), move2add_use_add3_insn(), move_deaths(), move_insn_for_shrink_wrap(), need_cmov_or_rewire(), needs_barrier_p(), no_conflict_move_test(), noce_convert_multiple_sets_1(), noce_emit_store_flag(), noce_get_alt_condition(), noce_get_condition(), noce_process_if_block(), noce_try_abs(), non_conflicting_reg_copy_p(), note_uses(), onlyjump_p(), outgoing_edges_match(), parse_add_or_inc(), patch_jump_insn(), pattern_cost(), pre_insert_copy_insn(), print_pattern(), process_address_1(), process_alt_operands(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), purge_dead_tablejump_edges(), recog_for_combine(), record_dead_and_set_regs_1(), record_jump_equiv(), record_operand_costs(), record_promoted_value(), record_set(), record_store(), redirect_exp_1(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_referenced_p(), reg_scan_mark_refs(), reload(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_simplify(), reload_cse_simplify_operands(), reload_cse_simplify_set(), remove_inheritance_pseudos(), replace_store_insn(), resolve_shift_zext(), resolve_simple_move(), reverse_equiv_p(), reverse_op(), reversed_comparison_code_parts(), rtx_moveable_p(), scan_one_insn(), scan_rtx(), scan_rtx_reg(), set_label_offsets(), set_live_p(), set_noop_p(), setup_reg_equiv(), simple_move(), simple_move_p(), simplejump_p(), simplify_set(), single_set_for_csa(), sp_based_mem_offset(), split_insn(), split_iv(), stack_adjust_offset_pre_post(), subst(), suitable_set_for_replacement(), tablejump_casesi_pattern(), thread_jump(), transform_ifelse(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_merge_compare(), try_replace_in_use(), try_replace_reg(), rtx_properties::try_to_add_pattern(), undo_optional_reloads(), union_defs(), update_equiv_regs(), update_ld_motion_stores(), update_rsp_from_reg_equal(), validate_pattern(), validate_replace_rtx_1(), validate_simplify_insn(), verify_rtx_sharing(), and walk_insn_part().

◆ SET_SYMBOL_REF_CONSTANT

#define SET_SYMBOL_REF_CONSTANT ( RTX,
C )    (gcc_assert (CONSTANT_POOL_ADDRESS_P (RTX)), X0CONSTANT ((RTX), 1) = (C))
Set RTX's SYMBOL_REF_CONSTANT to C.  RTX must be a constant pool symbol.   

Referenced by force_const_mem().

◆ SET_SYMBOL_REF_DECL

#define SET_SYMBOL_REF_DECL ( RTX,
DECL )    (gcc_assert (!CONSTANT_POOL_ADDRESS_P (RTX)), X0TREE ((RTX), 1) = (DECL))
Set RTX's SYMBOL_REF_DECL to DECL.  RTX must not be a constant
pool symbol.   

Referenced by build_constant_desc(), build_personality_function(), make_decl_rtl(), produce_memory_decl_rtl(), and set_stack_check_libfunc().

◆ SIBLING_CALL_P

◆ stack_pointer_rtx

#define stack_pointer_rtx   (global_rtl[GR_STACK_POINTER])
All references to certain hard regs, except those created
by allocating pseudo regs into them (when that's possible),
go through these unique rtx objects.   

Referenced by add_stores(), adjust_mems(), adjust_stack_1(), allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), auto_inc_p(), based_loc_descr(), can_combine_p(), combine_stack_adjustments_for_block(), compute_frame_pointer_to_fb_displacement(), compute_stack_clash_protection_loop_data(), copyprop_hardreg_forward_1(), create_cie_data(), cse_insn(), cselib_lookup_1(), cselib_process_insn(), cselib_record_sp_cfa_base_equiv(), curr_insn_transform(), default_static_chain(), dwarf2out_frame_debug_expr(), eliminate_regs_in_insn(), elimination_effects(), emit_call_1(), emit_library_call_value_1(), emit_move_resolve_push(), emit_stack_clash_protection_probe_loop_end(), emit_stack_clash_protection_probe_loop_start(), emit_stack_restore(), emit_stack_save(), expand_asan_emit_allocas_unpoison(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_builtin_stack_address(), expand_expr_real_2(), expand_HWASAN_ALLOCA_UNPOISON(), find_args_size_adjust(), find_call_stack_args(), find_equiv_reg(), find_memory_stores(), find_oldest_value_reg(), find_reloads_address(), gen_rtx_REG(), hash_rtx(), immune_p(), init_emit(), init_emit_regs(), init_expr_target(), init_fake_stack_mems(), instantiate_new_reg(), keep_with_call_p(), lookup_global_register(), lra_eliminate_regs_1(), mark_not_eliminable(), may_trap_p_1(), maybe_mode_change(), move_insn_for_shrink_wrap(), nonzero_address_p(), nonzero_bits1(), notice_stack_pointer_modification_1(), pop_operand(), probe_stack_range(), process_alt_operands(), push_operand(), record_one_stack_ref(), record_stack_refs(), reg_set_p(), reload(), reload_combine_recognize_const_pattern(), reload_cse_move2add_invalidate(), reload_cse_simplify(), rtx_addr_can_trap_p_1(), simple_mem(), simplify_context::simplify_plus_minus(), sp_based_mem_offset(), stack_adjust_offset_pre_post(), stack_adjust_offset_pre_post_cb(), stack_memref_p(), try_apply_stack_adjustment(), try_merge(), update_reg_eliminate(), vt_init_cfa_base(), and vt_initialize().

◆ STATIC_CHAIN_REG_P

#define STATIC_CHAIN_REG_P ( RTX)     (RTL_FLAG_CHECK1 ("STATIC_CHAIN_REG_P", (RTX), REG)->jump)
True if the REG is the static chain register for some CALL_INSN.   

Referenced by find_first_parameter_load(), and prepare_call_address().

◆ SUBREG_BYTE

#define SUBREG_BYTE ( RTX)    XCSUBREG (RTX, 1, SUBREG)

Referenced by inchash::add_rtx(), add_stored_regs(), adjust_mems(), alter_subreg(), apply_int_iterator(), insn_propagation::apply_to_rvalue_1(), choose_reload_regs(), combine_simplify_rtx(), compute_reload_subreg_offset(), constrain_operands(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), curr_insn_transform(), df_ref_record(), eliminate_regs_1(), equiv_constant(), exp_equiv_p(), extract_bit_field_1(), find_dummy_reload(), find_reloads(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), find_replacement(), force_operand(), gen_exp(), general_operand(), get_hard_regno(), get_subreg_tracking_sizes(), go_through_subreg(), hash_invariant_expr_1(), hash_rtx(), if_then_else_cond(), indirect_operand(), instantiate_virtual_regs_in_insn(), invariant_expr_equal_p(), kill_value(), known_cond(), loc_cmp(), loc_equivalence_change_p(), lra_eliminate_regs_1(), lra_substitute_pseudo(), make_compound_operation_int(), match_pattern_2(), match_reload(), mention_regs(), noce_emit_cmove(), noce_emit_move_insn(), operands_match_p(), operands_match_p(), rtx_writer::print_rtx_operand(), print_value(), push_reload(), reg_overlap_mentioned_for_reload_p(), reload_combine_note_store(), remove_invalid_subreg_refs(), replace_rtx(), resolve_debug(), resolve_simple_move(), resolve_subreg_use(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), set_noop_p(), shape_of_subreg(), simplify_context::simplify_binary_operation_1(), simplify_gen_subreg_concatn(), simplify_operand_subreg(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_context::simplify_subreg(), simplify_while_replacing(), store_bit_field_using_insv(), subreg_lowpart_p(), subreg_lsb(), subreg_memory_offset(), subreg_nregs_with_regno(), subreg_regno(), subst(), true_regnum(), and vt_expand_loc_callback().

◆ SUBREG_CHECK_PROMOTED_SIGN

#define SUBREG_CHECK_PROMOTED_SIGN ( RTX,
SIGN )
Value:
const int SRP_POINTER
Definition rtl.h:2515
#define SUBREG_PROMOTED_UNSIGNED_P(RTX)
Definition rtl.h:2565
const int SRP_SIGNED
Definition rtl.h:2516
#define SUBREG_PROMOTED_SIGNED_P(RTX)
Definition rtl.h:2560
#define SUBREG_PROMOTED_GET(RTX)
Definition rtl.h:2549
Checks if RTX of SUBREG_PROMOTED_VAR_P() is promoted for given SIGN.   

Referenced by convert_modes(), convert_move(), set_reg_attrs_from_value(), store_expr(), and widen_operand().

◆ SUBREG_P

◆ SUBREG_PROMOTED_GET

#define SUBREG_PROMOTED_GET ( RTX)
Value:
(2 * (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_GET", (RTX), SUBREG)->volatil)\
+ (RTX)->unchanging - 1)
Gets the value stored in promoted mode for SUBREG_PROMOTED_VAR_P(),
including SRP_SIGNED_AND_UNSIGNED if promoted for
both signed and unsigned.   

Referenced by noce_emit_cmove(), and simplify_context::simplify_subreg().

◆ SUBREG_PROMOTED_SET

#define SUBREG_PROMOTED_SET ( RTX,
VAL )
Value:
do { \
rtx const _rtx = RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_SET", \
(RTX), SUBREG); \
{ \
case SRP_POINTER: \
_rtx->volatil = 0; \
_rtx->unchanging = 0; \
break; \
case SRP_SIGNED: \
_rtx->volatil = 0; \
_rtx->unchanging = 1; \
break; \
case SRP_UNSIGNED: \
_rtx->volatil = 1; \
_rtx->unchanging = 0; \
break; \
_rtx->volatil = 1; \
_rtx->unchanging = 1; \
break; \
} \
} while (0)
const int SRP_UNSIGNED
Definition rtl.h:2517
const int SRP_SIGNED_AND_UNSIGNED
Definition rtl.h:2518
Sets promoted mode for SUBREG_PROMOTED_VAR_P().   

Referenced by assign_parm_setup_reg(), convert_modes(), convert_move(), expand_call(), expand_expr_real_1(), noce_emit_cmove(), precompute_arguments(), simplify_context::simplify_subreg(), and simplify_context::simplify_unary_operation_1().

◆ SUBREG_PROMOTED_SIGN

#define SUBREG_PROMOTED_SIGN ( RTX)
Value:
((RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_SIGN", (RTX), SUBREG)->volatil) ? 1\
: (RTX)->unchanging - 1)
Returns sign of promoted mode for SUBREG_PROMOTED_VAR_P().   

Referenced by expand_assignment(), expand_fn_using_insn(), expand_gimple_stmt_1(), expand_ubsan_result_store(), simplify_context::simplify_subreg(), store_expr(), and unsigned_reg_p().

◆ SUBREG_PROMOTED_SIGNED_P

#define SUBREG_PROMOTED_SIGNED_P ( RTX)     (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_SIGNED_P", (RTX), SUBREG)->unchanging)
Predicate to check if RTX of SUBREG_PROMOTED_VAR_P() is promoted
for SIGNED type.   

Referenced by do_tablejump(), num_sign_bit_copies1(), and simplify_context::simplify_unary_operation_1().

◆ SUBREG_PROMOTED_UNSIGNED_P

#define SUBREG_PROMOTED_UNSIGNED_P ( RTX)     (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED_UNSIGNED_P", (RTX), SUBREG)->volatil)
Predicate to check if RTX of SUBREG_PROMOTED_VAR_P() is promoted
for UNSIGNED type.   

Referenced by nonzero_bits1(), record_promoted_value(), and simplify_context::simplify_unary_operation_1().

◆ SUBREG_PROMOTED_VAR_P

#define SUBREG_PROMOTED_VAR_P ( RTX)     (RTL_FLAG_CHECK1 ("SUBREG_PROMOTED", (RTX), SUBREG)->in_struct)
1 if RTX is a subreg containing a reg that is already known to be
sign- or zero-extended from the mode of the subreg to the mode of
the reg.  SUBREG_PROMOTED_UNSIGNED_P gives the signedness of the
extension.

When used as a LHS, is means that this extension must be done
when assigning to SUBREG_REG.   

Referenced by assign_parm_setup_reg(), check_promoted_subreg(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), convert_modes(), convert_move(), do_jump(), do_tablejump(), expand_assignment(), expand_call(), expand_expr_real_1(), expand_fn_using_insn(), expand_gimple_stmt_1(), expand_ubsan_result_store(), noce_emit_cmove(), nonzero_bits1(), num_sign_bit_copies1(), precompute_arguments(), set_reg_attrs_from_value(), simplify_context::simplify_subreg(), simplify_context::simplify_unary_operation_1(), store_expr(), subreg_promoted_mode(), subreg_unpromoted_mode(), and widen_operand().

◆ SUBREG_REG

#define SUBREG_REG ( RTX)    XCEXP (RTX, 0, SUBREG)
For a SUBREG rtx, SUBREG_REG extracts the value we want a subreg of.
SUBREG_BYTE extracts the byte-number.   

Referenced by add_insn_allocno_copies(), add_regs_to_insn_regno_info(), add_stored_regs(), adjust_mems(), alter_subreg(), alter_subregs(), analyze_insn_to_expand_var(), insn_propagation::apply_to_lvalue_1(), insn_propagation::apply_to_rvalue_1(), assign_parm_setup_reg(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), cant_combine_insn_p(), change_zero_ext(), check_and_make_def_conflict(), check_and_process_move(), check_cond_move_block(), check_promoted_subreg(), choose_reload_regs(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_simplify_rtx(), commutative_operand_precedence(), compute_reload_subreg_offset(), constrain_operands(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), convert_modes(), convert_move(), covers_regno_no_parallel_p(), cse_insn(), cselib_expand_value_rtx_1(), curr_insn_transform(), dead_debug_insert_temp(), decompose(), delete_output_reload(), df_def_record_1(), df_find_def(), df_find_hard_reg_defs_1(), df_find_use(), df_ref_create_structure(), df_ref_record(), df_uses_record(), df_word_lr_mark_ref(), do_output_reload(), do_SUBST(), dw_sra_loc_expr(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_effects(), emit_input_reload_insns(), emit_move_insn(), emit_move_list(), emit_reload_insns(), emit_spill_move(), equiv_constant(), expand_assignment(), expand_compound_operation(), expand_field_assignment(), expand_fn_using_insn(), expand_gimple_stmt_1(), expand_mult_const(), expand_shift_1(), expand_ubsan_result_store(), extract_bit_field_1(), find_decomposable_subregs(), find_dummy_reload(), find_reloads(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), find_replacement(), find_single_use_1(), find_split_point(), force_operand(), force_to_mode(), forget_old_reloads_1(), forward_propagate_subreg(), gen_lowpart_for_combine(), general_operand(), get_biv_step_1(), get_equiv_regno(), get_hard_regno(), get_last_value(), get_pressure_class_and_nregs(), get_pressure_class_and_nregs(), get_regno(), get_subreg_tracking_sizes(), go_through_subreg(), hard_reg_set_here_p(), hash_rtx(), if_then_else_cond(), implies_p(), in_class_p(), indirect_operand(), insert_regs(), instantiate_virtual_regs_in_insn(), invalidate(), invariant_p(), ira_implicitly_set_insn_hard_regs(), is_pseudo_reg(), iv_analyze(), iv_analyze_op(), iv_get_reaching_def(), kill_value(), known_cond(), loc_descriptor(), loc_equivalence_change_p(), lra_constraints(), lra_eliminate_regs_1(), lra_substitute_pseudo(), make_compound_operation_int(), make_extraction(), make_field_assignment(), make_pseudo_conflict(), make_safe_from(), mark_altered(), mark_hard_reg_early_clobbers(), mark_not_eliminable(), mark_ref_dead(), mark_ref_live(), mark_referenced_regs(), mark_referenced_resources(), mark_reg_store(), mark_set_regs(), mark_set_resources(), match_reload(), mem_loc_descriptor(), memory_operand(), mention_regs(), move_deaths(), move_invariant_reg(), move_plus_up(), narrow_reload_pseudo_class(), need_cmov_or_rewire(), noce_can_force_operand(), noce_emit_cmove(), nonzero_bits1(), note_pattern_stores(), note_sets_clobbers(), notreg_cost(), num_sign_bit_copies1(), operands_match_p(), operands_match_p(), paradoxical_subreg_p(), partial_subreg_p(), precompute_register_parameters(), prepare_call_arguments(), print_value(), process_addr_reg(), process_address_1(), process_alt_operands(), process_bb_node_lives(), process_register_constraint_filters(), process_single_reg_class_operands(), push_reload(), push_secondary_reload(), read_modify_subreg_p(), record_address_regs(), record_dead_and_set_regs_1(), record_jump_cond(), record_last_set_info(), record_last_set_info(), record_operand_costs(), record_promoted_value(), record_subregs_of_mode(), record_truncated_value(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_or_subregno(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_subword_p(), register_operand(), rehash_using_reg(), reload_combine_note_store(), reload_inner_reg_of_subreg(), remove_inheritance_pseudos(), remove_invalid_subreg_refs(), remove_pseudos(), replace_oldest_value_addr(), replace_read(), replace_rtx(), replaced_subreg(), resolve_clobber(), resolve_debug(), resolve_simple_move(), resolve_subreg_p(), resolve_subreg_use(), rtx_cost(), rtx_equal_for_field_assignment_p(), rtx_renumbered_equal_p(), safe_from_p(), scan_one_insn(), scan_paradoxical_subregs(), scan_rtx_address(), set_nonzero_bits_and_sign_copies(), set_noop_p(), set_paradoxical_subreg(), set_reg_attrs_for_decl_rtl(), set_rtl(), shape_of_subreg(), simple_move_operand(), simple_reg_p(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_gen_subreg_concatn(), simplify_if_then_else(), simplify_operand_subreg(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_while_replacing(), store_bit_field_1(), store_bit_field_using_insv(), store_expr(), store_integral_bit_field(), store_split_bit_field(), strip_address_mutations(), strip_paradoxical_subreg(), strip_subreg(), subreg_lowpart_p(), subreg_lsb(), subreg_memory_offset(), subreg_nregs(), subreg_nregs_with_regno(), subreg_promoted_mode(), subreg_regno(), subst(), true_regnum(), try_combine(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_src(), undefined_operand_subword_p(), update_live_status(), use_narrower_mode_test(), uses_hard_regs_p(), vt_expand_loc_callback(), and wider_subreg_mode().

◆ SWAPPABLE_OPERANDS_P

#define SWAPPABLE_OPERANDS_P ( X)
Value:
((1 << GET_RTX_CLASS (GET_CODE (X))) \
& ((1 << RTX_COMM_ARITH) | (1 << RTX_COMM_COMPARE) \
| (1 << RTX_COMPARE)))
@ RTX_COMM_ARITH
Definition rtl.h:78
@ RTX_COMM_COMPARE
Definition rtl.h:76
@ RTX_COMPARE
Definition rtl.h:75
1 if X is a commutative arithmetic operator or a comparison operator.
These two are sometimes selected together because it is possible to
swap the two operands.   

Referenced by simplify_while_replacing().

◆ SYMBOL_FLAG_ANCHOR

#define SYMBOL_FLAG_ANCHOR   (1 << 8)
Set if this symbol is a section anchor.  SYMBOL_REF_ANCHOR_P implies
SYMBOL_REF_HAS_BLOCK_INFO_P.   

Referenced by get_section_anchor().

◆ SYMBOL_FLAG_EXTERNAL

#define SYMBOL_FLAG_EXTERNAL   (1 << 6)
Set if this symbol is not defined in this translation unit.   

Referenced by default_encode_section_info().

◆ SYMBOL_FLAG_FUNCTION

#define SYMBOL_FLAG_FUNCTION   (1 << 0)
These flags are common enough to be defined for all targets.  They
are computed by the default version of targetm.encode_section_info.   
Set if this symbol is a function.   

Referenced by default_encode_section_info().

◆ SYMBOL_FLAG_HAS_BLOCK_INFO

#define SYMBOL_FLAG_HAS_BLOCK_INFO   (1 << 7)
Set if this symbol has a block_symbol structure associated with it.   

Referenced by create_block_symbol(), and default_encode_section_info().

◆ SYMBOL_FLAG_LOCAL

◆ SYMBOL_FLAG_MACH_DEP

#define SYMBOL_FLAG_MACH_DEP   (1 << SYMBOL_FLAG_MACH_DEP_SHIFT)

◆ SYMBOL_FLAG_MACH_DEP_SHIFT

#define SYMBOL_FLAG_MACH_DEP_SHIFT   9
Subsequent bits are available for the target to use.   

◆ SYMBOL_FLAG_SMALL

#define SYMBOL_FLAG_SMALL   (1 << 2)
Set if targetm.in_small_data_p is true.   

Referenced by default_encode_section_info().

◆ SYMBOL_FLAG_TLS_SHIFT

#define SYMBOL_FLAG_TLS_SHIFT   3
The three-bit field at [5:3] is true for TLS variables; use
SYMBOL_REF_TLS_MODEL to extract the field as an enum tls_model.   

Referenced by default_encode_section_info(), and get_section_anchor().

◆ SYMBOL_REF_ANCHOR_P

#define SYMBOL_REF_ANCHOR_P ( RTX)     ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_ANCHOR) != 0)

Referenced by use_anchored_address().

◆ SYMBOL_REF_BLOCK

#define SYMBOL_REF_BLOCK ( RTX)    (BLOCK_SYMBOL_CHECK (RTX)->block)

◆ SYMBOL_REF_BLOCK_OFFSET

#define SYMBOL_REF_BLOCK_OFFSET ( RTX)    (BLOCK_SYMBOL_CHECK (RTX)->offset)
If SYMBOL_REF_HAS_BLOCK_INFO_P (RTX), this is the offset of RTX from
the first object in SYMBOL_REF_BLOCK (RTX).  The value is negative if
RTX has not yet been assigned to a block, or it has not been given an
offset within that block.   

Referenced by change_symbol_block(), compare_base_symbol_refs(), create_block_symbol(), function_reader::extra_parsing_for_operand_code_0(), get_section_anchor(), offset_within_block_p(), output_object_block(), place_block_symbol(), and use_anchored_address().

◆ SYMBOL_REF_CONSTANT

#define SYMBOL_REF_CONSTANT ( RTX)     (CONSTANT_POOL_ADDRESS_P (RTX) ? X0CONSTANT ((RTX), 1) : NULL)

◆ SYMBOL_REF_DATA

#define SYMBOL_REF_DATA ( RTX)    X0ANY ((RTX), 1)
A pointer attached to the SYMBOL_REF; either SYMBOL_REF_DECL or
SYMBOL_REF_CONSTANT.   

◆ SYMBOL_REF_DECL

◆ SYMBOL_REF_EXTERNAL_P

#define SYMBOL_REF_EXTERNAL_P ( RTX)     ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_EXTERNAL) != 0)

Referenced by const_ok_for_output_1().

◆ SYMBOL_REF_FLAG

#define SYMBOL_REF_FLAG ( RTX)     (RTL_FLAG_CHECK1 ("SYMBOL_REF_FLAG", (RTX), SYMBOL_REF)->volatil)
Used if RTX is a symbol_ref, for machine-specific purposes.   

◆ SYMBOL_REF_FLAGS

#define SYMBOL_REF_FLAGS ( RTX)
Value:
(RTL_FLAG_CHECK1 ("SYMBOL_REF_FLAGS", (RTX), SYMBOL_REF) \
->u2.symbol_ref_flags)
A set of flags on a symbol_ref that are, in some respects, redundant with
information derivable from the tree decl associated with this symbol.
Except that we build a *lot* of SYMBOL_REFs that aren't associated with a
decl.  In some cases this is a bug.  But beyond that, it's nice to cache
this information to avoid recomputing it.  Finally, this allows space for
the target to store more than one bit of information, as with
SYMBOL_REF_FLAG.   

Referenced by assemble_static_space(), assemble_trampoline_template(), build_constant_desc(), create_block_symbol(), default_encode_section_info(), dwarf2out_do_cfi_startproc(), function_reader::extra_parsing_for_operand_code_0(), force_const_mem(), get_section_anchor(), output_fde(), rtx_writer::print_rtx_operand_code_0(), and sjlj_emit_function_enter().

◆ SYMBOL_REF_FUNCTION_P

#define SYMBOL_REF_FUNCTION_P ( RTX)     ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_FUNCTION) != 0)

Referenced by rtx_addr_can_trap_p_1().

◆ SYMBOL_REF_HAS_BLOCK_INFO_P

◆ SYMBOL_REF_LOCAL_P

#define SYMBOL_REF_LOCAL_P ( RTX)     ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_LOCAL) != 0)

Referenced by compute_reloc_for_rtx_1().

◆ SYMBOL_REF_P

#define SYMBOL_REF_P ( RTX)    (GET_CODE (RTX) == SYMBOL_REF)

◆ SYMBOL_REF_SMALL_P

#define SYMBOL_REF_SMALL_P ( RTX)     ((SYMBOL_REF_FLAGS (RTX) & SYMBOL_FLAG_SMALL) != 0)

◆ SYMBOL_REF_TLS_MODEL

◆ SYMBOL_REF_USED

#define SYMBOL_REF_USED ( RTX)     (RTL_FLAG_CHECK1 ("SYMBOL_REF_USED", (RTX), SYMBOL_REF)->used)
1 if RTX is a symbol_ref that has been the library function in
emit_library_call.   

Referenced by assemble_external_libcall().

◆ SYMBOL_REF_WEAK

#define SYMBOL_REF_WEAK ( RTX)     (RTL_FLAG_CHECK1 ("SYMBOL_REF_WEAK", (RTX), SYMBOL_REF)->return_val)

◆ this_target_rtl

◆ top_of_stack

#define top_of_stack    (this_target_rtl->x_top_of_stack)

◆ TRAP_CODE

#define TRAP_CODE ( RTX)    XCEXP (RTX, 1, TRAP_IF)

Referenced by find_cond_trap().

◆ TRAP_CONDITION

#define TRAP_CONDITION ( RTX)    XCEXP (RTX, 0, TRAP_IF)
For a TRAP_IF rtx, TRAP_CONDITION is an expression.   

Referenced by block_has_only_trap(), merge_if_block(), note_uses(), print_exp(), print_pattern(), and reg_referenced_p().

◆ TREE_CONSTANT_POOL_ADDRESS_P

#define TREE_CONSTANT_POOL_ADDRESS_P ( RTX)
Value:
(RTL_FLAG_CHECK1 ("TREE_CONSTANT_POOL_ADDRESS_P", \
(RTX), SYMBOL_REF)->frame_related)
1 if RTX is a symbol_ref that addresses a value in the file's
tree constant pool.  This information is private to varasm.cc.   

Referenced by asan_protect_global(), assemble_variable(), build_constant_desc(), mark_constants_in_pattern(), output_object_block(), place_block_symbol(), and prepare_call_arguments().

◆ UINTVAL

◆ UNARY_P

◆ USE_LOAD_POST_DECREMENT

#define USE_LOAD_POST_DECREMENT ( MODE)    HAVE_POST_DECREMENT

◆ USE_LOAD_POST_INCREMENT

#define USE_LOAD_POST_INCREMENT ( MODE)    HAVE_POST_INCREMENT
Some architectures do not have complete pre/post increment/decrement
instruction sets, or only move some modes efficiently.  These macros
allow us to tune autoincrement generation.   

Referenced by add_autoinc_candidates(), pieces_addr::decide_autoinc(), and get_address_cost_ainc().

◆ USE_LOAD_PRE_DECREMENT

#define USE_LOAD_PRE_DECREMENT ( MODE)    HAVE_PRE_DECREMENT

◆ USE_LOAD_PRE_INCREMENT

#define USE_LOAD_PRE_INCREMENT ( MODE)    HAVE_PRE_INCREMENT

◆ USE_STORE_POST_DECREMENT

#define USE_STORE_POST_DECREMENT ( MODE)    HAVE_POST_DECREMENT

◆ USE_STORE_POST_INCREMENT

#define USE_STORE_POST_INCREMENT ( MODE)    HAVE_POST_INCREMENT

◆ USE_STORE_PRE_DECREMENT

#define USE_STORE_PRE_DECREMENT ( MODE)    HAVE_PRE_DECREMENT

◆ USE_STORE_PRE_INCREMENT

#define USE_STORE_PRE_INCREMENT ( MODE)    HAVE_PRE_INCREMENT

◆ VAR_LOC_UNKNOWN_P

#define VAR_LOC_UNKNOWN_P ( X)     (GET_CODE (X) == CLOBBER && XEXP ((X), 0) == const0_rtx)

◆ VIRTUAL_CFA_REGNUM

◆ virtual_cfa_rtx

#define virtual_cfa_rtx   (global_rtl[GR_VIRTUAL_CFA])
This points to the Canonical Frame Address of the function.  This
should correspond to the CFA produced by INCOMING_FRAME_SP_OFFSET,
but is calculated relative to the arg pointer for simplicity; the
frame pointer nor stack pointer are necessarily fixed relative to
the CFA until after reload.   

Referenced by expand_builtin(), init_emit(), init_emit_regs(), init_virtual_regs(), instantiate_new_reg(), and lookup_global_register().

◆ VIRTUAL_INCOMING_ARGS_REGNUM

◆ virtual_incoming_args_rtx

#define virtual_incoming_args_rtx   (global_rtl[GR_VIRTUAL_INCOMING_ARGS])
This points to the first word of the incoming arguments passed on the stack,
either by the caller or by the callee when pretending it was passed by the
caller.   

Referenced by adjust_mems(), assign_parm_setup_reg(), default_internal_arg_pointer(), expand_debug_parm_decl(), init_emit(), init_emit_regs(), init_virtual_regs(), instantiate_new_reg(), and lookup_global_register().

◆ VIRTUAL_OUTGOING_ARGS_REGNUM

◆ virtual_outgoing_args_rtx

#define virtual_outgoing_args_rtx   (global_rtl[GR_VIRTUAL_OUTGOING_ARGS])
This points to the location in the stack at which outgoing arguments should
be written when the stack is pre-pushed (arguments pushed using push
insns always use sp).   

Referenced by emit_library_call_value_1(), emit_push_insn(), expand_builtin_apply(), expand_call(), init_emit(), init_emit_regs(), init_virtual_regs(), instantiate_new_reg(), lookup_global_register(), push_block(), and safe_from_p().

◆ VIRTUAL_PREFERRED_STACK_BOUNDARY_REGNUM

◆ virtual_preferred_stack_boundary_rtx

#define virtual_preferred_stack_boundary_rtx    (global_rtl[GR_VIRTUAL_PREFERRED_STACK_BOUNDARY])
This is replaced by crtl->preferred_stack_boundary / BITS_PER_UNIT
when finalized.   

Referenced by init_emit_regs(), init_virtual_regs(), instantiate_new_reg(), lookup_global_register(), and round_push().

◆ VIRTUAL_REGISTER_NUM_P

#define VIRTUAL_REGISTER_NUM_P ( REG_NO)     IN_RANGE (REG_NO, FIRST_VIRTUAL_REGISTER, LAST_VIRTUAL_REGISTER)
1 if the given register number REG_NO corresponds to a virtual register.   

Referenced by refers_to_regno_p().

◆ VIRTUAL_REGISTER_P

#define VIRTUAL_REGISTER_P ( REG)    VIRTUAL_REGISTER_NUM_P (REGNO (REG))
1 if the given register REG corresponds to a virtual register.   

Referenced by force_operand(), instantiate_decl_rtl(), nonzero_address_p(), and rtx_addr_can_trap_p_1().

◆ VIRTUAL_STACK_DYNAMIC_REGNUM

◆ virtual_stack_dynamic_rtx

#define virtual_stack_dynamic_rtx   (global_rtl[GR_VIRTUAL_STACK_DYNAMIC])
This points to the location of dynamically-allocated memory on the stack
immediately after the stack pointer has been adjusted by the amount
desired.   

Referenced by allocate_dynamic_stack_space(), emit_push_insn(), expand_asan_emit_allocas_unpoison(), expand_call(), expand_HWASAN_ALLOCA_UNPOISON(), expand_used_vars(), init_emit(), init_emit_regs(), init_virtual_regs(), instantiate_new_reg(), and lookup_global_register().

◆ VIRTUAL_STACK_VARS_REGNUM

◆ virtual_stack_vars_rtx

#define virtual_stack_vars_rtx   (global_rtl[GR_VIRTUAL_STACK_ARGS])

◆ X0ADVFLAGS

#define X0ADVFLAGS ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_addr_diff_vec_flags)

◆ X0ANY

#define X0ANY ( RTX,
N )   RTL_CHECK1 (RTX, N, '0')
Access a '0' field with any type.   

◆ X0BBDEF

#define X0BBDEF ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_bb)

◆ X0CONSTANT

#define X0CONSTANT ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_constant)

◆ X0CSELIB

#define X0CSELIB ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_cselib)

◆ X0EXP

#define X0EXP ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_rtx)

Referenced by attr_rtx_1().

◆ X0INT

#define X0INT ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_int)
These are like XINT, etc. except that they expect a '0' field instead
of the normal type code.   

◆ X0MEMATTR

#define X0MEMATTR ( RTX,
N )   (RTL_CHECKC1 (RTX, N, MEM).rt_mem)

◆ X0MODE

#define X0MODE ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_type)

◆ X0STR

#define X0STR ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_str)

◆ X0TREE

#define X0TREE ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_tree)

◆ X0UINT

#define X0UINT ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_uint)

◆ X0VEC

#define X0VEC ( RTX,
N )   (RTL_CHECK1 (RTX, N, '0').rt_rtvec)

◆ XBBDEF

#define XBBDEF ( RTX,
N )   (RTL_CHECK1 (RTX, N, 'B').rt_bb)

◆ XC2EXP

#define XC2EXP ( RTX,
N,
C1,
C2 )   (RTL_CHECKC2 (RTX, N, C1, C2).rt_rtx)

◆ XC3EXP

#define XC3EXP ( RTX,
N,
C1,
C2,
C3 )   (RTL_CHECKC3 (RTX, N, C1, C2, C3).rt_rtx)

◆ XCBBDEF

#define XCBBDEF ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_bb)

◆ XCCFI

#define XCCFI ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_cfi)

◆ XCCSELIB

#define XCCSELIB ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_cselib)

◆ XCEXP

#define XCEXP ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_rtx)

◆ XCFI

#define XCFI ( RTX,
N )   (RTL_CHECK1 (RTX, N, 'C').rt_cfi)

◆ XCINT

#define XCINT ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_int)

◆ XCMODE

#define XCMODE ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_type)

◆ XCMWINT

#define XCMWINT ( RTX,
N,
C,
M )   ((RTX)->u.hwint[N])

◆ XCNMPFV

#define XCNMPFV ( RTX,
C,
M )   (&(RTX)->u.fv)

◆ XCNMPRV

#define XCNMPRV ( RTX,
C,
M )   (&(RTX)->u.rv)

◆ XCNMWINT

#define XCNMWINT ( RTX,
N,
C,
M )   ((RTX)->u.hwint[N])

◆ XCSTR

#define XCSTR ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_str)

◆ XCSUBREG

#define XCSUBREG ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_subreg)

◆ XCTREE

#define XCTREE ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_tree)

◆ XCUINT

#define XCUINT ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_uint)

◆ XCVEC

#define XCVEC ( RTX,
N,
C )   (RTL_CHECKC1 (RTX, N, C).rt_rtvec)

◆ XCVECEXP

#define XCVECEXP ( RTX,
N,
M,
C )   RTVEC_ELT (XCVEC (RTX, N, C), M)

◆ XCVECLEN

#define XCVECLEN ( RTX,
N,
C )   GET_NUM_ELEM (XCVEC (RTX, N, C))

◆ XCWINT

#define XCWINT ( RTX,
N,
C )   ((RTX)->u.hwint[N])

◆ XEXP

#define XEXP ( RTX,
N )   (RTL_CHECK2 (RTX, N, 'e', 'u').rt_rtx)

Referenced by add_auto_inc_notes(), add_const_value_attribute(), add_constraint(), add_constraints(), add_define_attr(), add_equal_note(), add_function_usage_to(), add_label_notes(), add_location_or_const_value_attribute(), add_mem_for_addr(), add_mode_tests(), add_next_usage_insn(), add_regs_to_insn_regno_info(), add_removable_extension(), inchash::add_rtx(), add_shallow_copy_of_reg_note(), add_stores(), add_string_csts(), add_test(), add_uses(), add_var_loc_to_decl(), addr_offset_valid_p(), addr_side_effect_eval(), adjust_address_1(), adjust_for_new_dest(), adjust_insn(), adjust_mems(), adjust_piece_list(), alloc_EXPR_LIST(), alloc_INSN_LIST(), allocate_dynamic_stack_space(), alter_attrs_for_insn(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), analyze_insn_to_expand_var(), any_condjump_p(), fixup_insn_uid::apply(), apply_distributive_law(), insn_propagation::apply_to_lvalue_1(), insn_propagation::apply_to_mem_1(), insn_propagation::apply_to_pattern_1(), insn_propagation::apply_to_rvalue_1(), arithmetic_flags_clobber_p(), asan_clear_shadow(), asan_protect_global(), asm_operand_ok(), assemble_undefined_decl(), assemble_variable(), assign_parm_adjust_entry_rtl(), assign_parm_is_stack_parm(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_stack_temp_for_type(), attempt_change(), attr_rtx_1(), attr_rtx_cost(), attr_value_alignment(), auto_inc_p(), autoinc_split(), avoid_complex_debug_insns(), avoid_constant_pool_reference(), bad_for_rematerialization_p(), base_alias_check(), bb_estimate_probability_locally(), bb_is_just_return(), find_comparison_dom_walker::before_dom_children(), break_out_memory_refs(), bswap_loc_descriptor(), build_def_use(), build_personality_function(), bypass_block(), cached_nonzero_bits(), cached_num_sign_bit_copies(), calculate_loop_reg_pressure(), call_from_call_insn(), can_combine_p(), can_eliminate_compare(), symtab_node::can_increase_alignment_p(), can_nonlocal_goto(), can_simplify_addr(), canon_address(), canon_condition(), canon_list_insert(), canon_reg(), canon_reg_for_combine(), canon_rtx(), canonicalize_address_mult(), canonicalize_change_group(), canonicalize_condition(), canonicalize_insn(), canonicalize_reload_addr(), cc_in_cond(), change_address(), change_address_1(), change_regs(), change_zero_ext(), check_attr_test(), check_attr_value(), check_defs(), check_eliminable_occurrences(), check_maybe_invariant(), check_promoted_subreg(), check_sibcall_argument_overlap_1(), check_tune_attr(), check_tune_attr(), choose_reload_regs(), cleanup_auto_inc_dec(), clear_struct_flag(), clobber_overlapping_mems(), clz_loc_descriptor(), collect_insn_data(), collect_non_operand_hard_regs(), combinable_i3pat(), combine_and_move_insns(), combine_instructions(), combine_predictions_for_insn(), combine_reloads(), combine_set_extension(), combine_simplify_rtx(), combine_stack_adjustments_for_block(), compare_and_jump_seq(), compare_base_symbol_refs(), compares_alternatives_p(), computation_cost(), compute_alternative_mask(), compute_argument_addresses(), compute_bb_dataflow(), compute_ld_motion_mems(), compute_test_codes(), compute_transp(), computed_jump_p(), computed_jump_p_1(), cond_exec_get_condition(), cond_exec_process_if_block(), cond_move_convert_if_block(), condition_dominates_p(), condjump_in_parallel_p(), condjump_label(), condjump_p(), conforming_compare(), const_ok_for_output(), const_ok_for_output_1(), constrain_operands(), contains_muldiv(), contains_reg_p(), control_flow_insn_p(), convert_debug_memory_address(), convert_memory_address_addr_space_1(), convert_mode_scalar(), convert_move(), convert_set_attr_alternative(), copy_boolean(), copy_frame_info_to_split_insn(), copy_insn_1(), copy_INSN_LIST(), copy_reg_eh_region_note_backward(), copy_reg_eh_region_note_forward(), copy_replacements_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), symtab_node::copy_visibility_from(), copyprop_hardreg_forward_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), covers_regno_p(), cprop_insn(), cprop_jump(), create_insn_allocnos(), create_trace_edges(), cse_cc_succs(), cse_extended_basic_block(), cse_insn(), cse_process_note_1(), cselib_expand_value_rtx_1(), cselib_hash_plus_const_int(), cselib_hash_rtx(), cselib_invalidate_mem(), cselib_invalidate_rtx(), cselib_lookup_mem(), cselib_process_insn(), cselib_record_sets(), cselib_record_sp_cfa_base_equiv(), cselib_redundant_set_p(), cselib_reset_table(), cselib_sp_derived_value_p(), cselib_subst_to_values(), cst_pool_loc_descr(), curr_insn_transform(), dbr_schedule(), dead_or_predicable(), dead_pseudo_p(), decl_piece_bitsize(), decl_piece_varloc_ptr(), decode_addr_const(), decompose(), decompose_automod_address(), decompose_incdec_address(), decompose_mem_address(), decrease_live_ranges_number(), default_elf_select_rtx_section(), default_encode_section_info(), default_globalize_decl_name(), delegitimize_mem_from_attrs(), deletable_insn_p(), delete_address_reloads(), delete_address_reloads_1(), delete_computation(), delete_insn(), delete_move_and_clobber(), delete_output_reload(), delete_prior_computation(), delete_related_insns(), delete_unmarked_insns(), determine_max_iter(), df_def_record_1(), df_defs_record(), df_find_hard_reg_defs(), df_find_hard_reg_defs_1(), df_find_single_def_src(), df_get_call_refs(), df_insn_refs_collect(), df_notes_rescan(), df_remove_dead_and_unused_notes(), df_remove_dead_eq_notes(), df_simulate_one_insn_forwards(), df_uses_record(), diddle_return_value_1(), distribute_and_simplify_rtx(), distribute_links(), distribute_notes(), do_compare_rtx_and_jump(), do_jump(), do_local_cprop(), do_output_reload(), do_SUBST(), doloop_condition_get(), doloop_modify(), doloop_simplify_count(), dump_tm_clone_pairs(), duplicate_reg_note(), dw2_fix_up_crossing_landing_pad(), dw_loc_list_1(), dw_sra_loc_expr(), dwarf2out_frame_debug(), dwarf2out_frame_debug_adjust_cfa(), dwarf2out_frame_debug_cfa_expression(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_register(), dwarf2out_frame_debug_def_cfa(), dwarf2out_frame_debug_expr(), rtx_expr_list::element(), eliminate_constant_term(), eliminate_implied_conditions(), eliminate_known_true(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), elimination_effects(), address_reload_context::emit_autoinc(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_block_op_via_libcall(), emit_call_1(), emit_clobber(), emit_cmp_and_jump_insn_1(), emit_conditional_add(), emit_conditional_move(), emit_copy_of_insn_after(), emit_delay_sequence(), emit_group_load(), emit_group_load_1(), emit_group_load_into_temps(), emit_group_move(), emit_group_move_into_temps(), emit_group_store(), emit_input_reload_insns(), emit_libcall_block_1(), emit_library_call_value_1(), emit_move_change_mode(), emit_move_complex_push(), emit_move_insn(), emit_move_multi_word(), emit_move_resolve_push(), emit_note_insn_var_location(), emit_notes_in_bb(), emit_push_insn(), emit_reload_insns(), emit_use(), equiv_address_substitution(), equiv_init_movable_p(), equiv_init_varies_p(), evaluate_eq_attr(), exact_int_to_float_conversion_p(), exp_equiv_p(), expand_assignment(), expand_atomic_compare_and_swap(), expand_atomic_fetch_op(), expand_builtin(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_cexpi(), expand_builtin_memory_copy_args(), expand_builtin_memset_args(), expand_builtin_strncpy(), expand_call(), expand_ccmp_expr(), expand_compound_operation(), expand_debug_expr(), expand_debug_parm_decl(), expand_delays(), expand_doubleword_mod(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_expr_real_2(), expand_field_assignment(), expand_function_end(), expand_function_start(), expand_loc(), expand_movstr(), expand_vec_cmp_expr(), expand_vec_cond_optab_fn(), extract_left_shift(), extract_mem_from_operand(), extract_plus_operands(), fill_attr(), fill_slots_from_thread(), final_scan_insn_1(), find_address(), find_all_hard_reg_sets(), find_and_remove_re(), find_args_size_adjust(), find_attrs_to_cache(), find_auto_inc(), find_base_term(), find_base_value(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_comparison_args(), find_cond_trap(), find_constant_src(), find_constant_term_loc(), find_dead_or_set_registers(), find_decomposable_shift_zext(), find_decomposable_subregs(), find_equiv_reg(), find_first_parameter_load(), find_flags_uses_in_insn(), find_implicit_sets(), find_inc_amount(), find_list_elem(), find_loads(), find_matching_operand(), find_mem(), find_mem_conflicts(), find_memory_stores(), find_moveable_pseudos(), find_operand(), find_reg_equal_equiv_note(), find_reg_fusage(), find_reg_note(), find_reg_offset_for_const(), find_regno_fusage(), find_regno_note(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_address_part(), find_reloads_subreg_address(), find_reloads_toplev(), find_replacement(), find_reusable_reload(), find_single_use_1(), find_split_point(), find_subregs_of_mode(), find_temp_slot_from_address(), find_tune_attr(), find_tune_attr(), find_used_regs(), fix_crossing_conditional_branches(), fix_reg_dead_note(), fix_reg_equiv_init(), fixed_base_plus_p(), flow_active_insn_p(), fold_rtx(), for_each_inc_dec(), for_each_inc_dec_find_inc_dec(), force_const_mem(), force_int_to_mode(), force_move_args_size_note(), force_nonfallthru_and_redirect(), force_operand(), force_reg(), force_reload_address(), form_sum(), form_sum(), forward_propagate_and_simplify(), forward_propagate_subreg(), fp_setter_insn(), free_EXPR_LIST_node(), free_INSN_LIST_node(), free_list(), free_load_extend(), function_invariant_p(), gcse_emit_move_after(), gen_addr_rtx(), gen_array_type_die(), gen_attr(), gen_attr(), gen_cond_trap(), gen_exp(), gen_group_rtx(), gen_insn(), gen_insn_reserv(), gen_insn_reserv(), gen_lowpart_common(), gen_lowpart_for_combine(), gen_lowpart_if_possible(), gen_reload(), gen_reload_chain_without_interm_reg_p(), general_operand(), get_addr(), get_address_mode(), get_alternatives_number(), get_args_size(), get_base_term(), get_biv_step_1(), get_branch_condition(), get_call_args(), get_call_fndecl(), get_call_rtx_from(), get_condition(), get_eh_region_and_lp_from_rtx(), get_equiv_regno(), get_extended_src_reg(), get_fnname_from_decl(), get_index_scale(), get_index_term(), get_integer_term(), get_last_value_validate(), get_mem_expr_from_op(), get_pattern_stats_1(), get_personality_function(), get_related_value(), get_secondary_mem(), globalize_decl(), hash_invariant_expr_1(), hash_rtx(), hash_scan_set(), hash_scan_set(), hash_scan_set(), identify_predicable_attribute(), if_test_bypass_p(), if_then_else_cond(), implicit_set_cond_p(), implies_p(), in_insn_list_p(), in_list_p(), inc_for_reload(), indirect_jump_optimize(), indirect_operand(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), init_expmed_one_mode(), init_label_info(), init_one_libfunc_visibility(), initial_return_save(), initialize_argument_information(), insert_one_insn(), insert_right_side(), rtx_insn_list::insn(), insn_invalid_p(), insn_stack_adjust_offset_pre_post(), insns_have_identical_cfa_notes(), instantiate_decl_rtl(), instantiate_virtual_regs_in_insn(), instantiate_virtual_regs_in_rtx(), internal_arg_pointer_based_exp(), inv_can_prop_to_addr_use(), invalidate(), invalidate_any_buried_refs(), invalidate_dest(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invariant_expr_equal_p(), invariant_or_equiv_p(), invariant_p(), invert_br_probabilities(), invert_exp_1(), is_based_loc(), is_cond_copy_insn(), is_parallel_of_n_reg_sets(), iv_analyze_def(), iv_analyze_expr(), iv_number_of_iterations(), kill_autoinc_value(), known_cond(), label_is_jump_target_p(), likely_spilled_retval_1(), likely_spilled_retval_p(), load_register_parameters(), loc_cmp(), loc_descriptor(), loc_equivalence_change_p(), loc_list_from_tree_1(), loc_mentioned_in_p(), local_cprop_pass(), lra_eliminate_regs_1(), lra_emit_add(), lra_emit_move(), lra_final_code_change(), lra_rtx_hash(), lra_set_insn_recog_data(), lra_substitute_pseudo(), lra_update_insn_regno_info(), lsb_bitfield_op_p(), main(), make_automaton_attrs(), make_canonical(), make_compound_operation(), make_compound_operation_int(), symtab_node::make_decl_local(), make_decl_rtl(), make_defs_and_copies_lists(), make_edges(), make_extraction(), make_field_assignment(), make_memloc(), make_reg_eh_region_note_nothrow_nononlocal(), make_safe_from(), make_tree(), mark_effect(), mark_jump_label_1(), mark_label_nuses(), mark_mode_tests(), mark_not_eliminable(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_target_live_regs(), mark_used_flags(), mark_used_regs_combine(), mark_user_reg(), mark_weak(), match_pattern_2(), match_rtx(), max_attr_value(), max_operand_1(), may_alias_p(), may_trap_p_1(), maybe_emit_sync_lock_test_and_set(), maybe_fix_stack_asms(), maybe_legitimize_operand_same_code(), maybe_merge_cfa_adjust(), maybe_move_args_size_note(), maybe_output_constant_def_contents(), maybe_propagate_label_ref(), maybe_swap_commutative_operands(), mem_autoinc_base(), mem_loc_descriptor(), memory_address_addr_space(), memref_referenced_p(), memrefs_conflict_p(), mems_conflict_for_gcse_p(), mention_regs(), merge_def_and_ext(), merge_memattrs(), merge_notes(), min_attr_value(), minmax_loc_descriptor(), modified_between_p(), modified_in_p(), modify_attr_enabled_ce(), move2add_note_store(), move2add_use_add3_insn(), move_dead_notes(), move_deaths(), move_invariant_reg(), move_plus_up(), multiplier_allowed_in_address_p(), needs_variable(), rtx_expr_list::next(), rtx_insn_list::next(), NEXT_INSN(), no_unhandled_cfa(), noce_bbs_ok_for_cond_zero_arith(), noce_can_force_operand(), noce_convert_multiple_sets(), noce_convert_multiple_sets_1(), noce_emit_czero(), noce_emit_move_insn(), noce_emit_store_flag(), noce_find_if_block(), noce_get_alt_condition(), noce_get_condition(), noce_operand_ok(), noce_process_if_block(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_minmax(), noce_try_move(), noce_try_sign_mask(), noce_try_store_flag_constants(), nonoverlapping_memrefs_p(), nonzero_address_p(), nonzero_bits1(), note_pattern_stores(), note_stores(), note_uses(), notice_stack_pointer_modification_1(), notify_dependents_of_changed_value(), num_sign_bit_copies1(), offset_address(), offsettable_address_addr_space_p(), offsettable_memref_p(), offsettable_nonstrict_memref_p(), old_insns_match_p(), one_cprop_pass(), operand_for_swap_move_operator(), rtx_writer::operand_has_default_value_p(), operand_subword(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), outgoing_edges_match(), output_addr_const(), output_constant_pool_1(), parse_add_or_inc(), patch_jump_insn(), PATTERN(), peep2_attempt(), pieces_addr::pieces_addr(), place_block_symbol(), plus_constant(), plus_minus_operand_p(), pop_operand(), popcount_loc_descriptor(), prefer_and_bit_test(), prepare_call_arguments(), prepare_cmp_insn(), preserve_temp_slots(), PREV_INSN(), print_exp(), print_insn_with_notes(), print_pattern(), rtx_writer::print_rtx_operand_code_e(), rtx_writer::print_rtx_operand_code_u(), print_value(), process_address_1(), process_bb_lives(), process_define_constraint(), process_define_predicate(), process_define_predicate(), process_one_cond_exec(), process_pending_assemble_externals(), process_set_for_memref_referenced_p(), prune_expressions(), purge_dead_edges(), purge_dead_tablejump_edges(), push_operand(), push_reg_equiv_alt_mem(), push_reload(), read_complex_part(), rtx_reader::read_rtx_operand(), rtx_reader::read_rtx_variadic(), recog_for_combine_1(), record_address_regs(), record_dead_and_set_regs(), record_jump_equiv(), record_one_stack_ref(), record_operand_costs(), record_opr_changes(), record_set(), record_store(), record_value_for_reg(), redirect_exp_1(), redirect_jump_2(), references_value_p(), refers_to_mem_for_reload_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_inc_found_and_valid_p(), reg_mentioned_p(), reg_overlap_mentioned_for_reload_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), reg_subword_p(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), regstat_bb_compute_ri(), reload(), reload_as_needed(), reload_combine(), reload_combine_note_store(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), remove_clobbers(), remove_constraints(), remove_free_EXPR_LIST_node(), remove_init_insns(), remove_list_node(), remove_node_from_insn_list(), remove_note(), remove_pseudos(), remove_reachable_equiv_notes(), remove_reg_equal_equiv_notes(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_equiv_address(), replace_expr_with_values(), replace_label(), replace_oldest_value_addr(), replace_oldest_value_mem(), replace_operands_with_dups(), replace_pseudos_in(), replace_rtx(), replace_store_insn(), resolve_clobber(), resolve_reg_notes(), resolve_shift_zext(), resolve_simple_move(), resolve_use(), rest_of_handle_final(), reverse_op(), reversed_comparison(), reversed_comparison_code(), reversed_comparison_code_parts(), reversed_condition(), rotate_loc_descriptor(), rtl_for_decl_location(), rtl_lv_add_condition_to_bb(), rtl_predicted_by_p(), rtx_addr_can_trap_p_1(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_for_function_call(), rtx_moveable_p(), rtx_renumbered_equal_p(), rtx_unstable_p(), rtx_varies_p(), safe_from_p(), save_call_clobbered_regs(), scan_insn(), scan_one_insn(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), scompare_loc_descriptor(), scompare_loc_descriptor_narrow(), set_for_reg_notes(), set_label_offsets(), set_mem_attrs_for_spill(), SET_NEXT_INSN(), set_noop_p(), SET_PREV_INSN(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), set_reg_attrs_from_value(), set_rtl(), set_slot_part(), set_storage_via_libcall(), set_unique_reg_note(), set_user_assembler_libfunc(), setup_reg_equiv(), setup_save_areas(), shared_const_p(), shift_cost(), shorten_branches(), should_replace_address(), side_effects_p(), simple_move_operand(), simple_rhs_p(), simplify_and_const_int_1(), simplify_and_tree(), simplify_context::simplify_associative_operation(), simplify_context::simplify_binary_operation_1(), simplify_context::simplify_byte_swapping_operation(), simplify_comparison(), simplify_cond(), simplify_context::simplify_cond_clz_ctz(), simplify_const_relational_operation(), simplify_context::simplify_distributive_operation(), simplify_if_then_else(), simplify_logical(), simplify_context::simplify_logical_relational_operation(), simplify_context::simplify_merge_mask(), simplify_operand_subreg(), simplify_or_tree(), simplify_context::simplify_plus_minus(), simplify_context::simplify_relational_operation(), simplify_context::simplify_relational_operation_1(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_subreg(), simplify_context::simplify_ternary_operation(), simplify_test_exp(), simplify_context::simplify_truncation(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), simplify_using_initial_values(), simplify_while_replacing(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_fix_up_crossing_landing_pad(), sjlj_mark_call_sites(), skip_usage_debug_insns(), sp_based_mem_offset(), spill_pseudos(), split_const(), split_if_necessary(), split_insn(), split_reg(), stack_adjust_offset_pre_post(), stack_adjust_offset_pre_post_cb(), stack_memref_p(), store_killed_in_insn(), store_killed_in_pat(), store_one_arg(), strip_address_mutations(), strip_not(), strip_offset(), subst(), subst_dup(), subst_indexed_address(), subst_pattern_match(), subst_reg_equivs(), subst_reloads(), substitute(), substitute(), substitute_address(), suitable_set_for_replacement(), tablejump_casesi_pattern(), tests_attr_p(), thread_jump(), track_expr_p(), transform_ifelse(), tree_output_constant_def(), true_dependence_1(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_emit_cmove_seq(), try_fwprop_subst_note(), try_fwprop_subst_notes(), try_fwprop_subst_pattern(), try_replace_in_use(), try_replace_reg(), try_split(), try_store_by_multiple_pieces(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_insn(), rtx_properties::try_to_add_pattern(), rtx_properties::try_to_add_src(), typed_binop(), ucompare_loc_descriptor(), update_auto_inc_notes(), update_br_prob_note(), update_equiv_regs(), update_inc_notes(), update_reg_dead_notes(), update_reg_equal_equiv_notes(), update_reg_unused_notes(), update_rsp_from_reg_equal(), update_table_tick(), update_temp_slot_address(), use_anchored_address(), use_group_regs(), use_narrower_mode(), use_narrower_mode_test(), use_type(), uses_hard_regs_p(), val_bind(), validate_autoinc_and_mem_addr_p(), validate_equiv_mem(), validate_exp(), validate_pattern(), validate_replace_rtx_1(), validate_replace_rtx_group(), validate_test_and_branch(), validize_mem(), values_equal_p(), vec_duplicate_p(), vec_series_p(), verify_changes(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), vt_add_function_parameter(), vt_canon_true_dep(), vt_canonicalize_addr(), vt_get_canonicalize_base(), vt_get_decl_and_offset(), vt_initialize(), walk_alter_subreg(), walk_attr_value(), walk_insn_part(), walk_rtx(), will_delete_init_insn_p(), write_attr_set(), write_attr_value(), write_complex_part(), write_dependence_p(), write_insn_const_int_ok_for_constraint(), write_predicate_expr(), write_predicate_stmts(), write_predicate_subfunction(), and write_test_expr().

◆ XINT

#define XINT ( RTX,
N )   (RTL_CHECK2 (RTX, N, 'i', 'n').rt_int)

Referenced by add_constraints(), inchash::add_rtx(), add_shallow_copy_of_reg_note(), alter_predicate_for_insn(), apply_int_iterator(), attr_rtx_1(), br_prob_note_reliable_p(), collect_insn_data(), combine_predictions_for_insn(), compute_outgoing_frequencies(), cond_exec_process_if_block(), const_ok_for_output_1(), const_rtx_hash_1(), convert_memory_address_addr_space_1(), cselib_hash_rtx(), dead_or_predicable(), duplicate_reg_note(), exp_equiv_p(), find_operand(), fixup_reorder_chain(), force_nonfallthru_and_redirect(), gen_bypass(), gen_exp(), gen_insn_reserv(), gen_insn_reserv(), gen_rtx_scratch(), generate_match_dup(), get_alternatives_number(), get_pattern_stats_1(), hash_invariant_expr_1(), hash_rtx(), invariant_expr_equal_p(), invert_br_probabilities(), loc_cmp(), lra_rtx_hash(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), match_pattern_2(), match_rtx(), max_operand_1(), mem_loc_descriptor(), mostly_true_jump(), operands_match_p(), operands_match_p(), output_peephole2_scratches(), print_exp(), print_insn_with_notes(), rtx_writer::print_rtx_operand(), rtx_writer::print_rtx_operand_code_i(), purge_dead_edges(), function_reader::read_rtx_operand_i_or_n(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_operands_with_dups(), rtl_verify_edges(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), scan_operands(), subst_dup(), subst_pattern_match(), try_eliminate_compare(), try_split(), update_br_prob_note(), validate_pattern(), walk_insn_part(), walk_rtx(), and write_test_expr().

◆ XMODE

#define XMODE ( RTX,
N )   (RTL_CHECK1 (RTX, N, 'M').rt_type)

◆ XSTR

#define XSTR ( RTX,
N )   (RTL_CHECK2 (RTX, N, 's', 'S').rt_str)

Referenced by add_attributes(), add_const_value_attribute(), add_constraint(), add_constraints(), add_define_attr(), add_insn(), add_mode_tests(), inchash::add_rtx(), alter_attrs_for_insn(), alter_attrs_for_subst_insn(), alter_constraints(), alter_output_for_insn(), alter_predicate_for_insn(), alter_test_for_insn(), asm_insn_count(), assemble_external_libcall(), assemble_undefined_decl(), assemble_variable(), attr_checksum(), attr_checksum_ordered(), attr_numeral(), attr_rtx_1(), attr_rtx_cost(), attr_value_alignment(), change_subst_attribute(), check_attr_test(), check_attr_value(), check_define_attr_duplicates(), check_defs(), check_tune_attr(), check_tune_attr(), collect_insn_data(), compare_base_symbol_refs(), compare_constant(), compares_alternatives_p(), compute_alternative_mask(), compute_test_codes(), const_hash_1(), const_rtx_hash_1(), convert_set_attr(), convert_set_attr_alternative(), copy_boolean(), md_reader::copy_rtx_for_iterators(), count_alternatives(), create_block_symbol(), cselib_hash_rtx(), debug_optab_libfuncs(), decode_asm_operands(), def_target_insn(), default_globalize_decl_name(), dw2_asm_output_encoded_addr_rtx(), dw2_force_const_mem(), emit_library_call_value_1(), insn_hasher::equal(), evaluate_eq_attr(), exp_equiv_p(), fill_attr(), final_scan_insn_1(), find_attrs_to_cache(), find_matching_operand(), find_tune_attr(), find_tune_attr(), gen_array_type_die(), gen_attr(), gen_attr(), gen_attr(), gen_automata_option(), gen_automaton(), gen_bypass(), gen_bypass(), gen_cpu_unit(), gen_excl_set(), gen_exp(), gen_expand(), gen_expand(), gen_insn(), gen_insn(), gen_insn(), gen_insn(), gen_insn(), gen_insn_reserv(), gen_insn_reserv(), gen_mnemonic_attr(), gen_mnemonic_setattr(), gen_peephole(), gen_presence_absence_set(), gen_proto(), gen_query_cpu_unit(), gen_reserv(), gen_split(), generate_switch_p(), get_alternatives_number(), get_c_test(), get_fnname_from_decl(), get_some_local_dynamic_name(), globalize_decl(), has_subst_attribute(), insn_hasher::hash(), hash_rtx(), identify_predicable_attribute(), is_predicable(), loc_cmp(), lra_rtx_hash(), main(), make_automaton_attrs(), make_canonical(), mark_mode_tests(), match_rtx(), max_attr_value(), min_attr_value(), modify_attr_enabled_ce(), needs_variable(), note_constraint(), rtx_writer::operand_has_default_value_p(), operands_match_p(), operands_match_p(), output_addr_const(), output_constant_def_contents(), output_constant_pool_contents(), output_object_block(), output_peephole2_scratches(), predicate_name(), print_pattern(), rtx_writer::print_rtx_operand(), print_value(), process_define_constraint(), process_define_predicate(), process_define_predicate(), process_define_register_constraint(), process_define_register_constraint(), process_define_subst(), process_one_cond_exec(), process_pending_assemble_externals(), process_rtx(), process_substs_on_one_elem(), read_md_rtx(), rtx_reader::read_rtx_operand(), remove_constraints(), replace_duplicating_operands_in_pattern(), resolve_addr_in_expr(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_renumbered_equal_p(), scan_operands(), simplify_and_tree(), simplify_or_tree(), simplify_test_exp(), subst_pattern_match(), tests_attr_p(), validate_exp(), validate_pattern(), walk_attr_value(), write_attr_value(), write_insn_cases(), write_match_code_switch(), write_predicate_expr(), write_predicate_subfunction(), and write_test_expr().

◆ XTMPL

◆ XTREE

#define XTREE ( RTX,
N )   (RTL_CHECK1 (RTX, N, 't').rt_tree)

◆ XUINT

#define XUINT ( RTX,
N )   (RTL_CHECK2 (RTX, N, 'i', 'n').rt_uint)

Referenced by INSN_LOCATION(), and INSN_LOCATION().

◆ XVEC

#define XVEC ( RTX,
N )   (RTL_CHECK2 (RTX, N, 'E', 'V').rt_rtvec)

Referenced by add_attributes(), add_constraints(), add_implicit_parallel(), alter_attrs_for_insn(), alter_attrs_for_subst_insn(), attr_rtx_1(), change_subst_attribute(), check_defs(), check_promoted_subreg(), cleanup_auto_inc_dec(), collect_insn_data(), function_reader::consolidate_singletons(), convert_set_attr(), convert_set_attr_alternative(), copy_insn_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), count_alternatives(), cselib_expand_value_rtx_1(), cselib_subst_to_values(), decompose_register(), def_target_insn(), eliminate_regs_1(), expand_delays(), fill_attr(), find_matching_operand(), find_operand(), gen_expand(), gen_expand(), gen_expand(), gen_insn(), gen_insn(), gen_insn(), gen_mnemonic_attr(), gen_mnemonic_setattr(), gen_peephole(), gen_split(), get_alternatives_number(), rtx_jump_table_data::get_labels(), get_peephole2_pattern(), handle_overloaded_gen(), handle_overloaded_gen(), has_subst_attribute(), is_predicable(), loc_descriptor(), lra_eliminate_regs_1(), main(), make_automaton_attrs(), make_canonical(), rtx_writer::print_rtx_operand_codes_E_and_V(), process_one_cond_exec(), process_rtx(), process_substs_on_one_elem(), rtx_reader::read_rtx_operand(), reg_scan_mark_refs(), remove_clobbers(), remove_constraints(), replace_label(), replace_operands_with_dups(), scan_operands(), simplify_cond(), simplify_replace_fn_rtx(), subst_dup(), substitute_address(), try_combine(), vec_series_highpart_p(), vec_series_lowpart_p(), verify_rtx_sharing(), walk_attr_value(), and walk_insn_part().

◆ XVECEXP

#define XVECEXP ( RTX,
N,
M )   RTVEC_ELT (XVEC (RTX, N), M)

Referenced by add_attributes(), add_auto_inc_notes(), add_constraints(), add_label_notes(), add_regs_to_insn_regno_info(), inchash::add_rtx(), adjust_insn(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), insn_propagation::apply_to_pattern_1(), insn_propagation::apply_to_rvalue_1(), arithmetic_flags_clobber_p(), asm_noperands(), assign_parm_adjust_entry_rtl(), assign_parm_is_stack_parm(), attr_rtx_cost(), attr_value_alignment(), avoid_complex_debug_insns(), bad_for_rematerialization_p(), build_def_use(), call_from_call_insn(), can_combine_p(), can_split_parallel_of_n_reg_sets(), canon_reg(), canon_reg_for_combine(), canonicalize_insn(), change_regs(), check_attr_value(), check_defs(), check_eliminable_occurrences(), check_maybe_invariant(), check_promoted_subreg(), check_sibcall_argument_overlap_1(), classify_insn(), cleanup_auto_inc_dec(), clear_struct_flag(), collect_insn_data(), collect_non_operand_hard_regs(), combinable_i3pat(), compares_alternatives_p(), compute_transp(), computed_jump_p(), computed_jump_p_1(), concatn_loc_descriptor(), condjump_in_parallel_p(), conforming_compare(), const_ok_for_output_1(), contains_reg_p(), convert_memory_address_addr_space_1(), convert_set_attr(), convert_set_attr_alternative(), convert_to_eh_region_ranges(), copy_insn_1(), copy_replacements_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), covers_regno_p(), create_insn_allocnos(), cse_insn(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_record_sets(), cselib_subst_to_values(), dbr_schedule(), dead_or_set_regno_p(), dead_pseudo_p(), decode_asm_operands(), decompose_register(), default_unspec_may_trap_p(), deletable_insn_p(), delete_address_reloads_1(), delete_prior_computation(), df_def_record_1(), df_defs_record(), df_find_hard_reg_defs(), df_find_hard_reg_defs_1(), df_uses_record(), diddle_return_value_1(), distribute_links(), doloop_condition_get(), dwarf2out_frame_debug(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_restore(), dwarf2out_frame_debug_expr(), dwf_cfa_reg(), rtx_sequence::element(), eliminate_regs_1(), elimination_effects(), emit_delay_sequence(), emit_group_load(), emit_group_load_1(), emit_group_load_into_temps(), emit_group_move(), emit_group_move_into_temps(), emit_group_store(), equal_different_set_p(), equiv_init_movable_p(), equiv_init_varies_p(), evaluate_eq_attr(), exp_equiv_p(), expand_asm_loc(), expand_asm_stmt(), expand_builtin_init_dwarf_reg_sizes(), expand_call(), expand_debug_expr(), expand_delays(), extract_asm_operands(), extract_insn(), fill_attr(), fill_simple_delay_slots(), fill_slots_from_thread(), final_scan_insn_1(), find_address(), find_args_size_adjust(), find_attrs_to_cache(), find_equiv_reg(), find_flags_uses_in_insn(), find_inc_amount(), find_loads(), find_matching_operand(), find_mem(), find_operand(), find_sets_in_insn(), find_single_use_1(), find_subregs_of_mode(), find_used_regs(), fix_crossing_conditional_branches(), gen_delay(), gen_exp(), gen_expand(), gen_expand(), gen_expand(), gen_group_rtx(), gen_insn(), gen_insn(), gen_insn(), gen_insn(), gen_mnemonic_attr(), gen_mnemonic_setattr(), gen_peephole(), gen_peephole(), gen_peephole(), gen_peephole2(), gen_split(), get_alternatives_number(), get_branch_condition(), get_call_rtx_from(), get_eh_region_and_lp_from_rtx(), get_equiv_regno(), get_last_value_validate(), get_pattern_stats_1(), get_peephole2_pattern(), get_sub_rtx(), hard_reg_set_here_p(), hash_invariant_expr_1(), hash_rtx(), hash_scan_insn(), hash_scan_insn(), if_test_bypass_p(), inherit_in_ebb(), initialize_argument_information(), rtx_sequence::insn(), insn_invalid_p(), insn_live_p(), insn_stack_adjust_offset_pre_post(), interesting_dest_for_shprep(), invalidate(), invalidate_any_buried_refs(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invariant_expr_equal_p(), invariant_p(), is_parallel_of_n_reg_sets(), known_cond(), leaf_function_p(), loc_cmp(), loc_equivalence_change_p(), loc_mentioned_in_p(), location_for_asm(), lra_eliminate_regs_1(), lra_rtx_hash(), lra_set_insn_recog_data(), lra_substitute_pseudo(), main(), make_automaton_attrs(), make_canonical(), make_compound_operation(), mark_jump_label_1(), mark_label_nuses(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_flags(), mark_used_regs_combine(), match_pattern_1(), match_pattern_2(), match_rtx(), max_attr_value(), max_operand_1(), may_trap_p_1(), maybe_fix_stack_asms(), mem_loc_descriptor(), memref_referenced_p(), mention_regs(), merge_memattrs(), min_attr_value(), modified_between_p(), modified_in_p(), move2add_use_add2_insn(), move_deaths(), multiple_reg_loc_descriptor(), multiple_sets(), need_fake_edge_p(), noop_move_p(), note_pattern_stores(), note_uses(), num_operands(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), outgoing_edges_match(), output_add_clobbers(), output_peephole2_scratches(), pattern_cost(), pc_set(), pre_insert_copy_insn(), print_exp(), print_insn(), print_pattern(), rtx_writer::print_rtx_operand_codes_E_and_V(), process_bb_node_lives(), process_one_cond_exec(), process_rtx(), process_substs_on_one_elem(), recog_for_combine(), recog_for_combine_1(), redirect_exp_1(), redirect_jump_1(), redirect_with_delay_slots_safe_p(), redundant_insn(), references_value_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_mentioned_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), relax_delay_slots(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_cse_move2add(), reload_cse_simplify(), remove_clobbers(), remove_constraints(), remove_pseudos(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_oldest_value_addr(), replace_operands_with_dups(), replace_pseudos_in(), replace_reg_with_saved_mem(), replace_rtx(), reset_all_used_flags(), resolve_operand_for_swap_move_operator(), resolve_simple_move(), return_insn_p(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_moveable_p(), rtx_renumbered_equal_p(), rtx_unstable_p(), rtx_varies_p(), save_call_clobbered_regs(), scan_insn(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), set_for_reg_notes(), set_label_offsets(), set_noop_p(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), set_return_jump_label(), set_rtl(), shorten_branches(), side_effects_p(), simple_regno_set(), simplify_context::simplify_binary_operation_1(), simplify_cond(), simplify_subreg_concatn(), simplify_context::simplify_ternary_operation(), single_set_2(), single_set_for_csa(), store_data_bypass_p(), store_data_bypass_p_1(), store_killed_in_insn(), subst(), subst_dup(), subst_pattern_match(), substitute(), substitute(), substitute_address(), tests_attr_p(), thread_jump(), try_apply_stack_adjustment(), try_combine(), try_eliminate_compare(), try_merge_delay_insns(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_pattern(), update_equiv_regs(), update_table_tick(), use_group_regs(), uses_hard_regs_p(), validate_autoinc_and_mem_addr_p(), validate_change_1(), validate_pattern(), validate_replace_rtx_1(), validate_simplify_insn(), verify_changes(), verify_rtl_sharing(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), vt_add_function_parameter(), vt_get_decl_and_offset(), walk_attr_value(), walk_insn_part(), walk_rtx(), and write_attr_set().

◆ XVECLEN

#define XVECLEN ( RTX,
N )   GET_NUM_ELEM (XVEC (RTX, N))

Referenced by add_attributes(), add_auto_inc_notes(), add_constraints(), add_label_notes(), add_regs_to_insn_regno_info(), inchash::add_rtx(), adjust_insn(), alter_constraints(), alter_predicate_for_insn(), alter_subregs(), insn_propagation::apply_to_pattern_1(), insn_propagation::apply_to_rvalue_1(), arithmetic_flags_clobber_p(), asm_noperands(), assign_parm_adjust_entry_rtl(), attr_rtx_cost(), attr_value_alignment(), avoid_complex_debug_insns(), bad_for_rematerialization_p(), can_combine_p(), cancel_changes(), canon_reg(), canon_reg_for_combine(), canonicalize_insn(), change_regs(), check_attr_value(), check_defs(), check_eliminable_occurrences(), check_maybe_invariant(), check_promoted_subreg(), check_sibcall_argument_overlap_1(), classify_insn(), cleanup_auto_inc_dec(), clear_struct_flag(), collect_insn_data(), collect_non_operand_hard_regs(), combinable_i3pat(), compares_alternatives_p(), compute_transp(), computed_jump_p(), computed_jump_p_1(), concatn_loc_descriptor(), conforming_compare(), const_ok_for_output_1(), const_vector_elt(), const_vector_int_elt(), contains_reg_p(), convert_memory_address_addr_space_1(), convert_set_attr_alternative(), copy_insn_1(), copy_replacements_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), copy_rtx_if_shared_1(), count_alternatives(), count_occurrences(), count_reg_usage(), count_rtxs(), covers_regno_p(), create_insn_allocnos(), cse_insn(), cse_prescan_path(), cselib_expand_value_rtx_1(), cselib_hash_rtx(), cselib_record_sets(), cselib_subst_to_values(), dbr_schedule(), dbr_sequence_length(), dead_or_set_regno_p(), dead_pseudo_p(), decode_asm_operands(), default_unspec_may_trap_p(), deletable_insn_p(), delete_address_reloads_1(), delete_from_delay_slot(), delete_prior_computation(), df_def_record_1(), df_defs_record(), df_find_hard_reg_defs(), df_find_hard_reg_defs_1(), df_uses_record(), diddle_return_value_1(), distribute_links(), dwarf2out_frame_debug_cfa_offset(), dwarf2out_frame_debug_cfa_restore(), dwarf2out_frame_debug_expr(), dwf_cfa_reg(), eliminate_regs_1(), elimination_effects(), emit_group_load(), emit_group_load_1(), emit_group_load_into_temps(), emit_group_move(), emit_group_move_into_temps(), emit_group_store(), equal_different_set_p(), equiv_init_movable_p(), equiv_init_varies_p(), evaluate_eq_attr(), exp_equiv_p(), expand_builtin_init_dwarf_reg_sizes(), expand_delays(), fill_attr(), final_scan_insn_1(), find_address(), find_args_size_adjust(), find_attrs_to_cache(), find_equiv_reg(), find_inc_amount(), find_loads(), find_matching_operand(), find_mem(), find_operand(), find_sets_in_insn(), find_single_use_1(), find_subregs_of_mode(), find_used_regs(), gen_delay(), gen_exp(), gen_expand(), gen_expand(), gen_expand(), gen_group_rtx(), gen_insn(), gen_insn(), gen_insn(), gen_insn(), gen_mnemonic_attr(), gen_mnemonic_setattr(), gen_peephole(), gen_peephole(), gen_peephole(), gen_peephole2(), gen_split(), get_alternatives_number(), get_equiv_regno(), get_last_value_validate(), get_pattern_stats_1(), get_peephole2_pattern(), get_sub_rtx(), hard_reg_set_here_p(), hash_invariant_expr_1(), hash_rtx(), hash_scan_insn(), hash_scan_insn(), if_test_bypass_p(), insn_live_p(), insn_stack_adjust_offset_pre_post(), interesting_dest_for_shprep(), invalidate(), invalidate_any_buried_refs(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), invariant_expr_equal_p(), invariant_p(), is_parallel_of_n_reg_sets(), known_cond(), rtx_sequence::len(), loc_cmp(), loc_equivalence_change_p(), loc_mentioned_in_p(), lra_eliminate_regs_1(), lra_rtx_hash(), lra_set_insn_recog_data(), lra_substitute_pseudo(), main(), make_canonical(), make_compound_operation(), make_return_insns(), mark_jump_label_1(), mark_label_nuses(), mark_not_eliminable(), mark_operands_from_match_dup(), mark_operands_used_in_match_dup(), mark_ref_regs(), mark_referenced_regs(), mark_referenced_resources(), mark_set_resources(), mark_used_flags(), mark_used_regs_combine(), match_pattern_1(), match_pattern_2(), match_rtx(), max_attr_value(), max_operand_1(), may_trap_p_1(), maybe_fix_stack_asms(), mem_loc_descriptor(), memref_referenced_p(), mention_regs(), merge_memattrs(), min_attr_value(), modified_between_p(), modified_in_p(), move_deaths(), multiple_reg_loc_descriptor(), multiple_sets(), noop_move_p(), note_pattern_stores(), note_uses(), num_operands(), operands_match_p(), operands_match_p(), oprs_unchanged_p(), oprs_unchanged_p(), outgoing_edges_match(), output_add_clobbers(), output_peephole2_scratches(), pattern_cost(), pre_insert_copy_insn(), print_exp(), print_pattern(), rtx_writer::print_rtx_operand_codes_E_and_V(), process_bb_node_lives(), process_one_cond_exec(), process_rtx(), process_substs_on_one_elem(), recog_for_combine(), recog_for_combine_1(), redirect_exp_1(), redundant_insn(), references_value_p(), refers_to_regno_for_reload_p(), refers_to_regno_p(), reg_bitfield_target_p(), reg_mentioned_p(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_scan_mark_refs(), reg_set_p(), regno_clobbered_p(), regno_use_in(), regno_val_use_in(), relax_delay_slots(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_cse_simplify(), remove_clobbers(), remove_constraints(), remove_pseudos(), renumerate_operands_in_pattern(), replace_duplicating_operands_in_pattern(), replace_oldest_value_addr(), replace_operands_with_dups(), replace_pseudos_in(), replace_rtx(), reset_all_used_flags(), rtx_addr_varies_p(), rtx_cost(), rtx_equal_for_cselib_1(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_moveable_p(), rtx_renumbered_equal_p(), rtx_unstable_p(), rtx_varies_p(), scan_insn(), scan_operands(), scan_paradoxical_subregs(), scan_rtx(), scan_rtx_address(), set_label_offsets(), set_noop_p(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_for_parm(), shorten_branches(), side_effects_p(), simple_regno_set(), simplify_context::simplify_binary_operation_1(), simplify_cond(), simplify_subreg_concatn(), single_set_2(), single_set_for_csa(), steal_delay_list_from_target(), store_data_bypass_p(), store_data_bypass_p_1(), store_killed_in_insn(), subst(), subst_dup(), subst_pattern_match(), substitute(), substitute(), substitute_address(), swap_change(), tests_attr_p(), thread_jump(), try_apply_stack_adjustment(), try_combine(), try_eliminate_compare(), try_merge_delay_insns(), rtx_properties::try_to_add_dest(), rtx_properties::try_to_add_pattern(), update_equiv_regs(), update_table_tick(), use_group_regs(), uses_hard_regs_p(), validate_autoinc_and_mem_addr_p(), validate_change_1(), validate_pattern(), validate_replace_rtx_1(), validate_simplify_insn(), vec_series_highpart_p(), vec_series_lowpart_p(), verify_changes(), verify_rtl_sharing(), verify_rtx_sharing(), volatile_insn_p(), volatile_refs_p(), vt_add_function_parameter(), vt_get_decl_and_offset(), walk_attr_value(), walk_insn_part(), walk_rtx(), write_attr_set(), and write_eligible_delay().

◆ XWINT

Typedef Documentation

◆ for_each_inc_dec_fn

typedef int(* for_each_inc_dec_fn) (rtx mem, rtx op, rtx dest, rtx src, rtx srcoff, void *arg)
Callback for for_each_inc_dec, to process the autoinc operation OP
within MEM that sets DEST to SRC + SRCOFF, or SRC if SRCOFF is
NULL.  The callback is passed the same opaque ARG passed to
for_each_inc_dec.  Return zero to continue looking for other
autoinc operations or any other value to interrupt the traversal and
return that value to the caller of for_each_inc_dec.   

◆ hash_rtx_callback_function

typedef bool(* hash_rtx_callback_function) (const_rtx, machine_mode, rtx *, machine_mode *)

◆ rtx_equal_p_callback_function

typedef bool(* rtx_equal_p_callback_function) (const_rtx *, const_rtx *, rtx *, rtx *)

◆ rtx_mode_t

typedef std::pair<rtx, machine_mode> rtx_mode_t
This is used to bundle an rtx and a mode together so that the pair
can be used with the wi:: routines.  If we ever put modes into rtx
integer constants, this should go away and then just pass an rtx in.   

Enumeration Type Documentation

◆ global_rtl_index

Index labels for global_rtl.   
Enumerator
GR_STACK_POINTER 
GR_FRAME_POINTER 
GR_ARG_POINTER 
For register elimination to work properly these hard_frame_pointer_rtx,
frame_pointer_rtx, and arg_pointer_rtx must be the same if they refer to
the same register.   
GR_HARD_FRAME_POINTER 
GR_VIRTUAL_INCOMING_ARGS 
GR_VIRTUAL_STACK_ARGS 
GR_VIRTUAL_STACK_DYNAMIC 
GR_VIRTUAL_OUTGOING_ARGS 
GR_VIRTUAL_CFA 
GR_VIRTUAL_PREFERRED_STACK_BOUNDARY 
GR_MAX 

◆ insn_note

Codes that appear in the NOTE_KIND field for kinds of notes
that are not line numbers.  These codes are all negative.

Notice that we do not try to use zero here for any of
the special note codes because sometimes the source line
actually can be zero!  This happens (for example) when we
are generating code for the per-translation-unit constructor
and destructor routines for some C++ translation unit.   
Enumerator
NOTE_INSN_MAX 

◆ label_kind

Labels carry a two-bit field composed of the ->jump and ->call
bits.  This field indicates whether the label is an alternate
entry point, and if so, what kind.   
Enumerator
LABEL_NORMAL 
LABEL_STATIC_ENTRY 
LABEL_GLOBAL_ENTRY 
LABEL_WEAK_ENTRY 

◆ libcall_type

In calls.cc  
Enumerator
LCT_NORMAL 
LCT_CONST 
LCT_PURE 
LCT_NORETURN 
LCT_THROW 
LCT_RETURNS_TWICE 

◆ memop_ret

Memory operation built-ins differ by return value.  Mapping
  of the enum values is following:
  - RETURN_BEGIN - return destination, e.g. memcpy
  - RETURN_END - return destination + n, e.g. mempcpy
  - RETURN_END_MINUS_ONE - return a pointer to the terminating
   null byte of the string, e.g. strcpy
Enumerator
RETURN_BEGIN 
RETURN_END 
RETURN_END_MINUS_ONE 

◆ reg_note

Enumerator
REG_NOTE_MAX 

◆ rtx_class

Register Transfer Language EXPRESSIONS CODE CLASSES  
Enumerator
RTX_COMPARE 
RTX_COMM_COMPARE 
RTX_BIN_ARITH 
RTX_COMM_ARITH 
RTX_UNARY 
RTX_EXTRA 
RTX_MATCH 
RTX_INSN 
RTX_OBJ 
RTX_CONST_OBJ 
RTX_TERNARY 
RTX_BITFIELD_OPS 
RTX_AUTOINC 

◆ rtx_code

Enumerator
LAST_AND_UNUSED_RTX_CODE 

Function Documentation

◆ _fatal_insn()

void _fatal_insn ( const char * msgid,
const_rtx insn,
const char * file,
int line,
const char * function )
extern

◆ _fatal_insn_not_found()

void _fatal_insn_not_found ( const_rtx insn,
const char * file,
int line,
const char * function )
extern
rtl-error.cc  

References _fatal_insn(), and INSN_CODE.

◆ active_insn_p()

◆ add_args_size_note()

void add_args_size_note ( rtx_insn * insn,
poly_int64 value )
extern
Add a REG_ARGS_SIZE note to INSN with value VALUE.   

References add_reg_note(), find_reg_note(), gcc_checking_assert, gen_int_mode(), ggc_alloc(), and NULL_RTX.

Referenced by adjust_stack_1(), emit_call_1(), expand_builtin_trap(), and fixup_args_size_notes().

◆ add_auto_inc_notes()

void add_auto_inc_notes ( rtx_insn * insn,
rtx x )
extern
Process recursively X of INSN and add REG_INC notes if necessary.   

References add_auto_inc_notes(), add_reg_note(), auto_inc_p(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, XEXP, XVECEXP, and XVECLEN.

Referenced by add_auto_inc_notes(), peep2_attempt(), reload(), and update_inc_notes().

◆ add_function_usage_to()

void add_function_usage_to ( rtx call_insn,
rtx call_fusage )
extern
Append CALL_FUSAGE to the CALL_INSN_FUNCTION_USAGE for CALL_INSN.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, gcc_assert, ggc_alloc(), and XEXP.

Referenced by emit_call_1(), and expand_builtin_apply().

◆ add_insn()

void add_insn ( rtx_insn * insn)
extern

◆ add_insn_after()

void add_insn_after ( rtx_insn * insn,
rtx_insn * after,
basic_block bb )
extern
Like add_insn_after_nobb, but try to set BLOCK_FOR_INSN.
If BB is NULL, an attempt is made to infer the bb from before.

This and the next function should be the only functions called
to insert an insn once delay slots have been filled since only
they know how to update a SEQUENCE.  

References add_insn_after_nobb(), BARRIER_P, BB_END, BLOCK_FOR_INSN(), df_insn_rescan(), ggc_alloc(), INSN_P, NOTE_INSN_BASIC_BLOCK_P, and set_block_for_insn().

Referenced by delete_from_delay_slot(), emit_barrier_after(), emit_delay_sequence(), emit_label_after(), emit_note_after(), emit_pattern_after_noloc(), make_return_insns(), and relax_delay_slots().

◆ add_insn_before()

void add_insn_before ( rtx_insn * insn,
rtx_insn * before,
basic_block bb )
extern
Like add_insn_before_nobb, but try to set BLOCK_FOR_INSN.
If BB is NULL, an attempt is made to infer the bb from before.

This and the previous function should be the only functions called
to insert an insn once delay slots have been filled since only
they know how to update a SEQUENCE.  

References add_insn_before_nobb(), BARRIER_P, BB_HEAD, BLOCK_FOR_INSN(), df_insn_rescan(), gcc_assert, ggc_alloc(), INSN_P, NOTE_INSN_BASIC_BLOCK_P, and set_block_for_insn().

Referenced by emit_barrier_before(), emit_label_before(), emit_note_before(), and emit_pattern_before_noloc().

◆ add_int_reg_note()

void add_int_reg_note ( rtx_insn * insn,
enum reg_note kind,
int datum )
extern
Add an integer register note with kind KIND and datum DATUM to INSN.   

References gcc_checking_assert, ggc_alloc(), int_reg_note_p(), and REG_NOTES.

Referenced by add_reg_br_prob_note(), and add_shallow_copy_of_reg_note().

◆ add_reg_note()

◆ add_shallow_copy_of_reg_note()

void add_shallow_copy_of_reg_note ( rtx_insn * insn,
rtx note )
extern
Add a register note like NOTE to INSN.   

References add_int_reg_note(), add_reg_note(), GET_CODE, ggc_alloc(), REG_NOTE_KIND, XEXP, and XINT.

Referenced by distribute_notes().

◆ address_cost()

int address_cost ( rtx x,
machine_mode mode,
addr_space_t as,
bool speed )
extern
Return cost of address expression X.
Expect that X is properly formed address reference.

SPEED parameter specify whether costs optimized for speed or size should
be returned.   

References memory_address_addr_space_p(), and targetm.

Referenced by computation_cost(), create_new_invariant(), force_expr_to_var_cost(), get_address_cost(), get_address_cost_ainc(), preferred_mem_scale_factor(), should_replace_address(), and try_replace_in_use().

◆ alloc_EXPR_LIST()

rtx_expr_list * alloc_EXPR_LIST ( int kind,
rtx val,
rtx next )
extern
This call is used in place of a gen_rtx_EXPR_LIST. If there is a cached
node available, we'll use it, otherwise a call to gen_rtx_EXPR_LIST
is made.   

References gen_rtx_EXPR_LIST(), ggc_alloc(), PUT_REG_NOTE_KIND, r, unused_expr_list, and XEXP.

Referenced by alloc_reg_note(), decl_piece_node(), emit_group_load_into_temps(), emit_group_move_into_temps(), iv_number_of_iterations(), push_reg_equiv_alt_mem(), shorten_into_mode(), and simplify_using_initial_values().

◆ alloc_INSN_LIST()

rtx_insn_list * alloc_INSN_LIST ( rtx val,
rtx next )
extern
This call is used in place of a gen_rtx_INSN_LIST. If there is a cached
node available, we'll use it, otherwise a call to gen_rtx_INSN_LIST
is made.   

References gcc_assert, gen_rtx_INSN_LIST(), GET_CODE, ggc_alloc(), PUT_REG_NOTE_KIND, r, unused_insn_list, and XEXP.

Referenced by alloc_reg_note(), concat_INSN_LIST(), and copy_INSN_LIST().

◆ alloc_reg_note()

rtx alloc_reg_note ( enum reg_note kind,
rtx datum,
rtx list )
extern
Allocate a register note with kind KIND and datum DATUM.  LIST is
stored as the pointer to the next register note.   

References alloc_EXPR_LIST(), alloc_INSN_LIST(), gcc_checking_assert, ggc_alloc(), int_reg_note_p(), and PUT_REG_NOTE_KIND.

Referenced by add_reg_note(), distribute_notes(), duplicate_reg_note(), eliminate_regs_1(), lra_eliminate_regs_1(), move_deaths(), recog_for_combine_1(), and try_combine().

◆ always_void_p()

bool always_void_p ( enum rtx_code code)
inline
Return true if CODE always has VOIDmode.   

References SET.

◆ anti_dependence()

bool anti_dependence ( const_rtx mem,
const_rtx x )
extern
Anti dependence: X is written after read in MEM takes place.   

References ggc_alloc(), NULL_RTX, and write_dependence_p().

Referenced by load_kills_store(), memory_modified_1(), and validate_equiv_mem_from_store().

◆ any_condjump_p()

bool any_condjump_p ( const rtx_insn * insn)
extern

◆ any_uncondjump_p()

bool any_uncondjump_p ( const rtx_insn * insn)
extern
Return true when insn is an unconditional direct jump,
possibly bundled inside a PARALLEL, UNSPEC or UNSPEC_VOLATILE.
The instruction may have various other effects so before removing the jump
you must verify onlyjump_p.   

References find_reg_note(), GET_CODE, ggc_alloc(), NULL_RTX, pc_set(), and SET_SRC.

Referenced by add_test(), emit(), find_dead_or_set_registers(), follow_jumps(), rtl_block_empty_p(), rtl_tidy_fallthru_edge(), rtl_verify_edges(), and try_combine().

◆ asm_noperands()

int asm_noperands ( const_rtx body)
extern

◆ asm_str_count()

int asm_str_count ( const char * templ)
extern
Return the number of machine instructions likely to be generated for the
inline-asm template.  

References count, ggc_alloc(), and IS_ASM_LOGICAL_LINE_SEPARATOR.

Referenced by asm_insn_count(), and estimate_num_insns().

◆ auto_inc_p()

bool auto_inc_p ( const_rtx x)
extern
Return true if X is an autoincrement side effect and the register is
not the stack pointer.   

References GET_CODE, ggc_alloc(), stack_pointer_rtx, and XEXP.

Referenced by add_auto_inc_notes().

◆ avoid_constant_pool_reference()

◆ BLOCK_FOR_INSN()

basic_block & BLOCK_FOR_INSN ( const_rtx insn)
inline

References XBBDEF.

Referenced by _succ_iter_cond(), _succ_iter_start(), add_conflict_from_region_landing_pads(), add_insn_after(), add_insn_allocno_copies(), add_insn_before(), add_with_sets(), attempt_change(), build_insn_chain(), build_store_vectors(), bypass_block(), calculate_equiv_gains(), calculate_spill_cost(), can_delete_call(), can_move_invariant_reg(), can_predict_insn_p(), canon_list_insert(), canonicalize_condition(), cfg_layout_initialize(), check_dependencies(), cleanup_barriers(), combine_and_move_insns(), combine_instructions(), combine_reaching_defs(), compare_candidates(), compute_bb_for_insn(), compute_local_properties(), compute_local_properties(), constprop_register(), create_cands(), create_log_links(), create_new_invariant(), decrease_live_ranges_number(), def_dominates_uses(), delete_dead_insn(), delete_insn(), delete_insn_and_edges(), delete_store(), df_insn_change_bb(), df_insn_debug_regno(), df_insn_delete(), df_insn_rescan(), df_install_ref_incremental(), df_notes_rescan(), df_uses_create(), dump_user_location_t::dump_user_location_t(), eliminate_partially_redundant_load(), emit_insn_after_1(), emit_jump_table_data(), emit_note_after(), emit_note_before(), emit_to_new_bb_before(), equivalent_reg_at_start(), expand_sjlj_dispatch_table(), find_avail_set(), find_basic_block(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_inc(), find_moveable_pseudos(), find_moveable_store(), find_occr_in_bb(), find_rarely_executed_basic_blocks_and_crossing_edges(), find_single_use(), finish_eh_generation(), fix_crossing_unconditional_branches(), flow_find_cross_jump(), free_bb_for_insn(), free_resource_info(), gen_call_used_regs_seq(), get_bb_avail_insn(), get_insn_freq(), get_next_ref(), get_preferred_alternatives(), inherit_in_ebb(), inherit_reload_reg(), init_resource_info(), insert_expr_in_table(), insert_expr_in_table(), insert_set_in_table(), insn_dominated_by_p(), iv_get_reaching_def(), local_cprop_pass(), lra_coalesce(), lra_constraints(), lra_process_new_insns(), lra_split_hard_reg_for(), make_call_insn_raw(), make_debug_insn_raw(), make_insn_raw(), make_jump_insn_raw(), make_label_edge(), make_note_raw(), mark_tablejump_edge(), mark_target_live_regs(), move2add_use_add2_insn(), move2add_use_add3_insn(), move_deaths(), move_freq_compare_func(), multi_block_pseudo_p(), noce_get_alt_condition(), noce_process_if_block(), noce_try_abs(), noce_try_sign_mask(), one_cprop_pass(), pre_delete(), pre_insert_copies(), pre_insert_copy_insn(), print_rtx_function(), process_invariant_for_inheritance(), record_last_mem_set_info_common(), record_reg_classes(), record_store(), reg_dead_at_p(), reload_cse_move2add(), reload_cse_simplify(), reload_cse_simplify_operands(), reload_cse_simplify_set(), remove_inheritance_pseudos(), remove_insn(), remove_reachable_equiv_notes(), reorder_insns(), replace_read(), rtl_verify_bb_insn_chain(), rtl_verify_bb_pointers(), save_call_clobbered_regs(), scan_one_insn(), set_block_for_insn(), set_nonzero_bits_and_sign_copies(), setup_save_areas(), should_replace_address(), spill_for(), split_live_ranges_for_shrink_wrap(), thread_prologue_and_epilogue_insns(), try_back_substitute_reg(), try_combine(), try_crossjump_to_edge(), try_fwprop_subst_pattern(), try_replace_in_use(), try_replace_reg(), update_bb_reg_pressure(), update_cfg_for_uncondjump(), and update_ebb_live_info().

◆ byte_lowpart_offset()

poly_int64 byte_lowpart_offset ( machine_mode outer_mode,
machine_mode inner_mode )
extern
Return the number of bytes between the start of an OUTER_MODE
in-memory value and the start of an INNER_MODE in-memory value,
given that the former is a lowpart of the latter.  It may be a
paradoxical lowpart, in which case the offset will be negative
on big-endian targets.   

References paradoxical_subreg_p(), and subreg_lowpart_offset().

Referenced by adjust_reg_mode(), alter_subreg(), gen_lowpart_for_combine(), gen_lowpart_general(), gen_lowpart_if_possible(), replace_reg_with_saved_mem(), rtl_for_decl_location(), rtx_equal_for_field_assignment_p(), set_reg_attrs_for_decl_rtl(), set_reg_attrs_from_value(), simplify_immed_subreg(), track_loc_p(), var_lowpart(), and vt_add_function_parameter().

◆ can_assign_to_reg_without_clobbers_p()

bool can_assign_to_reg_without_clobbers_p ( rtx x,
machine_mode mode )
extern
Return true if we can assign X to a pseudo register of mode MODE
such that the resulting insn does not result in clobbering a hard
register as a side-effect.

Additionally, if the target requires it, check that the resulting insn
can be copied.  If it cannot, this means that X is special and probably
has hidden side-effects we don't want to mess with.

This function is typically used by code motion passes, to verify
that it is safe to insert an insn without worrying about clobbering
maybe live hard regs.   

References added_clobbers_hard_reg_p(), const0_rtx, gen_rtx_REG(), general_operand(), GET_MODE, ggc_alloc(), INSN_LOCATION(), make_insn_raw(), NULL_RTX, PATTERN(), PUT_MODE(), recog(), SET_DEST, SET_NEXT_INSN(), SET_PREV_INSN(), SET_SRC, targetm, test_insn, UNKNOWN_LOCATION, and word_mode.

Referenced by compute_ld_motion_mems(), find_moveable_store(), and want_to_gcse_p().

◆ can_copy_p()

bool can_copy_p ( machine_mode mode)
extern
In gcse.cc  
Returns whether the mode supports reg/reg copy operations.   

References can_copy, can_copy_init_p, and compute_can_copy().

Referenced by hash_scan_set(), hash_scan_set(), hash_scan_set(), and may_assign_reg_p().

◆ can_nonlocal_goto()

bool can_nonlocal_goto ( const rtx_insn * insn)
extern
Return true if INSN can perform a non-local goto.   
??? This test is here in this file because it (ab)uses REG_EH_REGION.   

References CALL_P, find_reg_note(), ggc_alloc(), INT_MIN, INTVAL, nonlocal_goto_handler_labels, NULL_RTX, and XEXP.

Referenced by control_flow_insn_p(), create_trace_edges(), distribute_notes(), make_edges(), peep2_attempt(), and purge_dead_edges().

◆ can_throw_external()

◆ can_throw_internal()

◆ canon_anti_dependence()

bool canon_anti_dependence ( const_rtx mem,
bool mem_canonicalized,
const_rtx x,
machine_mode x_mode,
rtx x_addr )
extern
Likewise, but we already have a canonicalized MEM, and X_ADDR for X.
Also, consider X in X_MODE (which might be from an enclosing
STRICT_LOW_PART / ZERO_EXTRACT).
If MEM_CANONICALIZED is true, MEM is canonicalized.   

References ggc_alloc(), and write_dependence_p().

Referenced by check_dependence(), and cselib_invalidate_mem().

◆ canon_condition()

rtx canon_condition ( rtx cond)
extern
In loop-iv.cc   
Canonicalizes COND so that

(1) Ensure that operands are ordered according to
    swap_commutative_operands_p.
(2) (LE x const) will be replaced with (LT x <const+1>) and similarly
    for GE, GEU, and LEU.   

References wi::add(), CONST_SCALAR_INT_P, const_val, gcc_assert, GET_CODE, GET_MODE, GET_MODE_CLASS, ggc_alloc(), immed_wide_int_const(), wi::max_value(), wi::min_value(), rtx_iv::mode, wi::ne_p(), SIGNED, wi::sub(), swap_commutative_operands_p(), swap_condition(), and XEXP.

Referenced by simplify_using_condition().

◆ canon_output_dependence()

bool canon_output_dependence ( const_rtx mem,
bool mem_canonicalized,
const_rtx x,
machine_mode x_mode,
rtx x_addr )
extern
Likewise, but we already have a canonicalized MEM, and X_ADDR for X.
Also, consider X in X_MODE (which might be from an enclosing
STRICT_LOW_PART / ZERO_EXTRACT).
If MEM_CANONICALIZED is true, MEM is canonicalized.   

References ggc_alloc(), and write_dependence_p().

Referenced by record_store().

◆ canon_rtx()

rtx canon_rtx ( rtx x)
extern
In read-rtl.cc  
In alias.cc  
Returns a canonical version of X, from the point of view alias
analysis.  (For example, if X is a MEM whose address is a register,
and the register has a known value (say a SYMBOL_REF), then a MEM
whose address is the SYMBOL_REF is returned.)   

References canon_rtx(), GET_CODE, GET_MODE, get_reg_known_value(), ggc_alloc(), MEM_P, REG_P, REGNO, replace_equiv_address_nv(), simplify_gen_binary(), and XEXP.

Referenced by addr_side_effect_eval(), base_alias_check(), canon_address(), canon_list_insert(), canon_rtx(), clobber_overlapping_mems(), compute_transp(), cselib_invalidate_mem(), get_addr_from_global_cache(), get_group_info(), invalidate(), memrefs_conflict_p(), record_store(), rtx_equal_for_memref_p(), true_dependence_1(), vt_canonicalize_addr(), and write_dependence_p().

◆ canon_true_dependence()

bool canon_true_dependence ( const_rtx mem,
machine_mode mem_mode,
rtx mem_addr,
const_rtx x,
rtx x_addr )
extern
Canonical true dependence: X is read after store in MEM takes place.
Variant of true_dependence which assumes MEM has already been
canonicalized (hence we no longer do that here).
The mem_addr argument has been added, since true_dependence_1 computed
this value prior to canonicalizing.   

References ggc_alloc(), and true_dependence_1().

Referenced by check_mem_read_rtx(), compute_transp(), scan_reads(), and vt_canon_true_dep().

◆ canonicalize_condition()

rtx canonicalize_condition ( rtx_insn * insn,
rtx cond,
int reverse,
rtx_insn ** earliest,
rtx want_reg,
int allow_cc_mode,
int valid_at_insn_p )
extern
Given an insn and condition, return a canonical description of
the test being made.   
Given an insn INSN and condition COND, return the condition in a
canonical form to simplify testing by callers.  Specifically:

(1) The code will always be a comparison operation (EQ, NE, GT, etc.).
(2) Both operands will be machine operands.
(3) If an operand is a constant, it will be the second operand.
(4) (LE x const) will be replaced with (LT x <const+1>) and similarly
    for GE, GEU, and LEU.

If the condition cannot be understood, or is an inequality floating-point
comparison which needs to be reversed, 0 will be returned.

If REVERSE is nonzero, then reverse the condition prior to canonizing it.

If EARLIEST is nonzero, it is a pointer to a place where the earliest
insn used in locating the condition was found.  If a replacement test
of the condition is desired, it should be placed in front of that
insn and we will be sure that the inputs are still valid.

If WANT_REG is nonzero, we wish the condition to be relative to that
register, if possible.  Therefore, do not canonicalize the condition
further.  If ALLOW_CC_MODE is nonzero, allow the condition returned
to be a compare to a CC mode register.

If VALID_AT_INSN_P, the condition must be valid at both *EARLIEST
and at INSN.   

References BLOCK_FOR_INSN(), COMPARISON_P, CONST0_RTX, CONST_INT_P, const_val, CONSTANT_P, FIND_REG_INC_NOTE, gen_int_mode(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_MASK, GET_MODE_PRECISION(), GET_RTX_CLASS, ggc_alloc(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_1U, INTVAL, modified_between_p(), modified_in_p(), NONJUMP_INSN_P, NULL_RTX, prev_nonnote_nondebug_insn(), REAL_VALUE_NEGATIVE, REAL_VALUE_TYPE, REG_P, reg_set_p(), reversed_comparison_code(), RTX_COMM_COMPARE, RTX_COMPARE, rtx_equal_p(), SCALAR_FLOAT_MODE_P, SET, SET_DEST, set_of(), SET_SRC, STORE_FLAG_VALUE, swap_condition(), val_signbit_known_set_p(), and XEXP.

Referenced by get_condition(), noce_get_alt_condition(), and noce_get_condition().

◆ check_for_inc_dec()

bool check_for_inc_dec ( rtx_insn * insn)
extern
In dse.cc  
Entry point for postreload.  If you work on reload_cse, or you need this
anywhere else, consider if you can provide register liveness information
and add a parameter to this function so that it can be passed down in
insn_info.fixed_regs_live.   

References emit_inc_dec_insn_before(), find_reg_note(), insn_info_type::fixed_regs_live, for_each_inc_dec(), FOR_EACH_SUBRTX, GET_CODE, GET_RTX_CLASS, ggc_alloc(), insn_info_type::insn, NULL, NULL_RTX, PATTERN(), and RTX_AUTOINC.

Referenced by reload_cse_simplify().

◆ choose_hard_reg_mode()

machine_mode choose_hard_reg_mode ( unsigned int regno,
unsigned int nregs,
const predefined_function_abi * abi )
extern
In reginfo.cc   
Return a machine mode that is legitimate for hard reg REGNO and large
enough to save nregs.  If we can't find one, return VOIDmode.
If ABI is nonnull, only consider modes that are preserved across
calls that use ABI.   

References predefined_function_abi::clobbers_reg_p(), FOR_EACH_MODE_IN_CLASS, GET_MODE_SIZE(), ggc_alloc(), hard_regno_nregs(), maybe_gt, and targetm.

Referenced by default_dwarf_frame_reg_mode(), init_reg_modes_target(), and zcur_select_mode_rtx().

◆ classify_insn()

enum rtx_code classify_insn ( rtx x)
extern
Return an indication of which type of insn should have X as a body.
In generator files, this can be UNKNOWN if the answer is only known
at (GCC) runtime.  Otherwise the value is CODE_LABEL, INSN, CALL_INSN
or JUMP_INSN.   

References ANY_RETURN_P, ASM_OPERANDS_LABEL_LENGTH, GET_CODE, ggc_alloc(), LABEL_P, SET, SET_DEST, SET_SRC, XVECEXP, and XVECLEN.

Referenced by emit(), and get_emit_function().

◆ commutative_operand_precedence()

int commutative_operand_precedence ( rtx op)
extern
Return a value indicating whether OP, an operand of a commutative
operation, is preferred as the first or second operand.  The more
positive the value, the stronger the preference for being the first
operand.   

References avoid_constant_pool_reference(), GET_CODE, GET_RTX_CLASS, ggc_alloc(), MEM_P, MEM_POINTER, OBJECT_P, REG_P, REG_POINTER, RTX_BIN_ARITH, RTX_COMM_ARITH, RTX_CONST_OBJ, RTX_EXTRA, RTX_OBJ, RTX_UNARY, and SUBREG_REG.

Referenced by compare_address_parts(), simplify_plus_minus_op_data_cmp(), swap_commutative_operands_p(), and swap_commutative_operands_with_target().

◆ comparison_dominates_p()

bool comparison_dominates_p ( enum rtx_code code1,
enum rtx_code code2 )
extern
In jump.cc  
Return true if CODE1 is more strict than CODE2, i.e., if the
truth of CODE1 implies the truth of CODE2.   

References ggc_alloc().

Referenced by condition_dominates_p(), fold_rtx(), known_cond(), and thread_jump().

◆ compute_alignments()

◆ computed_jump_p()

bool computed_jump_p ( const rtx_insn * insn)
extern
Return true if INSN is an indirect jump (aka computed jump).

Tablejumps and casesi insns are not considered indirect jumps;
we can recognize them by a (use (label_ref)).   

References computed_jump_p_1(), GET_CODE, ggc_alloc(), i, JUMP_LABEL, JUMP_P, NULL, set_of_data::pat, PATTERN(), pc_rtx, SET, SET_DEST, SET_SRC, XEXP, XVECEXP, and XVECLEN.

Referenced by bypass_conditional_jumps(), create_trace_edges(), default_invalid_within_doloop(), duplicate_computed_gotos(), fix_crossing_unconditional_branches(), make_edges(), patch_jump_insn(), reorder_basic_blocks_simple(), try_crossjump_bb(), and try_head_merge_bb().

◆ concat_INSN_LIST()

rtx_insn_list * concat_INSN_LIST ( rtx_insn_list * copy,
rtx_insn_list * old )
extern
Duplicate the INSN_LIST elements of COPY and prepend them to OLD.   

References alloc_INSN_LIST(), PUT_REG_NOTE_KIND, and REG_NOTE_KIND.

◆ condjump_in_parallel_p()

bool condjump_in_parallel_p ( const rtx_insn * insn)
extern
Return true if INSN is a (possibly) conditional jump inside a
PARALLEL.

Use this function is deprecated, since we need to support combined
branch and compare insns.  Use any_condjump_p instead whenever possible.   

References ANY_RETURN_P, GET_CODE, ggc_alloc(), PATTERN(), pc_rtx, SET, SET_DEST, SET_SRC, XEXP, and XVECEXP.

Referenced by dbr_schedule(), fill_eager_delay_slots(), fill_simple_delay_slots(), get_branch_condition(), get_jump_flags(), relax_delay_slots(), and reload_combine().

◆ condjump_label()

rtx condjump_label ( const rtx_insn * insn)
extern
Return the label of a conditional jump.   

References GET_CODE, ggc_alloc(), NULL_RTX, pc_rtx, pc_set(), SET_SRC, and XEXP.

◆ condjump_p()

bool condjump_p ( const rtx_insn * insn)
extern
Return true if INSN is a (possibly) conditional jump
and nothing more.

Use of this function is deprecated, since we need to support combined
branch and compare insns.  Use any_condjump_p instead whenever possible.   

References ANY_RETURN_P, GET_CODE, ggc_alloc(), PATTERN(), SET, SET_DEST, SET_SRC, and XEXP.

Referenced by cse_insn(), dbr_schedule(), fill_eager_delay_slots(), fill_simple_delay_slots(), get_jump_flags(), relax_delay_slots(), reload_combine(), and rtl_verify_bb_layout().

◆ const_poly_int_value()

wi::rtx_to_poly_wide_ref const_poly_int_value ( const_rtx x)
inline

◆ const_vec_duplicate_p() [1/2]

bool const_vec_duplicate_p ( const_rtx x)
inline
Return true if X is a vector constant with a duplicated element value.   

References CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_NPATTERNS, GET_CODE, and ggc_alloc().

Referenced by const_vec_duplicate_p(), cse_insn(), unwrap_const_vec_duplicate(), and vec_duplicate_p().

◆ const_vec_duplicate_p() [2/2]

template<typename T >
bool const_vec_duplicate_p ( T x,
T * elt )
inline
Return true if X is a vector constant with a duplicated element value.
Store the duplicated element in *ELT if so.   

References const_vec_duplicate_p(), and CONST_VECTOR_ENCODED_ELT.

◆ const_vec_series_p()

bool const_vec_series_p ( const_rtx x,
rtx * base_out,
rtx * step_out )
inline
Return true if X is an integer constant vector that contains a linear
series of the form:

{ B, B + S, B + 2 * S, B + 3 * S, ... }

for a nonzero S.  Store B and S in *BASE_OUT and *STEP_OUT on sucess.   

References const_vec_series_p_1(), CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_NPATTERNS, GET_CODE, and ggc_alloc().

Referenced by vec_series_p().

◆ const_vec_series_p_1()

bool const_vec_series_p_1 ( const_rtx x,
rtx * base_out,
rtx * step_out )
extern
A subroutine of const_vec_series_p that handles the case in which:

  (GET_CODE (X) == CONST_VECTOR
   && CONST_VECTOR_NPATTERNS (X) == 1
   && !CONST_VECTOR_DUPLICATE_P (X))

is known to hold.   

References CONST0_RTX, CONST_VECTOR_ELT, CONST_VECTOR_ENCODED_ELT, CONST_VECTOR_NUNITS, CONST_VECTOR_STEPPED_P, GET_MODE, GET_MODE_CLASS, GET_MODE_INNER, ggc_alloc(), rtx_equal_p(), and simplify_binary_operation().

Referenced by const_vec_series_p().

◆ const_vector_elt()

◆ const_vector_encoded_nelts()

unsigned int const_vector_encoded_nelts ( const_rtx x)
inline
Return the number of elements encoded directly in a CONST_VECTOR.   

References CONST_VECTOR_NELTS_PER_PATTERN, and CONST_VECTOR_NPATTERNS.

Referenced by const_vector_elt(), const_vector_int_elt(), cselib_hash_rtx(), find_sets_in_insn(), and hash_rtx().

◆ const_vector_int_elt()

wide_int const_vector_int_elt ( const_rtx x,
unsigned int i )
extern
In emit-rtl.cc.   
Return the value of element I of CONST_VECTOR X as a wide_int.   

References wi::add(), CONST_VECTOR_ENCODED_ELT, const_vector_encoded_nelts(), CONST_VECTOR_NPATTERNS, CONST_VECTOR_STEPPED_P, count, GET_MODE, GET_MODE_INNER, ggc_alloc(), i, wi::sub(), and XVECLEN.

Referenced by const_vector_elt().

◆ constant_pool_constant_p()

bool constant_pool_constant_p ( rtx x)
extern
Check whether this is a constant pool constant.   

References avoid_constant_pool_reference(), and CONST_DOUBLE_P.

Referenced by get_inv_cost().

◆ contains_constant_pool_address_p()

bool contains_constant_pool_address_p ( const_rtx x)
extern
Return true if RTL X contains a constant pool address.   

References CONSTANT_POOL_ADDRESS_P, FOR_EACH_SUBRTX, and SYMBOL_REF_P.

◆ contains_mem_rtx_p()

bool contains_mem_rtx_p ( rtx x)
extern
Return true if X contains a MEM subrtx.   

References FOR_EACH_SUBRTX, and MEM_P.

Referenced by bb_valid_for_noce_process_p(), prune_expressions(), and try_fwprop_subst_pattern().

◆ contains_symbol_ref_p()

bool contains_symbol_ref_p ( const_rtx x)
extern
Return true if RTL X contains a SYMBOL_REF.   

References FOR_EACH_SUBRTX, and SYMBOL_REF_P.

Referenced by lra_constraints(), scan_one_insn(), and track_expr_p().

◆ contains_symbolic_reference_p()

bool contains_symbolic_reference_p ( const_rtx x)
extern
Return true if RTL X contains a SYMBOL_REF or LABEL_REF.   

References FOR_EACH_SUBRTX, GET_CODE, ggc_alloc(), and SYMBOL_REF_P.

Referenced by simplify_context::simplify_binary_operation_1().

◆ convert_memory_address_addr_space()

rtx convert_memory_address_addr_space ( scalar_int_mode to_mode,
rtx x,
addr_space_t as )
extern
Given X, a memory address in address space AS' pointer mode, convert it to
an address in the address space's address mode, or vice versa (TO_MODE says
which way).  We take advantage of the fact that pointers are not allowed to
overflow by commuting arithmetic operations over conversions so that address
arithmetic insns can be used.   

References convert_memory_address_addr_space_1(), and ggc_alloc().

Referenced by expand_assignment(), expand_expr_addr_expr(), expand_expr_addr_expr_1(), make_tree(), and memory_address_addr_space().

◆ convert_memory_address_addr_space_1()

rtx convert_memory_address_addr_space_1 ( scalar_int_mode to_mode,
rtx x,
addr_space_t as,
bool in_const,
bool no_emit )
extern
Given X, a memory address in address space AS' pointer mode, convert it to
an address in the address space's address mode, or vice versa (TO_MODE says
which way).  We take advantage of the fact that pointers are not allowed to
overflow by commuting arithmetic operations over conversions so that address
arithmetic insns can be used. IN_CONST is true if this conversion is inside
a CONST. NO_EMIT is true if no insns should be emitted, and instead
it should return NULL if it can't be simplified without emitting insns.   

References CASE_CONST_SCALAR_INT, CONST_INT_P, convert_memory_address_addr_space_1(), convert_modes(), gcc_assert, gen_rtvec(), GET_CODE, get_last_insn(), GET_MODE, GET_MODE_SIZE(), ggc_alloc(), i, label_ref_label(), LABEL_REF_NONLOCAL_P, last, NULL_RTX, PUT_MODE(), REG_POINTER, RTVEC_ELT, shallow_copy_rtx(), simplify_unary_operation(), SUBREG_PROMOTED_VAR_P, SUBREG_REG, targetm, XEXP, XINT, XVECEXP, and XVECLEN.

Referenced by convert_memory_address_addr_space(), convert_memory_address_addr_space_1(), and simplify_context::simplify_unary_operation_1().

◆ copy_INSN_LIST()

rtx_insn_list * copy_INSN_LIST ( rtx_insn_list * link)
extern
Make a copy of the INSN_LIST list LINK and return it.   

References alloc_INSN_LIST(), ggc_alloc(), link::next, NULL, and XEXP.

◆ copy_reg_eh_region_note_backward()

void copy_reg_eh_region_note_backward ( rtx note_or_insn,
rtx_insn * last,
rtx first )
extern
Likewise, but iterate backward.   

References add_reg_note(), find_reg_note(), ggc_alloc(), insn_could_throw_p(), INSN_P, last, NULL, NULL_RTX, PREV_INSN(), and XEXP.

Referenced by peep2_attempt(), and try_split().

◆ copy_reg_eh_region_note_forward()

void copy_reg_eh_region_note_forward ( rtx note_or_insn,
rtx_insn * first,
rtx last )
extern
Copy an REG_EH_REGION note to each insn that might throw beginning
at FIRST and ending at LAST.  NOTE_OR_INSN is either the source insn
to look for a note, or the note itself.   

References add_reg_note(), find_reg_note(), ggc_alloc(), insn_could_throw_p(), INSN_P, last, NEXT_INSN(), NULL, NULL_RTX, and XEXP.

Referenced by emit_input_reload_insns(), emit_output_reload_insns(), fixup_eh_region_note(), lra_process_new_insns(), and resolve_simple_move().

◆ copy_rtx()

rtx copy_rtx ( rtx orig)
extern
Create a new copy of an rtx.
Recursively copies the operands of the rtx,
except for those few rtx codes that are sharable.   

References CASE_CONST_ANY, copy_rtx(), gcc_unreachable, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, NULL, ORIGINAL_REGNO, REG_P, REGNO, rtvec_alloc(), RTX_CODE, shallow_copy_rtx(), shared_const_p(), XEXP, XVEC, XVECEXP, and XVECLEN.

Referenced by add_equal_note(), add_store_equivs(), adjust_address_1(), adjust_cleared_regs(), analyze_insn_to_expand_var(), insn_propagation::apply_to_rvalue_1(), assign_parm_adjust_entry_rtl(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), canon_reg_for_combine(), combine_instructions(), combine_simplify_rtx(), combine_var_copies_in_loop_exit(), cond_exec_process_insns(), confirm_change_group(), copy_delay_slot_insn(), copy_rtx(), cprop_jump(), cse_insn(), cse_process_note_1(), curr_insn_transform(), doloop_modify(), doloop_optimize(), eliminate_partially_redundant_load(), eliminate_regs_1(), emit_libcall_block_1(), emit_library_call_value_1(), emit_move_insn(), expand_absneg_bit(), expand_binop(), expand_debug_expr(), expand_debug_parm_decl(), expand_DIVMOD(), expand_expr_real_1(), expand_expr_real_2(), expand_field_assignment(), expand_fix(), expand_operands(), find_cond_trap(), find_reloads_address(), find_shift_sequence(), fold_rtx(), force_const_mem(), forward_propagate_and_simplify(), get_arg_pointer_save_area(), get_last_value(), get_secondary_mem(), get_stored_val(), if_then_else_cond(), inherit_in_ebb(), init_eliminable_invariants(), insert_base_initialization(), insert_part_to_rtx_on_edge(), insert_partition_copy_on_edge(), insert_restore(), insert_rtx_to_part_on_edge(), insert_save(), insert_set_in_table(), insert_store(), insert_temp_slot_address(), insert_value_copy_on_edge(), instantiate_virtual_regs_in_insn(), inv_can_prop_to_addr_use(), ira_update_equiv_info_by_shuffle_insn(), iv_number_of_iterations(), load_register_parameters(), lra_constraints(), lra_copy_reg_equiv(), lra_init_equiv(), make_memloc(), match_asm_constraints_1(), match_reload(), maybe_legitimize_operands(), noce_bbs_ok_for_cond_zero_arith(), noce_convert_multiple_sets_1(), noce_emit_all_but_last(), noce_try_cmove_arith(), plus_constant(), process_addr_reg(), process_address_1(), process_insert_insn(), process_one_cond_exec(), process_rtx(), process_substs_on_one_elem(), propagate_for_debug_subst(), record_value_for_reg(), remove_pseudos(), replace_label(), replace_reg_with_saved_mem(), resolve_debug(), resolve_operand_for_swap_move_operator(), resolve_shift_zext(), resolve_simple_move(), save_call_clobbered_regs(), simplify_context::simplify_binary_operation_1(), simplify_if_then_else(), simplify_context::simplify_relational_operation_1(), simplify_replace_fn_rtx(), split_insn(), split_iv(), store_constructor(), store_constructor_field(), store_field(), store_fixed_bit_field_1(), store_one_arg(), subst(), subst_dup(), try_apply_stack_adjustment(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_merge_compare(), try_replace_reg(), unroll_loop_runtime_iterations(), update_equiv_regs(), and update_ld_motion_stores().

◆ copy_rtx_if_shared()

rtx copy_rtx_if_shared ( rtx orig)
extern
In emit-rtl.cc  
Mark ORIG as in use, and return a copy of it if it was already in use.
Recursively does the same for subexpressions.  Uses
copy_rtx_if_shared_1 to reduce stack space.   

References copy_rtx_if_shared_1().

Referenced by emit_notes_in_bb(), try_combine(), unshare_all_rtl(), unshare_all_rtl_1(), and unshare_all_rtl_in_chain().

◆ costs_add_n_insns()

void costs_add_n_insns ( struct full_rtx_costs * c,
int n )
inline
Increase both members of the full_rtx_costs structure C by the
cost of N insns.   

References COSTS_N_INSNS, full_rtx_costs::size, and full_rtx_costs::speed.

Referenced by reload_cse_move2add().

◆ costs_lt_p()

bool costs_lt_p ( struct full_rtx_costs * a,
struct full_rtx_costs * b,
bool speed )
inline
Compare two full_rtx_costs structures A and B, returning true
if A < B when optimizing for speed.   

References a, and b.

Referenced by move2add_use_add2_insn(), move2add_use_add3_insn(), and reload_cse_move2add().

◆ count_occurrences()

int count_occurrences ( const_rtx x,
const_rtx find,
int count_dest )
extern
Return the number of places FIND appears within X.  If COUNT_DEST is
zero, we do not count occurrences inside the destination of a SET.   

References CASE_CONST_ANY, count, count_occurrences(), find(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_P, rtx_equal_p(), SET, SET_DEST, SET_SRC, XEXP, XVECEXP, and XVECLEN.

Referenced by count_occurrences(), delete_output_reload(), emit_input_reload_insns(), find_inc(), record_value_for_reg(), and reload_as_needed().

◆ curr_insn_location()

◆ cwi_output_hex()

void cwi_output_hex ( FILE * outfile,
const_rtx x )
extern
Write the wide constant X to OUTFILE.   

References CWI_ELT, CWI_GET_NUM_ELEM, gcc_assert, ggc_alloc(), HOST_WIDE_INT_PRINT_HEX, HOST_WIDE_INT_PRINT_PADDED_HEX, and i.

Referenced by rtx_writer::print_rtx().

◆ dead_or_set_p()

bool dead_or_set_p ( const rtx_insn * insn,
const_rtx x )
extern
Return true if X's old contents don't survive after INSN.
This will be true if X is a register and X dies in INSN or because
INSN entirely sets X.

"Entirely set" means set directly and not through a SUBREG, or
ZERO_EXTRACT, so no trace of the old contents remains.
Likewise, REG_INC does not count.

REG may be a hard or pseudo reg.  Renumbering is not taken into account,
but for this use that makes no difference, since regs don't overlap
during their lifetimes.  Therefore, this function may be used
at any time after deaths have been computed.

If REG is a hard reg that occupies multiple machine registers, this
function will only return true if each of those registers will be replaced
by INSN.   

References dead_or_set_regno_p(), END_REGNO(), gcc_assert, i, REG_P, and REGNO.

Referenced by decrease_live_ranges_number(), distribute_notes(), do_input_reload(), emit_input_reload_insns(), find_single_use(), set_nonzero_bits_and_sign_copies(), and try_combine().

◆ dead_or_set_regno_p()

bool dead_or_set_regno_p ( const rtx_insn * insn,
unsigned int test_regno )
extern
Utility function for dead_or_set_p to check an individual register.  

References CALL_P, COND_EXEC_CODE, covers_regno_p(), find_regno_fusage(), find_regno_note(), GET_CODE, ggc_alloc(), i, PATTERN(), SET, SET_DEST, XVECEXP, and XVECLEN.

Referenced by dead_or_set_p(), distribute_notes(), and move_deaths().

◆ debug() [1/2]

void debug ( const rtx_def & ref)
extern
Dump rtx REF.   

References debug_rtx().

◆ debug() [2/2]

void debug ( const rtx_def * ptr)
extern

References debug, and ggc_alloc().

◆ debug_rtx()

void debug_rtx ( const_rtx x)
extern
Call this function from the debugger to see what X looks like.   

References ggc_alloc(), and NULL.

Referenced by _fatal_insn(), debug(), debug_df_insn(), debug_dv(), debug_rtx_list(), debug_rtx_range(), make_insn_raw(), rtl_verify_fallthru(), and verify_rtx_sharing().

◆ debug_rtx_find()

const rtx_insn * debug_rtx_find ( const rtx_insn * x,
int uid )
extern
Call this function to search an rtx_insn list to find one with insn uid UID,
and then call debug_rtx_list to print it, using DEBUG_RTX_COUNT.
The found insn is returned to enable further debugging analysis.   

References debug_rtx_count, debug_rtx_list(), ggc_alloc(), INSN_UID(), and NEXT_INSN().

◆ debug_rtx_list()

void debug_rtx_list ( const rtx_insn * x,
int n )
extern
Call this function to print list from X on.

N is a count of the rtx's to print. Positive values print from the specified
rtx_insn on.  Negative values print a window around the rtx_insn.
EG: -5 prints 2 rtx_insn's on either side (in addition to the specified
rtx_insn).   

References count, debug_rtx(), ggc_alloc(), i, NEXT_INSN(), and PREV_INSN().

Referenced by debug_rtx_find().

◆ debug_rtx_range()

void debug_rtx_range ( const rtx_insn * start,
const rtx_insn * end )
extern
Call this function to print an rtx_insn list from START to END
inclusive.   

References debug_rtx(), end(), ggc_alloc(), and NEXT_INSN().

◆ decide_function_section()

void decide_function_section ( tree decl)
extern
If not using flag_reorder_blocks_and_partition, decide early whether the
current function goes into the cold section, so that targets can use
current_function_section during RTL expansion.  DECL describes the
function.   

References current_function_decl, DECL_SECTION_NAME, first_function_block_is_cold, cgraph_node::frequency, cgraph_node::get(), in_cold_section_p, and NODE_FREQUENCY_UNLIKELY_EXECUTED.

Referenced by init_function_start().

◆ decode_asm_operands()

const char * decode_asm_operands ( rtx body,
rtx * operands,
rtx ** operand_locs,
const char ** constraints,
machine_mode * modes,
location_t * loc )
extern
Assuming BODY is an insn body that uses ASM_OPERANDS,
copy its operands (both input and output) into the vector OPERANDS,
the locations of the operands within the insn into the vector OPERAND_LOCS,
and the constraints for the operands into CONSTRAINTS.
Write the modes of the operands into MODES.
Write the location info into LOC.
Return the assembler-template.
If BODY is an insn body that uses ASM_INPUT with CLOBBERS in PARALLEL,
return the basic assembly string.

If LOC, MODES, OPERAND_LOCS, CONSTRAINTS or OPERANDS is 0,
we don't store that info.   

References ASM_INPUT_SOURCE_LOCATION, ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_CONSTRAINT, ASM_OPERANDS_INPUT_LENGTH, ASM_OPERANDS_INPUT_MODE, ASM_OPERANDS_LABEL, ASM_OPERANDS_LABEL_LENGTH, ASM_OPERANDS_OUTPUT_CONSTRAINT, ASM_OPERANDS_SOURCE_LOCATION, ASM_OPERANDS_TEMPLATE, constraints, gcc_assert, gcc_unreachable, GET_CODE, GET_MODE, ggc_alloc(), i, modes, SET, SET_DEST, SET_SRC, XSTR, XVECEXP, and XVECLEN.

Referenced by asm_insn_count(), check_asm_operands(), extract_insn(), final_scan_insn_1(), lra_set_insn_recog_data(), lra_update_insn_recog_data(), and maybe_fix_stack_asms().

◆ decompose_address()

void decompose_address ( struct address_info * info,
rtx * loc,
machine_mode mode,
addr_space_t as,
enum rtx_code outer_code )
extern
Describe address *LOC in *INFO.  MODE is the mode of the addressed value,
or VOIDmode if not known.  AS is the address space associated with LOC.
OUTER_CODE is MEM if *LOC is a MEM address and ADDRESS otherwise.   

References decompose_automod_address(), decompose_incdec_address(), decompose_normal_address(), GET_CODE, ggc_alloc(), and strip_address_mutations().

Referenced by decompose_lea_address(), decompose_mem_address(), and update_address().

◆ decompose_lea_address()

void decompose_lea_address ( struct address_info * info,
rtx * loc )
extern
Describe address operand LOC in INFO.   

References ADDR_SPACE_GENERIC, decompose_address(), and ggc_alloc().

Referenced by process_address_1(), and satisfies_address_constraint_p().

◆ decompose_mem_address()

void decompose_mem_address ( struct address_info * info,
rtx x )
extern
Describe the address of MEM X in INFO.   

References decompose_address(), gcc_assert, GET_MODE, ggc_alloc(), MEM_ADDR_SPACE, MEM_P, and XEXP.

Referenced by process_address_1(), and satisfies_memory_constraint_p().

◆ delegitimize_mem_from_attrs()

rtx delegitimize_mem_from_attrs ( rtx x)
extern
Simplify a MEM based on its attributes.  This is the default
delegitimize_address target hook, and it's recommended that every
overrider call it.   

References adjust_address_nv, DECL_RTL, DECL_RTL_SET_P, DECL_THREAD_LOCAL_P, get_inner_reference(), GET_MODE, GET_MODE_BITSIZE(), ggc_alloc(), known_eq, MEM_EXPR, MEM_OFFSET, MEM_OFFSET_KNOWN_P, MEM_P, NULL, offset, poly_int_tree_p(), rtx_equal_p(), strip_offset(), TREE_CODE, TREE_STATIC, VAR_P, and XEXP.

◆ delete_for_peephole()

void delete_for_peephole ( rtx_insn * from,
rtx_insn * to )
extern
Delete a range of insns from FROM to TO, inclusive.
This is for the sake of peephole optimization, so assume
that whatever these insns do will still be done by a new
peephole insn that will replace them.   

References NEXT_INSN(), NOTE_P, PREV_INSN(), rtx_insn::set_deleted(), SET_NEXT_INSN(), and SET_PREV_INSN().

◆ delete_insns_since()

◆ delete_related_insns()

rtx_insn * delete_related_insns ( rtx uncast_insn)
extern
In jump.cc  
Delete insn INSN from the chain of insns and update label ref counts
and delete insns now unreachable.

Returns the first insn after INSN that was not deleted.

Usage of this instruction is deprecated.  Use delete_insn instead and
subsequent cfg_cleanup pass to delete unreachable code if needed.   

References BARRIER_P, delete_insn(), delete_related_insns(), rtx_insn::deleted(), GET_CODE, GET_NUM_ELEM, ggc_alloc(), i, INSN_P, JUMP_LABEL, JUMP_TABLE_DATA_P, jump_to_label_p(), LABEL_NUSES, LABEL_P, NEXT_INSN(), NOTE_P, NULL, PATTERN(), PREV_INSN(), REG_NOTE_KIND, REG_NOTES, RTVEC_ELT, table, tablejump_p(), and XEXP.

Referenced by dbr_schedule(), delete_address_reloads(), delete_computation(), delete_from_delay_slot(), delete_related_insns(), delete_scheduled_jump(), fill_simple_delay_slots(), fill_slots_from_thread(), make_return_insns(), optimize_skip(), redirect_jump_2(), relax_delay_slots(), and try_merge_delay_insns().

◆ delete_trivially_dead_insns()

int delete_trivially_dead_insns ( rtx_insn * insns,
int nreg )
extern
In cse.cc  
Scan all the insns and delete any that are dead; i.e., they store a register
that is never used or they copy a register to itself.

This is used to remove insns made obviously dead by cse, loop or other
optimizations.  It improves the heuristics in loop since it won't try to
move dead invariants out of loops or make givs for dead quantities.  The
remaining passes of the compilation are also sped up.   

References asm_noperands(), count_reg_usage(), count_stores(), cse_cfg_altered, dbg_cnt(), DEBUG_BIND_INSN_P, DEBUG_EXPR_TREE_DECL, DEBUG_INSN_P, DEBUG_MARKER_INSN_P, delete_insn_and_edges(), df_insn_rescan(), dump_file, emit_debug_insn_before(), free(), gen_rtx_UNKNOWN_VAR_LOC, gen_rtx_VAR_LOCATION(), get_last_insn(), GET_MODE, ggc_alloc(), insn_live_p(), INSN_P, INSN_VAR_LOCATION_DECL, INSN_VAR_LOCATION_LOC, insns, is_dead_debug_insn(), is_dead_reg(), make_debug_expr_from_rtl(), MAY_HAVE_DEBUG_BIND_INSNS, NEXT_INSN(), note_stores(), NULL, NULL_RTX, PATTERN(), pic_offset_table_rtx, PREV_INSN(), REGNO, reload_completed, replace_dead_reg(), replacements, SET_DEST, SET_SRC, side_effects_p(), simplify_replace_fn_rtx(), single_set(), timevar_pop(), timevar_push(), TREE_VISITED, and VAR_INIT_STATUS_INITIALIZED.

Referenced by cleanup_cfg(), fwprop_done(), ira(), rest_of_handle_cse2(), and rest_of_handle_cse_after_global_opts().

◆ delete_vta_debug_insns()

void delete_vta_debug_insns ( bool use_cfg)
extern
Remove from the insn stream all debug insns used for variable
tracking at assignments.  USE_CFG should be false if the cfg is no
longer usable.   

References cfun, DEBUG_INSN_P, delete_vta_debug_insn(), FOR_BB_INSNS_SAFE, FOR_EACH_BB_FN, get_insns(), ggc_alloc(), MAY_HAVE_DEBUG_INSNS, and NEXT_INSN().

Referenced by rest_of_handle_final(), variable_tracking_main_1(), and vt_debug_insns_local().

◆ dump_rtx_statistics()

◆ duplicate_reg_note()

rtx duplicate_reg_note ( rtx note)
extern
Duplicate NOTE and return the copy.   

References alloc_reg_note(), copy_insn_1(), GET_CODE, ggc_alloc(), NULL_RTX, REG_NOTE_KIND, XEXP, and XINT.

Referenced by emit_copy_of_insn_after().

◆ eh_returnjump_p()

bool eh_returnjump_p ( rtx_insn * insn)
extern
Return true if INSN is a (possibly conditional) return insn.   

References FOR_EACH_SUBRTX, GET_CODE, ggc_alloc(), JUMP_P, and PATTERN().

Referenced by thread_prologue_and_epilogue_insns().

◆ emit()

rtx_insn * emit ( rtx x,
bool allow_barrier_p )
extern
Emit the rtl pattern X as an appropriate kind of insn.  Also emit a
following barrier if the instruction needs one and if ALLOW_BARRIER_P
is true.

If X is a label, it is simply added into the insn chain.   

References any_uncondjump_p(), classify_insn(), emit_barrier(), emit_call_insn(), emit_debug_insn(), emit_insn(), emit_jump_insn(), emit_label(), gcc_unreachable, GET_CODE, and ggc_alloc().

Referenced by ensure_regno(), and gen_reg_rtx().

◆ emit_barrier()

◆ emit_barrier_after()

◆ emit_barrier_before()

rtx_barrier * emit_barrier_before ( rtx_insn * before)
extern
Make an insn of code BARRIER
and output it before the insn BEFORE.   

References add_insn_before(), cur_insn_uid, ggc_alloc(), INSN_UID(), NULL, and rtx_alloc().

◆ emit_call_insn()

rtx_insn * emit_call_insn ( rtx x)
extern
Make an insn of code CALL_INSN with pattern X
and add it to the end of the doubly-linked list.   

References add_insn(), emit_insn(), gcc_unreachable, GET_CODE, ggc_alloc(), and make_call_insn_raw().

Referenced by emit().

◆ emit_call_insn_after()

rtx_insn * emit_call_insn_after ( rtx pattern,
rtx_insn * after )
extern
Like emit_call_insn_after_noloc, but set INSN_LOCATION according to AFTER.   

References emit_pattern_after(), ggc_alloc(), and make_call_insn_raw().

Referenced by emit_copy_of_insn_after().

◆ emit_call_insn_after_noloc()

rtx_insn * emit_call_insn_after_noloc ( rtx x,
rtx_insn * after )
extern
Make an instruction with body X and code CALL_INSN
and output it after the instruction AFTER.   

References emit_pattern_after_noloc(), ggc_alloc(), make_call_insn_raw(), and NULL.

◆ emit_call_insn_after_setloc()

rtx_insn * emit_call_insn_after_setloc ( rtx pattern,
rtx_insn * after,
location_t loc )
extern
Like emit_call_insn_after_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_after_setloc(), ggc_alloc(), and make_call_insn_raw().

◆ emit_call_insn_before()

rtx_insn * emit_call_insn_before ( rtx pattern,
rtx_insn * before )
extern
Like emit_call_insn_before_noloc,
but set insn_location according to BEFORE.   

References emit_pattern_before(), ggc_alloc(), and make_call_insn_raw().

◆ emit_call_insn_before_noloc()

rtx_insn * emit_call_insn_before_noloc ( rtx x,
rtx_insn * before )
extern
Make an instruction with body X and code CALL_INSN
and output it before the instruction BEFORE.   

References emit_pattern_before_noloc(), ggc_alloc(), make_call_insn_raw(), and NULL.

◆ emit_call_insn_before_setloc()

rtx_insn * emit_call_insn_before_setloc ( rtx pattern,
rtx_insn * before,
location_t loc )
extern
Like emit_insn_before_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_before_setloc(), ggc_alloc(), and make_call_insn_raw().

◆ emit_clobber()

◆ emit_debug_insn()

rtx_insn * emit_debug_insn ( rtx x)
extern
Make an insn of code DEBUG_INSN with pattern X
and add it to the end of the doubly-linked list.   

References add_insn(), gcc_unreachable, GET_CODE, get_last_insn(), ggc_alloc(), last, make_debug_insn_raw(), sequence_stack::next, NEXT_INSN(), and NULL_RTX.

Referenced by emit(), and expand_gimple_basic_block().

◆ emit_debug_insn_after()

rtx_insn * emit_debug_insn_after ( rtx pattern,
rtx_insn * after )
extern
Like emit_debug_insn_after_noloc, but set INSN_LOCATION according to AFTER.   

References emit_pattern_after(), ggc_alloc(), and make_debug_insn_raw().

Referenced by dead_debug_insert_temp(), and emit_copy_of_insn_after().

◆ emit_debug_insn_after_noloc()

rtx_insn * emit_debug_insn_after_noloc ( rtx x,
rtx_insn * after )
extern
Make an instruction with body X and code CALL_INSN
and output it after the instruction AFTER.   

References emit_pattern_after_noloc(), ggc_alloc(), make_debug_insn_raw(), and NULL.

◆ emit_debug_insn_after_setloc()

rtx_insn * emit_debug_insn_after_setloc ( rtx pattern,
rtx_insn * after,
location_t loc )
extern
Like emit_debug_insn_after_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_after_setloc(), ggc_alloc(), and make_debug_insn_raw().

◆ emit_debug_insn_before()

rtx_insn * emit_debug_insn_before ( rtx pattern,
rtx_insn * before )
extern
Like emit_debug_insn_before_noloc,
but set insn_location according to BEFORE.   

References emit_pattern_before(), ggc_alloc(), and make_debug_insn_raw().

Referenced by avoid_complex_debug_insns(), dead_debug_insert_temp(), dead_debug_promote_uses(), delete_trivially_dead_insns(), and propagate_for_debug_subst().

◆ emit_debug_insn_before_noloc()

rtx_insn * emit_debug_insn_before_noloc ( rtx x,
rtx_insn * before )
extern
Make an instruction with body X and code DEBUG_INSN
and output it before the instruction BEFORE.   

References emit_pattern_before_noloc(), ggc_alloc(), make_debug_insn_raw(), and NULL.

◆ emit_debug_insn_before_setloc()

rtx_insn * emit_debug_insn_before_setloc ( rtx pattern,
rtx_insn * before,
location_t loc )
extern
Like emit_insn_before_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_before_setloc(), ggc_alloc(), and make_debug_insn_raw().

◆ emit_insn()

rtx_insn * emit_insn ( rtx x)
extern
Take X and emit it at the end of the doubly-linked
INSN list.

Returns the last insn emitted.   

References add_insn(), gcc_unreachable, GET_CODE, get_last_insn(), ggc_alloc(), last, make_insn_raw(), sequence_stack::next, NEXT_INSN(), and NULL_RTX.

Referenced by allocate_dynamic_stack_space(), anti_adjust_stack_and_probe_stack_clash(), asan_clear_shadow(), assign_parm_setup_reg(), assign_parms(), base_to_reg(), check_and_process_move(), compute_can_copy(), convert_mode_scalar(), curr_insn_transform(), default_speculation_safe_value(), do_compare_and_jump(), do_remat(), emit(), emit_add2_insn(), emit_add3_insn(), address_reload_context::emit_autoinc(), emit_call_1(), emit_call_insn(), emit_clobber(), emit_delay_sequence(), emit_inc_dec_insn_before(), emit_input_reload_insns(), emit_insn_if_valid_for_reload_1(), emit_move_ccmode(), emit_move_insn_1(), emit_move_list(), emit_move_multi_word(), emit_move_via_integer(), emit_output_reload_insns(), emit_stack_probe(), emit_stack_restore(), emit_stack_save(), emit_use(), expand_absneg_bit(), expand_asm_loc(), expand_asm_memory_blockage(), expand_asm_reg_clobber_mem_blockage(), expand_asm_stmt(), expand_atomic_fetch_op(), expand_binop(), expand_binop_directly(), expand_builtin_apply(), expand_builtin_feclear_feraise_except(), expand_builtin_fegetround(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_longjmp(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_nonlocal_goto(), expand_builtin_prefetch(), expand_builtin_return(), expand_builtin_setjmp_receiver(), expand_builtin_setjmp_setup(), expand_builtin_trap(), expand_call(), expand_ccmp_expr(), expand_clrsb_using_clz(), expand_compare_and_swap_loop(), expand_cond_expr_using_cmove(), expand_copysign_bit(), expand_ctz(), expand_DIVMOD(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_popcount(), expand_dw2_landing_pad_for_region(), expand_eh_return(), expand_expr_divmod(), expand_expr_real_1(), expand_expr_real_2(), expand_ffs(), expand_function_end(), expand_GOACC_DIM_POS(), expand_GOACC_DIM_SIZE(), expand_GOMP_SIMT_LANE(), expand_mem_thread_fence(), expand_memory_blockage(), expand_POPCOUNT(), expand_sdiv_pow2(), expand_UNIQUE(), expand_unop(), expand_unop_direct(), expand_vector_broadcast(), expmed_mult_highpart_optab(), find_shift_sequence(), gen_cond_trap(), gen_reload(), gen_reload_chain_without_interm_reg_p(), move_by_pieces_d::generate(), store_by_pieces_d::generate(), inc_for_reload(), pieces_addr::increment_address(), inline_string_cmp(), insert_insn_on_edge(), insert_move_for_subreg(), ira(), lra_emit_move(), lra_process_new_insns(), make_prologue_seq(), make_split_prologue_seq(), match_reload(), maybe_emit_unop_insn(), maybe_expand_insn(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), move_block_from_reg(), move_block_to_reg(), noce_convert_multiple_sets_1(), noce_emit_all_but_last(), noce_emit_cmove(), noce_emit_insn(), noce_emit_move_insn(), noce_emit_store_flag(), prepare_call_address(), prepare_cmp_insn(), prepare_copy_insn(), prepend_insn_to_edge(), probe_stack_range(), process_addr_reg(), process_address_1(), remove_inheritance_pseudos(), stack_protect_epilogue(), stack_protect_prologue(), store_constructor(), and thread_prologue_and_epilogue_insns().

◆ emit_insn_after()

◆ emit_insn_after_noloc()

rtx_insn * emit_insn_after_noloc ( rtx x,
rtx_insn * after,
basic_block bb )
extern
Make X be output after the insn AFTER and set the BB of insn.  If
BB is NULL, an attempt is made to infer the BB from AFTER.   

References emit_pattern_after_noloc(), ggc_alloc(), and make_insn_raw().

Referenced by cfg_layout_merge_blocks(), commit_one_edge_insertion(), emit_nop_for_unique_locus_between(), expand_gimple_basic_block(), fixup_reorder_chain(), insert_insn_end_basic_block(), insert_insn_start_basic_block(), and lra_process_new_insns().

◆ emit_insn_after_setloc()

rtx_insn * emit_insn_after_setloc ( rtx pattern,
rtx_insn * after,
location_t loc )
extern
Like emit_insn_after_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_after_setloc(), ggc_alloc(), and make_insn_raw().

Referenced by peep2_attempt(), and try_split().

◆ emit_insn_at_entry()

void emit_insn_at_entry ( rtx insn)
extern
Emit INSN at the entry point of the function, ensuring that it is only
executed once per function.   

References cfun, commit_edge_insertions(), ei_safe_edge(), ei_start, ENTRY_BLOCK_PTR_FOR_FN, gcc_assert, ggc_alloc(), and insert_insn_on_edge().

Referenced by emit_initial_value_sets().

◆ emit_insn_before()

◆ emit_insn_before_noloc()

rtx_insn * emit_insn_before_noloc ( rtx x,
rtx_insn * before,
basic_block bb )
extern
Make X be output before the instruction BEFORE.   

References emit_pattern_before_noloc(), ggc_alloc(), and make_insn_raw().

Referenced by commit_one_edge_insertion(), insert_insn_end_basic_block(), and lra_process_new_insns().

◆ emit_insn_before_setloc()

◆ emit_jump()

◆ emit_jump_insn()

◆ emit_jump_insn_after()

rtx_jump_insn * emit_jump_insn_after ( rtx pattern,
rtx_insn * after )
extern
Like emit_jump_insn_after_noloc, but set INSN_LOCATION according to AFTER.   

References emit_pattern_after(), ggc_alloc(), and make_jump_insn_raw().

Referenced by add_labels_and_missing_jumps(), doloop_modify(), emit_copy_of_insn_after(), find_cond_trap(), and handle_simple_exit().

◆ emit_jump_insn_after_noloc()

rtx_jump_insn * emit_jump_insn_after_noloc ( rtx x,
rtx_insn * after )
extern
Make an insn of code JUMP_INSN with body X
and output it after the insn AFTER.   

References emit_pattern_after_noloc(), ggc_alloc(), make_jump_insn_raw(), and NULL.

Referenced by try_redirect_by_replacing_jump().

◆ emit_jump_insn_after_setloc()

rtx_jump_insn * emit_jump_insn_after_setloc ( rtx pattern,
rtx_insn * after,
location_t loc )
extern
Like emit_jump_insn_after_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_after_setloc(), ggc_alloc(), and make_jump_insn_raw().

Referenced by force_nonfallthru_and_redirect().

◆ emit_jump_insn_before()

rtx_jump_insn * emit_jump_insn_before ( rtx pattern,
rtx_insn * before )
extern
Like emit_jump_insn_before_noloc, but set INSN_LOCATION according to BEFORE.   

References emit_pattern_before(), ggc_alloc(), and make_jump_insn_raw().

Referenced by cse_insn().

◆ emit_jump_insn_before_noloc()

rtx_jump_insn * emit_jump_insn_before_noloc ( rtx x,
rtx_insn * before )
extern
Make an instruction with body X and code JUMP_INSN
and output it before the instruction BEFORE.   

References emit_pattern_before_noloc(), ggc_alloc(), make_jump_insn_raw(), and NULL.

◆ emit_jump_insn_before_setloc()

rtx_jump_insn * emit_jump_insn_before_setloc ( rtx pattern,
rtx_insn * before,
location_t loc )
extern
like emit_insn_before_noloc, but set INSN_LOCATION according to LOC.   

References emit_pattern_before_setloc(), ggc_alloc(), and make_jump_insn_raw().

◆ emit_jump_table_data()

rtx_jump_table_data * emit_jump_table_data ( rtx table)
extern
Make an insn of code JUMP_TABLE_DATA
and add it to the end of the doubly-linked list.   

References add_insn(), BLOCK_FOR_INSN(), cur_insn_uid, ggc_alloc(), INSN_UID(), NULL, PATTERN(), rtx_alloc(), and table.

Referenced by emit_case_dispatch_table().

◆ emit_label()

rtx_code_label * emit_label ( rtx uncast_label)
extern
Add the label LABEL to the end of the doubly-linked list.   

References add_insn(), cur_insn_uid, gcc_checking_assert, ggc_alloc(), and INSN_UID().

Referenced by allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asan_clear_shadow(), asan_emit_stack_protection(), compare_by_pieces(), create_eh_forwarder_block(), do_compare_rtx_and_jump(), do_jump(), do_jump_1(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), dw2_build_landing_pads(), emit(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_case_dispatch_table(), emit_stack_clash_protection_probe_loop_end(), emit_stack_clash_protection_probe_loop_start(), emit_store_flag_force(), expand_abs(), expand_addsub_overflow(), expand_arith_overflow_result_store(), expand_asm_stmt(), expand_builtin_atomic_compare_exchange(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_compare_and_swap_loop(), expand_copysign_absneg(), expand_divmod(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_shift(), expand_eh_return(), expand_expr_real_1(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_float(), expand_function_end(), expand_gimple_basic_block(), expand_label(), expand_mul_overflow(), expand_neg_overflow(), expand_sdiv_pow2(), expand_sjlj_dispatch_table(), expand_smod_pow2(), expand_vector_ubsan_overflow(), find_end_label(), fix_crossing_conditional_branches(), get_uncond_jump_length(), inline_string_cmp(), prepare_call_address(), probe_stack_range(), sjlj_emit_dispatch_table(), stack_protect_epilogue(), store_constructor(), store_expr(), and try_store_by_multiple_pieces().

◆ emit_label_after()

rtx_insn * emit_label_after ( rtx_insn * label,
rtx_insn * after )
extern
Emit the label LABEL after the insn AFTER.   

References add_insn_after(), cur_insn_uid, gcc_checking_assert, ggc_alloc(), INSN_UID(), and NULL.

Referenced by find_end_label(), and get_label_before().

◆ emit_label_before()

rtx_code_label * emit_label_before ( rtx_code_label * label,
rtx_insn * before )
extern
Emit the label LABEL before the insn BEFORE.   

References add_insn_before(), cur_insn_uid, gcc_checking_assert, ggc_alloc(), INSN_UID(), and NULL.

Referenced by block_label().

◆ emit_library_call() [1/5]

void emit_library_call ( rtx fun,
libcall_type fn_type,
machine_mode outmode )
inline
Output a library call and discard the returned value.  FUN is the
address of the function, as a SYMBOL_REF rtx, and OUTMODE is the mode
of the (discarded) return value.  FN_TYPE is LCT_NORMAL for `normal'
calls, LCT_CONST for `const' calls, LCT_PURE for `pure' calls, or
another LCT_ value for other types of library calls.

There are different overloads of this function for different numbers
of arguments.  In each case the argument value is followed by its mode.   

References emit_library_call_value_1(), ggc_alloc(), NULL, and NULL_RTX.

Referenced by asan_emit_allocas_unpoison(), asan_emit_stack_protection(), default_emit_call_builtin___clear_cache(), expand_FLOATTOBITINT(), expand_HWASAN_MARK(), expand_main_function(), expand_mem_thread_fence(), hwasan_emit_prologue(), hwasan_emit_untag_frame(), probe_stack_range(), sjlj_emit_function_enter(), and sjlj_emit_function_exit().

◆ emit_library_call() [2/5]

void emit_library_call ( rtx fun,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode )
inline

◆ emit_library_call() [3/5]

void emit_library_call ( rtx fun,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode )
inline

◆ emit_library_call() [4/5]

void emit_library_call ( rtx fun,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode,
rtx arg3,
machine_mode arg3_mode )
inline

◆ emit_library_call() [5/5]

void emit_library_call ( rtx fun,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode,
rtx arg3,
machine_mode arg3_mode,
rtx arg4,
machine_mode arg4_mode )
inline

◆ emit_library_call_value() [1/5]

◆ emit_library_call_value() [2/5]

rtx emit_library_call_value ( rtx fun,
rtx value,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode )
inline

◆ emit_library_call_value() [3/5]

rtx emit_library_call_value ( rtx fun,
rtx value,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode )
inline

◆ emit_library_call_value() [4/5]

rtx emit_library_call_value ( rtx fun,
rtx value,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode,
rtx arg3,
machine_mode arg3_mode )
inline

◆ emit_library_call_value() [5/5]

rtx emit_library_call_value ( rtx fun,
rtx value,
libcall_type fn_type,
machine_mode outmode,
rtx arg1,
machine_mode arg1_mode,
rtx arg2,
machine_mode arg2_mode,
rtx arg3,
machine_mode arg3_mode,
rtx arg4,
machine_mode arg4_mode )
inline

◆ emit_library_call_value_1()

rtx emit_library_call_value_1 ( int retval,
rtx orgfun,
rtx value,
enum libcall_type fn_type,
machine_mode outmode,
int nargs,
rtx_mode_t * args )
extern
Output a library call to function ORGFUN (a SYMBOL_REF rtx)
for a value of mode OUTMODE,
with NARGS different arguments, passed as ARGS.
Store the return value if RETVAL is nonzero: store it in VALUE if
VALUE is nonnull, otherwise pick a convenient location.  In either
case return the location of the stored value.

FN_TYPE should be LCT_NORMAL for `normal' calls, LCT_CONST for
`const' calls, LCT_PURE for `pure' calls, or another LCT_ value for
other types of library calls.   

References ACCUMULATE_OUTGOING_ARGS, add_reg_note(), aggregate_value_p(), anti_adjust_stack(), ARGS_GROW_DOWNWARD, ARGS_SIZE_RTX, assemble_external_libcall(), assign_stack_temp(), assign_temp(), BLOCK_OP_CALL_PARM, build_function_type(), build_pointer_type(), CALL_P, args_size::constant, CONSTANT_P, convert_modes(), copy_rtx(), count, crtl, current_function_pushed_stack_size, ECF_CONST, ECF_LOOPING_CONST_OR_PURE, ECF_NORETURN, ECF_NOTHROW, ECF_PURE, ECF_RETURNS_TWICE, opt_mode< T >::else_blk(), emit_barrier_after(), emit_block_move(), emit_call_1(), emit_group_load(), emit_group_store(), emit_move_insn(), emit_push_insn(), function_arg_info::end_marker(), expand_shift(), force_operand(), force_reg(), free(), gcc_assert, gen_int_mode(), gen_reg_rtx(), gen_rtx_EXPR_LIST(), gen_rtx_MEM(), gen_rtx_REG(), GET_CODE, get_identifier(), get_last_insn(), GET_MODE, GET_MODE_SIZE(), ggc_alloc(), hard_function_value(), hard_libcall_value(), highest_outgoing_arg_in_use, i, inhibit_defer_pop, int_mode_for_size(), known_le, known_lt, last, last_call_insn(), LCT_CONST, LCT_NORETURN, LCT_NORMAL, LCT_PURE, LCT_RETURNS_TWICE, LCT_THROW, locate_and_pad_parm(), make_reg_eh_region_note_nothrow_nononlocal(), mark_addressable(), mark_stack_region_used(), MAX, MEM_EXPR, MEM_P, memory_address, function_arg_info::mode, NO_DEFER_POP, NULL, NULL_RTX, NULL_TREE, OK_DEFER_POP, OUTGOING_REG_PARM_STACK_SPACE, PAD_DOWNWARD, PAD_UPWARD, pass_by_reference(), function_arg_info::pass_by_reference, pc_rtx, pending_stack_adjust, plus_constant(), pop_temp_slots(), PREFERRED_STACK_BOUNDARY, prepare_call_address(), PREV_INSN(), promote_function_mode(), push_block(), push_temp_slots(), record_final_call(), reference_callee_copied(), REG_P, REGNO, shift, shift_return_value(), STACK_BYTES, stack_pointer_delta, STACK_POINTER_OFFSET, stack_pointer_rtx, stack_region_maybe_used_p(), stack_usage_map, stack_usage_watermark, SYMBOL_REF_DECL, targetm, TREE_TYPE, lang_hooks_for_types::type_for_mode, TYPE_MODE, TYPE_UNSIGNED, lang_hooks::types, UNKNOWN_LOCATION, update_stack_alignment_for_call(), use_group_regs(), use_reg(), use_regs(), validize_mem(), args_size::var, virtual_outgoing_args_rtx, virtuals_instantiated, void_type_node, word_mode, XEXP, and XSTR.

Referenced by emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call(), emit_library_call_value(), emit_library_call_value(), emit_library_call_value(), emit_library_call_value(), emit_library_call_value(), expand_DIVMODBITINT(), and expand_MULBITINT().

◆ emit_likely_jump_insn()

rtx_insn * emit_likely_jump_insn ( rtx x)
extern
Make an insn of code JUMP_INSN with pattern X,
add a REG_BR_PROB note that indicates very likely probability,
and add it to the end of the doubly-linked list.   

References add_reg_br_prob_note(), emit_jump_insn(), and profile_probability::very_likely().

◆ emit_note()

◆ emit_note_after()

◆ emit_note_before()

◆ emit_note_copy()

rtx_note * emit_note_copy ( rtx_note * orig)
extern
Emit a copy of note ORIG.   

References add_insn(), ggc_alloc(), make_note_raw(), NOTE_DATA, and NOTE_KIND.

Referenced by duplicate_insn_chain().

◆ emit_unlikely_jump_insn()

rtx_insn * emit_unlikely_jump_insn ( rtx x)
extern
Make an insn of code JUMP_INSN with pattern X,
add a REG_BR_PROB note that indicates very unlikely probability,
and add it to the end of the doubly-linked list.   

References add_reg_br_prob_note(), emit_jump_insn(), and profile_probability::very_unlikely().

◆ emit_use()

◆ end_alias_analysis()

◆ END_REGNO()

◆ end_sequence()

void end_sequence ( void )
extern
After emitting to a sequence, restore previous saved state.

To get the contents of the sequence just made, you must call
`get_insns' *before* calling here.

If the compiler might have deferred popping arguments while
generating this sequence, and this sequence will not be immediately
inserted into the instruction stream, use do_pending_stack_adjust
before calling get_insns.  That will ensure that the deferred
pops are inserted into this sequence, and not into some random
location in the instruction stream.  See INHIBIT_DEFER_POP for more
information about deferred popping of arguments.   

References free_sequence_stack, get_current_sequence(), ggc_alloc(), sequence_stack::next, set_first_insn(), and set_last_insn().

Referenced by add_test(), asan_clear_shadow(), asan_emit_allocas_unpoison(), asan_emit_stack_protection(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms_unsplit_complex(), attempt_change(), check_and_process_move(), combine_reaching_defs(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), computation_cost(), compute_can_copy(), cond_move_process_if_block(), convert_mode_scalar(), curr_insn_transform(), do_remat(), doloop_modify(), dw2_build_landing_pads(), emit_common_heads_for_components(), emit_common_tails_for_components(), emit_delay_sequence(), emit_inc_dec_insn_before(), emit_initial_value_sets(), emit_input_reload_insns(), emit_move_list(), emit_move_multi_word(), emit_output_reload_insns(), emit_partition_copy(), end_ifcvt_sequence(), expand_absneg_bit(), expand_asm_stmt(), expand_atomic_fetch_op(), expand_binop(), expand_builtin_apply_args(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_return(), expand_builtin_saveregs(), expand_builtin_strlen(), expand_call(), expand_clrsb_using_clz(), expand_cond_expr_using_cmove(), expand_copysign_bit(), expand_ctz(), expand_DIVMOD(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_popcount(), expand_dummy_function_end(), expand_expr_divmod(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_fixed_convert(), expand_float(), expand_function_end(), expand_POPCOUNT(), expand_sdiv_pow2(), expand_twoval_binop_libfunc(), expand_unop(), expmed_mult_highpart_optab(), find_shift_sequence(), fix_crossing_unconditional_branches(), gen_call_used_regs_seq(), gen_clobber(), gen_cond_trap(), gen_move_insn(), gen_use(), get_arg_pointer_save_area(), get_uncond_jump_length(), hwasan_emit_untag_frame(), hwasan_frame_base(), inherit_in_ebb(), inherit_reload_reg(), init_set_costs(), initialize_uninitialized_regs(), inline_string_cmp(), insert_base_initialization(), insert_insn_on_edge(), insert_move_for_subreg(), insert_prologue_epilogue_for_components(), insert_value_copy_on_edge(), insert_var_expansion_initialization(), instantiate_virtual_regs_in_insn(), ira(), lra_process_new_insns(), make_epilogue_seq(), make_prologue_seq(), make_split_prologue_seq(), match_asm_constraints_1(), match_reload(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), noce_convert_multiple_sets(), noce_convert_multiple_sets_1(), noce_emit_cmove(), noce_emit_move_insn(), noce_emit_store_flag(), noce_process_if_block(), noce_try_abs(), noce_try_addcc(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_inverse_constants(), noce_try_minmax(), noce_try_sign_mask(), noce_try_store_flag(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), pop_topmost_sequence(), prepare_copy_insn(), prepare_float_lib_cmp(), prepend_insn_to_edge(), process_addr_reg(), process_address_1(), process_invariant_for_inheritance(), record_store(), remove_inheritance_pseudos(), replace_read(), resolve_shift_zext(), resolve_simple_move(), rtl_lv_add_condition_to_bb(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_mark_call_sites(), split_iv(), thread_prologue_and_epilogue_insns(), try_emit_cmove_seq(), and unroll_loop_runtime_iterations().

◆ exp_equiv_p()

bool exp_equiv_p ( const_rtx x,
const_rtx y,
int validate,
bool for_gcse )
extern

◆ expand_dec()

void expand_dec ( rtx target,
rtx dec )
extern

◆ expand_inc()

void expand_inc ( rtx target,
rtx inc )
extern

◆ expand_naked_return()

void expand_naked_return ( void )
extern
Generate RTL to return directly from the current function.
(That is, we bypass any return value.)   

References clear_pending_stack_adjust(), do_pending_stack_adjust(), emit_jump(), gen_label_rtx(), and naked_return_label.

Referenced by expand_builtin_return().

◆ expand_null_return()

void expand_null_return ( void )
extern
In stmt.cc  
Generate RTL to return from the current function, with no value.
(That is, we do not do anything about returning any value.)   

References clobber_return_register(), and expand_null_return_1().

Referenced by expand_gimple_stmt_1(), and expand_return().

◆ extended_count()

unsigned int extended_count ( const_rtx x,
machine_mode mode,
bool unsignedp )
extern
In combine.cc   
Return the number of "extended" bits there are in X, when interpreted
as a quantity in MODE whose signedness is indicated by UNSIGNEDP.  For
unsigned quantities, this is the number of high-order zero bits.
For signed quantities, this is the number of copies of the sign bit
minus 1.  In both case, this function returns the number of "spare"
bits.  For example, if two quantities for which this function returns
at least 1 are added, the addition is known not to overflow.

This function will always return 0 unless called during combine, which
implies that it must be called from a define_split.   

References floor_log2(), GET_MODE_PRECISION(), ggc_alloc(), HWI_COMPUTABLE_MODE_P(), nonzero_bits(), nonzero_sign_valid, and num_sign_bit_copies().

◆ extract_asm_operands()

◆ extract_mem_from_operand()

rtx extract_mem_from_operand ( rtx op)
extern
For special_memory_operand, it could be false for MEM_P (op),
i.e. bcst_mem_operand in i386 backend.
Extract and return real memory operand or op.   

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, MEM_P, and XEXP.

Referenced by asm_operand_ok(), ira_setup_alts(), process_address_1(), record_operand_costs(), record_reg_classes(), satisfies_memory_constraint_p(), and valid_address_p().

◆ find_all_hard_reg_sets()

void find_all_hard_reg_sets ( const rtx_insn * insn,
HARD_REG_SET * pset,
bool implicit )
extern
Examine INSN, and compute the set of hard registers written by it.
Store it in *PSET.  Should only be called after reload.

IMPLICIT is true if we should include registers that are fully-clobbered
by calls.  This should be used with caution, since it doesn't include
partially-clobbered registers.   

References CALL_P, CLEAR_HARD_REG_SET, function_abi::full_reg_clobbers(), ggc_alloc(), insn_callee_abi(), note_stores(), NULL, record_hard_reg_sets(), REG_NOTE_KIND, REG_NOTES, and XEXP.

Referenced by collect_fn_hard_reg_usage().

◆ find_all_hard_regs()

void find_all_hard_regs ( const_rtx x,
HARD_REG_SET * pset )
extern
Add all hard register in X to *PSET.   

References add_to_hard_reg_set(), FOR_EACH_SUBRTX, GET_MODE, ggc_alloc(), REG_P, and REGNO.

Referenced by record_hard_reg_uses().

◆ find_args_size_adjust()

poly_int64 find_args_size_adjust ( rtx_insn * insn)
extern
A utility routine used here, in reload, and in try_split.  The insns
after PREV up to and including LAST are known to adjust the stack,
with a final value of END_ARGS_SIZE.  Iterate backward from LAST
placing notes as appropriate.  PREV may be NULL, indicating the
entire insn sequence prior to LAST should be scanned.

The set of allowed stack pointer modifications is small:
  (1) One or more auto-inc style memory references (aka pushes),
  (2) One or more addition/subtraction with the SP as destination,
  (3) A single move insn with the SP as destination,
  (4) A call_pop insn,
  (5) Noreturn call insns if !ACCUMULATE_OUTGOING_ARGS.

Insns in the sequence that do not modify the SP are ignored,
except for noreturn calls.

The return value is the amount of adjustment that can be trivially
verified, via immediate operand or auto-inc.  If the adjustment
cannot be trivially extracted, the return value is HOST_WIDE_INT_MIN.   

References CALL_P, gcc_assert, gcc_checking_assert, gcc_unreachable, GET_CODE, GET_MODE, GET_MODE_SIZE(), ggc_alloc(), HOST_WIDE_INT_MIN, i, mem_autoinc_base(), NULL, offset, PATTERN(), REG_P, REGNO, rtx_equal_p(), rtx_to_poly_int64(), SCALAR_INT_MODE_P, SET, SET_DEST, SET_SRC, single_set(), stack_pointer_rtx, strip_offset(), XEXP, XVECEXP, and XVECLEN.

Referenced by fixup_args_size_notes(), and old_insns_match_p().

◆ find_constant_src()

rtx find_constant_src ( const rtx_insn * insn)
extern
Check whether INSN is a single_set whose source is known to be
equivalent to a constant.  Return that constant if so, otherwise
return null.   

References avoid_constant_pool_reference(), CONSTANT_P, find_reg_equal_equiv_note(), ggc_alloc(), NULL_RTX, SET_SRC, single_set(), and XEXP.

◆ find_constant_term_loc()

rtx * find_constant_term_loc ( rtx * p)
extern
In recog.cc   
Given an rtx *P, if it is a sum containing an integer constant term,
return the location (type rtx *) of the pointer to that constant term.
Otherwise, return a null pointer.   

References CONSTANT_P, find_constant_term_loc(), GET_CODE, ggc_alloc(), and XEXP.

Referenced by find_constant_term_loc(), offsettable_address_addr_space_p(), and plus_constant().

◆ find_first_parameter_load()

rtx_insn * find_first_parameter_load ( rtx_insn * call_insn,
rtx_insn * boundary )
extern
Look backward for first parameter to be loaded.
Note that loads of all parameters will not necessarily be
found if CSE has eliminated some of them (e.g., an argument
to the outer function is passed down as a parameter).
Do not skip BOUNDARY.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, CLEAR_HARD_REG_SET, gcc_assert, GET_CODE, ggc_alloc(), INSN_P, LABEL_P, note_stores(), parms_set(), PREV_INSN(), REG_P, REGNO, SET_HARD_REG_BIT, STATIC_CHAIN_REG_P, and XEXP.

Referenced by insert_insn_end_basic_block(), and sjlj_mark_call_sites().

◆ find_reg_equal_equiv_note()

◆ find_reg_fusage()

bool find_reg_fusage ( const_rtx insn,
enum rtx_code code,
const_rtx datum )
extern
Return true if DATUM, or any overlap of DATUM, of kind CODE is found
in the CALL_INSN_FUNCTION_USAGE information of INSN.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, END_REGNO(), find_regno_fusage(), gcc_assert, GET_CODE, ggc_alloc(), i, REG_P, REGNO, rtx_equal_p(), and XEXP.

Referenced by can_combine_p(), decrease_live_ranges_number(), distribute_links(), distribute_notes(), no_conflict_move_test(), push_reload(), reg_set_p(), and reg_used_between_p().

◆ find_reg_note()

rtx find_reg_note ( const_rtx insn,
enum reg_note kind,
const_rtx datum )
extern
Return the reg-note of kind KIND in insn INSN, if there is one.
If DATUM is nonzero, look for one whose datum is DATUM.   

References gcc_checking_assert, ggc_alloc(), INSN_P, REG_NOTE_KIND, REG_NOTES, and XEXP.

Referenced by add_args_size_note(), add_insn_allocno_copies(), add_reg_br_prob_note(), add_store_equivs(), adjust_insn(), any_uncondjump_p(), attempt_change(), find_comparison_dom_walker::before_dom_children(), can_combine_p(), can_nonlocal_goto(), canonicalize_insn(), check_for_inc_dec(), check_for_inc_dec_1(), check_for_label_ref(), combine_and_move_insns(), combine_predictions_for_insn(), combine_stack_adjustments_for_block(), compute_outgoing_frequencies(), cond_exec_process_if_block(), control_flow_insn_p(), copy_reg_eh_region_note_backward(), copy_reg_eh_region_note_forward(), copyprop_hardreg_forward_1(), create_trace_edges(), cse_insn(), cselib_process_insn(), curr_insn_transform(), dead_or_predicable(), decrease_live_ranges_number(), deletable_insn_p(), delete_insn(), delete_unmarked_insns(), distribute_notes(), do_local_cprop(), do_output_reload(), dw2_fix_up_crossing_landing_pad(), emit_cmp_and_jump_insn_1(), emit_input_reload_insns(), emit_libcall_block_1(), expand_addsub_overflow(), expand_gimple_stmt(), expand_loc(), expand_mul_overflow(), expand_neg_overflow(), find_dummy_reload(), find_equiv_reg(), find_moveable_store(), find_reloads(), fixup_args_size_notes(), fixup_eh_region_note(), fixup_reorder_chain(), fixup_tail_calls(), force_move_args_size_note(), force_nonfallthru_and_redirect(), forward_propagate_and_simplify(), forward_propagate_into(), fp_setter_insn(), get_call_fndecl(), get_eh_region_and_lp_from_rtx(), hash_scan_set(), indirect_jump_optimize(), inherit_in_ebb(), init_alias_analysis(), init_eliminable_invariants(), init_elimination(), insn_stack_adjust_offset_pre_post(), ira_update_equiv_info_by_shuffle_insn(), label_is_jump_target_p(), lra_process_new_insns(), make_edges(), make_reg_eh_region_note_nothrow_nononlocal(), mark_jump_label_1(), mark_referenced_resources(), mark_set_resources(), match_reload(), maybe_merge_cfa_adjust(), maybe_move_args_size_note(), maybe_propagate_label_ref(), merge_if_block(), mostly_true_jump(), move_invariant_reg(), need_cmov_or_rewire(), need_fake_edge_p(), no_equiv(), noce_process_if_block(), notice_args_size(), old_insns_match_p(), outgoing_edges_match(), patch_jump_insn(), peep2_attempt(), process_alt_operands(), process_bb_lives(), process_bb_node_lives(), purge_dead_edges(), record_reg_classes(), record_set_data(), record_store(), redirect_jump_2(), redundant_insn(), reg_scan_mark_refs(), regstat_bb_compute_ri(), reload(), reload_as_needed(), resolve_simple_move(), rest_of_clean_state(), rtl_verify_edges(), save_call_clobbered_regs(), scan_insn(), scan_one_insn(), scan_trace(), set_unique_reg_note(), setup_reg_equiv(), setup_save_areas(), single_set_2(), sjlj_fix_up_crossing_landing_pad(), split_all_insns(), subst_reloads(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_head_merge_bb(), try_split(), rtx_properties::try_to_add_insn(), update_br_prob_note(), update_equiv_regs(), and validate_equiv_mem().

◆ find_regno_fusage()

bool find_regno_fusage ( const_rtx insn,
enum rtx_code code,
unsigned int regno )
extern
Return true if REGNO, or any overlap of REGNO, of kind CODE is found
in the CALL_INSN_FUNCTION_USAGE information of INSN.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, END_REGNO(), GET_CODE, ggc_alloc(), REG_P, REGNO, and XEXP.

Referenced by dead_or_set_regno_p(), distribute_notes(), and find_reg_fusage().

◆ find_regno_note()

◆ finish_subregs_of_mode()

void finish_subregs_of_mode ( void )
extern

◆ fis_get_condition()

rtx fis_get_condition ( rtx_insn * jump)
extern
In cprop.cc  
Similar to get_condition, only the resulting condition must be
valid at JUMP, instead of at EARLIEST.

This differs from noce_get_condition in ifcvt.cc in that we prefer not to
settle for the condition variable in the jump instruction being integral.
We prefer to be able to record the value of a user variable, rather than
the value of a temporary used in a condition.  This could be solved by
recording the value of *every* register scanned by canonicalize_condition,
but this would require some code reorganization.   

References get_condition(), and NULL.

Referenced by find_implicit_sets(), and reload_cse_move2add_invalidate().

◆ fix_register()

void fix_register ( const char * name,
int fixed,
int call_used )
extern
Specify the usage characteristics of the register named NAME.
It should be a fixed register if FIXED and a
call-used register if CALL_USED.   

References call_used_regs, decode_reg_name_and_count(), error(), fixed_regs, gcc_assert, gcc_unreachable, ggc_alloc(), HARD_FRAME_POINTER_REGNUM, i, and warning().

Referenced by handle_common_deferred_options().

◆ fixup_args_size_notes()

◆ for_each_inc_dec()

int for_each_inc_dec ( rtx x,
for_each_inc_dec_fn fn,
void * data )
extern
Traverse *LOC looking for MEMs that have autoinc addresses.
For each such autoinc operation found, call FN, passing it
the innermost enclosing MEM, the operation itself, the RTX modified
by the operation, two RTXs (the second may be NULL) that, once
added, represent the value to be held by the modified RTX
afterwards, and DATA.  FN is to return 0 to continue the
traversal or any other value to have it returned to the caller of
for_each_inc_dec.   

References for_each_inc_dec_find_inc_dec(), FOR_EACH_SUBRTX_VAR, GET_CODE, GET_RTX_CLASS, ggc_alloc(), MEM_P, RTX_AUTOINC, and XEXP.

Referenced by check_for_inc_dec(), check_for_inc_dec_1(), cselib_record_sets(), stack_adjust_offset_pre_post(), and try_combine().

◆ force_const_mem()

◆ free_EXPR_LIST_list()

void free_EXPR_LIST_list ( rtx_expr_list ** listp)
extern
lists.cc  
This function will free up an entire list of EXPR_LIST nodes.   

References free_list(), ggc_alloc(), and unused_expr_list.

Referenced by free_reg_equiv(), and simplify_using_initial_values().

◆ free_EXPR_LIST_node()

void free_EXPR_LIST_node ( rtx ptr)
extern

◆ free_INSN_LIST_list()

void free_INSN_LIST_list ( rtx_insn_list ** listp)
extern
This function will free up an entire list of INSN_LIST nodes.   

References free_list(), ggc_alloc(), and unused_insn_list.

◆ free_INSN_LIST_node()

void free_INSN_LIST_node ( rtx ptr)
extern
This function will free up an individual INSN_LIST node.   

References gcc_assert, GET_CODE, ggc_alloc(), unused_insn_list, and XEXP.

Referenced by remove_free_INSN_LIST_elem(), and remove_free_INSN_LIST_node().

◆ free_reg_info()

void free_reg_info ( void )
extern
Free up register info memory.   
Free up the space allocated by allocate_reg_info.   

References free(), NULL, and reg_renumber.

Referenced by move_loop_invariants(), one_code_hoisting_pass(), and rest_of_handle_final().

◆ function_invariant_p()

bool function_invariant_p ( const_rtx x)
extern
In reload1.cc  
Return true if the rtx X is invariant over the current function.   
??? Actually, the places where we use this expect exactly what is
tested here, and not everything that is function invariant.  In
particular, the frame pointer and arg pointer are special cased;
pic_offset_table_rtx is not, and we must not spill these things to
memory.   

References arg_pointer_rtx, CONSTANT_P, frame_pointer_rtx, GET_CODE, ggc_alloc(), and XEXP.

Referenced by df_find_single_def_src(), elimination_effects(), init_eliminable_invariants(), iv_analyze_op(), setup_reg_equiv(), and simple_rhs_p().

◆ gen_clobber()

rtx_insn * gen_clobber ( rtx x)
extern
Return a sequence of insns to clobber lvalue X.   

References emit_clobber(), end_sequence(), get_insns(), and start_sequence().

Referenced by eliminate_regs_in_insn(), and find_reloads().

◆ gen_const_mem()

rtx gen_const_mem ( machine_mode mode,
rtx addr )
extern
Generate a memory referring to non-trapping constant memory.   

References gen_rtx_MEM(), MEM_NOTRAP_P, and MEM_READONLY_P.

Referenced by assemble_trampoline_template(), build_constant_desc(), do_tablejump(), and force_const_mem().

◆ gen_frame_mem()

rtx gen_frame_mem ( machine_mode mode,
rtx addr )
extern
Generate a MEM referring to fixed portions of the frame, e.g., register
save areas.   

References gen_rtx_MEM(), get_frame_alias_set(), MEM_NOTRAP_P, and set_mem_alias_set().

Referenced by expand_builtin_return_addr().

◆ gen_hard_reg_clobber()

rtx gen_hard_reg_clobber ( machine_mode mode,
unsigned int regno )
extern

◆ gen_highpart()

◆ gen_highpart_mode()

rtx gen_highpart_mode ( machine_mode outermode,
machine_mode innermode,
rtx exp )
extern
Like gen_highpart, but accept mode of EXP operand in case EXP can
be VOIDmode constant.   

References exp(), gcc_assert, gen_highpart(), GET_MODE, ggc_alloc(), simplify_gen_subreg(), and subreg_highpart_offset().

◆ gen_label_rtx()

rtx_code_label * gen_label_rtx ( void )
extern
Return a newly created CODE_LABEL rtx with a unique label number.   

References ggc_alloc(), label_num, NULL, and NULL_RTX.

Referenced by allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asan_clear_shadow(), asan_emit_stack_protection(), block_label(), compare_by_pieces(), do_compare_rtx_and_jump(), do_jump(), do_jump_1(), do_jump_by_parts_equality_rtx(), do_jump_by_parts_greater_rtx(), do_jump_by_parts_zero_rtx(), dw2_build_landing_pads(), dw2_fix_up_crossing_landing_pad(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_case_dispatch_table(), emit_stack_clash_protection_probe_loop_start(), emit_store_flag_force(), expand_abs(), expand_addsub_overflow(), expand_arith_overflow_result_store(), expand_asm_stmt(), expand_builtin_atomic_compare_exchange(), expand_builtin_eh_return(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_compare_and_swap_loop(), expand_copysign_absneg(), expand_divmod(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_shift(), expand_eh_return(), expand_expr_real_1(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_float(), expand_function_start(), expand_mul_overflow(), expand_naked_return(), expand_neg_overflow(), expand_sdiv_pow2(), expand_sjlj_dispatch_table(), expand_smod_pow2(), expand_vector_ubsan_overflow(), find_end_label(), fix_crossing_conditional_branches(), get_label_before(), get_uncond_jump_length(), inline_string_cmp(), label_rtx(), label_rtx_for_bb(), prepare_call_address(), probe_stack_range(), sjlj_build_landing_pads(), sjlj_emit_dispatch_table(), sjlj_fix_up_crossing_landing_pad(), stack_protect_epilogue(), store_constructor(), store_expr(), and try_store_by_multiple_pieces().

◆ gen_lowpart_common()

rtx gen_lowpart_common ( machine_mode mode,
rtx x )
extern
Return a value representing some low-order bits of X, where the number
of low-order bits is given by MODE.  Note that no conversion is done
between floating-point and fixed-point values, rather, the bit
representation is returned.

This function handles the cases in common between gen_lowpart, below,
and two variants in cse.cc and combine.cc.  These are the cases that can
be safely handled at all points in the compilation.

If this is not a case we can handle, return 0.   

References CONST_DOUBLE_AS_FLOAT_P, CONST_INT_P, CONST_POLY_INT_P, CONST_SCALAR_INT_P, gcc_assert, gen_lowpart_common(), GET_CODE, GET_MODE, GET_MODE_SIZE(), ggc_alloc(), HOST_BITS_PER_DOUBLE_INT, HOST_BITS_PER_WIDE_INT, int_mode_for_size(), known_le, lowpart_subreg(), maybe_gt, REG_P, REGMODE_NATURAL_SIZE, opt_mode< T >::require(), SCALAR_FLOAT_MODE_P, and XEXP.

Referenced by combine_simplify_rtx(), do_output_reload(), expand_expr_real_1(), extract_low_bits(), force_to_mode(), gen_lowpart_common(), gen_lowpart_for_combine(), gen_lowpart_general(), gen_lowpart_if_possible(), move2add_use_add2_insn(), store_split_bit_field(), and strip_paradoxical_subreg().

◆ gen_lowpart_if_possible()

rtx gen_lowpart_if_possible ( machine_mode mode,
rtx x )
extern
In cse.cc  
Assuming that X is an rtx (e.g., MEM, REG or SUBREG) for a fixed-point
number, return an rtx (MEM, SUBREG, or CONST_INT) that refers to the
least-significant part of X.
MODE specifies how big a part of X to return.

If the requested operation cannot be done, 0 is returned.

This is similar to gen_lowpart_general.   

References adjust_address_nv, byte_lowpart_offset(), gen_lowpart_common(), gen_lowpart_SUBREG(), GET_MODE, ggc_alloc(), MEM_ADDR_SPACE, MEM_P, memory_address_addr_space_p(), offset, subreg_lowpart_offset(), SUBREG_P, validate_subreg(), and XEXP.

Referenced by extract_bit_field_using_extv(), gen_lowpart_for_debug(), and store_bit_field_using_insv().

◆ gen_lowpart_SUBREG()

◆ gen_raw_REG()

◆ gen_reg_rtx()

rtx gen_reg_rtx ( machine_mode mode)
extern
Generate a REG rtx for a new pseudo register of mode MODE.
This pseudo is assigned the next sequential register number.   

References can_create_pseudo_p, crtl, emit(), gcc_assert, gen_raw_REG(), gen_reg_rtx(), generating_concat_p, GET_MODE_ALIGNMENT, GET_MODE_CLASS, GET_MODE_INNER, ggc_alloc(), min_align(), MINIMUM_ALIGNMENT, NULL, reg_rtx_no, regno_reg_rtx, and SUPPORTS_STACK_ALIGNMENT.

Referenced by allocate_basic_variable(), allocate_dynamic_stack_space(), asan_emit_stack_protection(), assign_parm_remove_parallels(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_temp(), avoid_likely_spilled_reg(), builtin_memset_gen_str(), builtin_memset_read_str(), compare_by_pieces(), compress_float_constant(), convert_mode_scalar(), convert_modes(), copy_blkmode_to_reg(), copy_to_mode_reg(), copy_to_reg(), copy_to_suggested_reg(), do_compare_and_jump(), do_jump_by_parts_zero_rtx(), do_store_flag(), do_tablejump(), doloop_optimize(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_conditional_add(), emit_conditional_move(), emit_conditional_move_1(), emit_conditional_neg_or_complement(), emit_cstore(), emit_group_load_1(), emit_group_store(), emit_libcall_block_1(), emit_library_call_value_1(), emit_push_insn(), emit_stack_save(), emit_store_flag_1(), emit_store_flag_force(), entry_register(), expand_abs(), expand_absneg_bit(), expand_addsub_overflow(), expand_asm_stmt(), expand_atomic_compare_and_swap(), expand_atomic_fetch_op(), expand_atomic_load(), expand_atomic_test_and_set(), expand_binop(), expand_builtin(), expand_builtin_apply(), expand_builtin_cexpi(), expand_builtin_eh_copy_values(), expand_builtin_eh_filter(), expand_builtin_eh_pointer(), expand_builtin_feclear_feraise_except(), expand_builtin_fegetround(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_issignaling(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_powi(), expand_builtin_signbit(), expand_builtin_sincos(), expand_builtin_stpcpy_1(), expand_builtin_strlen(), expand_builtin_thread_pointer(), expand_call(), expand_ccmp_expr(), expand_compare_and_swap_loop(), expand_copysign_absneg(), expand_copysign_bit(), expand_divmod(), expand_DIVMOD(), expand_doubleword_bswap(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_mod(), expand_doubleword_popcount(), expand_doubleword_shift_condmove(), expand_expr_real_1(), expand_expr_real_2(), expand_fix(), expand_float(), expand_function_end(), expand_function_start(), expand_gimple_basic_block(), expand_GOMP_SIMT_ENTER_ALLOC(), expand_ifn_atomic_bit_test_and(), expand_ifn_atomic_op_fetch_cmp_0(), expand_mul_overflow(), expand_mult_highpart(), expand_neg_overflow(), expand_one_error_var(), expand_one_register_var(), expand_one_ssa_partition(), expand_parity(), expand_sdiv_pow2(), expand_sfix_optab(), expand_single_bit_test(), expand_smod_pow2(), expand_speculation_safe_value(), expand_stack_vars(), expand_twoval_binop(), expand_twoval_unop(), expand_UADDC(), expand_ubsan_result_store(), expand_unop(), expand_used_vars(), expand_var_during_unrolling(), expand_vec_perm_const(), expand_vec_perm_var(), expand_vec_set_optab_fn(), expand_vector_broadcast(), expand_vector_ubsan_overflow(), extract_bit_field_1(), extract_bit_field_using_extv(), extract_integral_bit_field(), find_shift_sequence(), fix_crossing_unconditional_branches(), force_not_mem(), force_operand(), force_reg(), gen_group_rtx(), gen_reg_rtx(), gen_reg_rtx_and_attrs(), gen_reg_rtx_offset(), get_dynamic_stack_base(), get_hard_reg_initial_val(), address_reload_context::get_reload_reg(), get_scratch_reg(), get_temp_reg(), inline_string_cmp(), ira_create_new_reg(), load_register_parameters(), lra(), lra_create_new_reg_with_unique_value(), make_more_copies(), make_safe_from(), maybe_emit_compare_and_swap_exchange_loop(), maybe_emit_group_store(), maybe_legitimize_operand(), maybe_optimize_fetch_op(), noce_convert_multiple_sets_1(), noce_emit_cmove(), noce_process_if_block(), noce_try_addcc(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_inverse_constants(), noce_try_sign_mask(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), prepare_cmp_insn(), prepare_float_lib_cmp(), resolve_simple_move(), round_trampoline_addr(), split_iv(), store_bit_field_using_insv(), store_constructor(), store_field(), store_integral_bit_field(), store_one_arg(), store_unaligned_arguments_into_pseudos(), unroll_loop_runtime_iterations(), widen_bswap(), widen_leading(), and widen_operand().

◆ gen_reg_rtx_and_attrs()

rtx gen_reg_rtx_and_attrs ( rtx x)
extern
Generate a REG rtx for a new pseudo register, copying the mode
and attributes from X.   

References gen_reg_rtx(), GET_MODE, and set_reg_attrs_from_value().

Referenced by build_store_vectors(), delete_store(), hoist_code(), move_invariant_reg(), and pre_delete().

◆ gen_reg_rtx_offset()

rtx gen_reg_rtx_offset ( rtx reg,
machine_mode mode,
int offset )
extern
Generate a new pseudo-register with the same attributes as REG, but
with OFFSET added to the REG_OFFSET.   

References gen_reg_rtx(), offset, and update_reg_offset().

Referenced by decompose_register().

◆ gen_rtvec_v() [1/2]

◆ gen_rtvec_v() [2/2]

rtvec gen_rtvec_v ( int n,
rtx_insn ** argp )
extern

References ggc_alloc(), i, NULL_RTVEC, and rtvec_alloc().

◆ gen_rtx_CONST_INT()

◆ gen_rtx_CONST_VECTOR()

rtx gen_rtx_CONST_VECTOR ( machine_mode mode,
rtvec v )
extern
Generate a vector like gen_rtx_raw_CONST_VEC, but use the zero vector when
all elements are zero, and the one vector when all elements are one.   

References gcc_assert, gen_const_vec_duplicate(), GET_MODE_NUNITS(), GET_NUM_ELEM, ggc_alloc(), i, known_eq, rtvec_all_equal_p(), and RTVEC_ELT.

Referenced by function_reader::consolidate_singletons(), simplify_context::simplify_binary_operation_1(), simplify_const_binary_operation(), and simplify_context::simplify_ternary_operation().

◆ gen_rtx_EXPR_LIST()

rtx_expr_list * gen_rtx_EXPR_LIST ( machine_mode mode,
rtx expr,
rtx expr_list )
extern
There are some RTL codes that require special attention; the
generation functions included above do the raw handling.  If you
add to this list, modify special_rtx in gengenrtl.cc as well.   
There are some RTL codes that require special attention; the generation
functions do the raw handling.  If you add to this list, modify
special_rtx in gengenrtl.cc as well.   

References ggc_alloc().

Referenced by alloc_EXPR_LIST(), assemble_external_libcall(), clobber_reg_mode(), emit_call_1(), emit_library_call_value_1(), emit_note_insn_var_location(), expand_call(), gen_group_rtx(), prepare_call_arguments(), use_reg_mode(), and vt_add_function_parameter().

◆ gen_rtx_INSN()

rtx_insn * gen_rtx_INSN ( machine_mode mode,
rtx_insn * prev_insn,
rtx_insn * next_insn,
basic_block bb,
rtx pattern,
int location,
int code,
rtx reg_notes )
extern

◆ gen_rtx_INSN_LIST()

◆ gen_rtx_MEM()

rtx gen_rtx_MEM ( machine_mode mode,
rtx addr )
extern

References ggc_alloc(), and MEM_ATTRS.

Referenced by asan_emit_stack_protection(), assign_parm_find_stack_rtl(), assign_parm_setup_block(), assign_parm_setup_reg(), assign_parms(), assign_stack_local_1(), assign_stack_temp_for_type(), change_address(), change_address_1(), compute_argument_addresses(), cselib_init(), decode_addr_const(), default_static_chain(), emit_call_1(), emit_library_call_value_1(), emit_move_change_mode(), emit_move_complex_push(), emit_push_insn(), emit_stack_probe(), emit_stack_restore(), expand_asm_loc(), expand_asm_memory_blockage(), expand_asm_reg_clobber_mem_blockage(), expand_asm_stmt(), expand_assignment(), expand_builtin_apply(), expand_builtin_atomic_compare_exchange(), expand_builtin_init_descriptor(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_init_trampoline(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_builtin_return(), expand_builtin_setjmp_setup(), expand_builtin_strlen(), expand_builtin_strub_leave(), expand_builtin_update_setjmp_buf(), expand_builtin_va_copy(), expand_call(), expand_debug_expr(), expand_expr_real_1(), expand_function_start(), expand_one_error_var(), expand_one_stack_var_at(), expand_SET_EDOM(), gen_const_mem(), gen_frame_mem(), gen_tmp_stack_mem(), get_builtin_sync_mem(), get_group_info(), get_memory_rtx(), get_spill_slot_decl(), init_caller_save(), init_expr_target(), init_fake_stack_mems(), init_reload(), init_set_costs(), initialize_argument_information(), make_decl_rtl(), noce_try_cmove_arith(), prepare_call_address(), prepare_call_arguments(), produce_memory_decl_rtl(), replace_pseudos_in(), rtl_for_decl_init(), rtl_for_decl_location(), scan_insn(), store_one_arg(), and vt_add_function_parameter().

◆ gen_rtx_REG()

rtx gen_rtx_REG ( machine_mode mode,
unsigned int regno )
extern

References arg_pointer_rtx, cfun, fixed_regs, frame_pointer_needed, frame_pointer_rtx, gen_raw_REG(), ggc_alloc(), HARD_FRAME_POINTER_IS_FRAME_POINTER, HARD_FRAME_POINTER_REGNUM, hard_frame_pointer_rtx, INVALID_REGNUM, lra_in_progress, PIC_OFFSET_TABLE_REGNUM, pic_offset_table_rtx, reg_raw_mode, regno_reg_rtx, reload_completed, reload_in_progress, return_address_pointer_rtx, and stack_pointer_rtx.

Referenced by assign_parm_setup_block(), can_assign_to_reg_without_clobbers_p(), can_eliminate_compare(), can_reload_into(), canon_reg(), canonicalize_comparison(), change_zero_ext(), choose_reload_regs(), combine_reaching_defs(), combine_reloads(), combine_set_extension(), compute_can_copy(), cse_cc_succs(), cse_condition_code_reg(), cse_insn(), default_static_chain(), default_zero_call_used_regs(), do_output_reload(), do_reload(), emit_library_call_value_1(), emit_push_insn(), expand_asm_stmt(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_init_dwarf_reg_sizes(), expand_builtin_return(), expand_call(), expand_dw2_landing_pad_for_region(), expand_function_end(), find_and_remove_re(), find_dummy_reload(), find_reloads_address_1(), gen_hard_reg_clobber(), gen_reload(), gen_reload_chain_without_interm_reg_p(), get_hard_reg_initial_val(), init_caller_save(), init_elim_table(), init_elim_table(), init_emit_regs(), init_expr_target(), init_lower_subreg(), init_reload(), insert_restore(), insert_save(), load_register_parameters(), maybe_memory_address_addr_space_p(), maybe_select_cc_mode(), move2add_use_add3_insn(), move_block_from_reg(), move_block_to_reg(), peep2_find_free_register(), prefer_and_bit_test(), push_reload(), reload_adjust_reg_for_mode(), reload_combine_recognize_pattern(), reload_cse_regs_1(), reload_cse_simplify_operands(), reload_cse_simplify_set(), replace_reg_with_saved_mem(), result_vector(), set_reload_reg(), setup_prohibited_mode_move_regs(), simplify_set(), split_reg(), transform_ifelse(), try_combine(), try_eliminate_compare(), vt_add_function_parameter(), and zcur_select_mode_rtx().

◆ gen_rtx_REG_offset()

rtx gen_rtx_REG_offset ( rtx reg,
machine_mode mode,
unsigned int regno,
poly_int64 offset )
extern
Generate a register with same attributes as REG, but with OFFSET
added to the REG_OFFSET.   

References gen_raw_REG(), offset, and update_reg_offset().

Referenced by alter_subreg(), expand_debug_parm_decl(), simplify_context::simplify_subreg(), var_lowpart(), and vt_add_function_parameter().

◆ gen_rtx_SUBREG()

◆ gen_rtx_VAR_LOCATION()

◆ gen_tmp_stack_mem()

rtx gen_tmp_stack_mem ( machine_mode mode,
rtx addr )
extern
Generate a MEM referring to a temporary use of the stack, not part
of the fixed stack frame.  For example, something which is pushed
by a target splitter.   

References cfun, gen_rtx_MEM(), get_frame_alias_set(), MEM_NOTRAP_P, and set_mem_alias_set().

◆ gen_use()

rtx_insn * gen_use ( rtx x)
extern
Return a sequence of insns to use rvalue X.   

References emit_use(), end_sequence(), get_insns(), and start_sequence().

Referenced by rtl_flow_call_edges_add().

◆ get_addr()

◆ get_address_mode()

◆ get_args_size()

poly_int64 get_args_size ( const_rtx x)
extern

◆ get_call_fndecl()

tree get_call_fndecl ( const rtx_insn * insn)
extern
Get the declaration of the function called by INSN.   

References find_reg_note(), ggc_alloc(), NULL_RTX, NULL_TREE, SYMBOL_REF_DECL, and XEXP.

Referenced by insn_callee_abi(), and self_recursive_call_p().

◆ get_call_rtx_from()

rtx get_call_rtx_from ( const rtx_insn * insn)
extern
Return the CALL in X if there is one.   

References GET_CODE, ggc_alloc(), MEM_P, NULL_RTX, PATTERN(), SET, SET_SRC, XEXP, and XVECEXP.

Referenced by emit_call_1(), old_insns_match_p(), prepare_call_arguments(), and scan_insn().

◆ get_condition()

rtx get_condition ( rtx_insn * jump,
rtx_insn ** earliest,
int allow_cc_mode,
int valid_at_insn_p )
extern
Given a JUMP_INSN, return a canonical description of the test
being made.   
Given a jump insn JUMP, return the condition that will cause it to branch
to its JUMP_LABEL.  If the condition cannot be understood, or is an
inequality floating-point comparison which needs to be reversed, 0 will
be returned.

If EARLIEST is nonzero, it is a pointer to a place where the earliest
insn used in locating the condition was found.  If a replacement test
of the condition is desired, it should be placed in front of that
insn and we will be sure that the inputs are still valid.  If EARLIEST
is null, the returned condition will be valid at INSN.

If ALLOW_CC_MODE is nonzero, allow the condition returned to be a
compare CC mode register.

VALID_AT_INSN_P is the same as for canonicalize_condition.   

References any_condjump_p(), canonicalize_condition(), GET_CODE, ggc_alloc(), JUMP_LABEL, JUMP_P, label_ref_label(), NULL_RTX, pc_set(), SET_SRC, and XEXP.

Referenced by bb_estimate_probability_locally(), check_simple_exit(), fis_get_condition(), simplify_using_initial_values(), and try_head_merge_bb().

◆ get_first_label_num()

int get_first_label_num ( void )
extern
Return first label number used in this function (if any were used).   

References first_label_num.

Referenced by compute_alignments(), init_eliminable_invariants(), and reload_combine().

◆ get_first_nonnote_insn()

rtx_insn * get_first_nonnote_insn ( void )
extern
Return the first nonnote insn emitted in current sequence or current
function.  This routine looks inside SEQUENCEs.   

References GET_CODE, get_insns(), ggc_alloc(), next_insn(), NONJUMP_INSN_P, NOTE_P, and PATTERN().

◆ get_full_rtx_cost()

void get_full_rtx_cost ( rtx x,
machine_mode mode,
enum rtx_code outer,
int opno,
struct full_rtx_costs * c )
extern
Fill in the structure C with information about both speed and size rtx
costs for X, which is operand OPNO in an expression with code OUTER.   

References rtx_cost(), full_rtx_costs::size, and full_rtx_costs::speed.

Referenced by get_full_set_rtx_cost(), and get_full_set_src_cost().

◆ get_full_set_rtx_cost()

void get_full_set_rtx_cost ( rtx x,
struct full_rtx_costs * c )
inline
Like set_rtx_cost, but return both the speed and size costs in C.   

References get_full_rtx_cost(), and ggc_alloc().

Referenced by move2add_use_add2_insn(), move2add_use_add3_insn(), and reload_cse_move2add().

◆ get_full_set_src_cost()

void get_full_set_src_cost ( rtx x,
machine_mode mode,
struct full_rtx_costs * c )
inline
Like set_src_cost, but return both the speed and size costs in C.   

References get_full_rtx_cost(), and SET.

Referenced by reload_cse_move2add().

◆ get_index_code()

enum rtx_code get_index_code ( const struct address_info * info)
extern
Return the "index code" of INFO, in the form required by
ok_for_base_p_1.   

References GET_CODE, and ggc_alloc().

Referenced by base_plus_disp_to_reg(), base_to_reg(), and process_address_1().

◆ get_index_scale()

HOST_WIDE_INT get_index_scale ( const struct address_info * info)
extern
Return the scale applied to *INFO->INDEX_TERM, or 0 if the index is
more complicated than that.   

References CONST_INT_P, GET_CODE, ggc_alloc(), HOST_WIDE_INT_1, INTVAL, and XEXP.

Referenced by equiv_address_substitution(), index_part_to_reg(), and process_address_1().

◆ get_insn_name()

◆ get_integer_term()

HOST_WIDE_INT get_integer_term ( const_rtx x)
extern
Return the value of the integer term in X, if one is apparent;
otherwise return 0.
Only obvious integer terms are detected.
This is used in cse.cc with the `related_value' field.   

References CONST_INT_P, GET_CODE, ggc_alloc(), INTVAL, and XEXP.

Referenced by use_related_value().

◆ get_last_insn_anywhere()

rtx_insn * get_last_insn_anywhere ( void )
extern
Emission of insns (adding them to the doubly-linked list).   
Return the last insn emitted, even if it is in a sequence now pushed.   

References get_current_sequence(), sequence_stack::last, and sequence_stack::next.

◆ get_last_nonnote_insn()

rtx_insn * get_last_nonnote_insn ( void )
extern
Return the last nonnote insn emitted in current sequence or current
function.  This routine looks inside SEQUENCEs.   

References get_last_insn(), ggc_alloc(), NONJUMP_INSN_P, NOTE_P, PATTERN(), and previous_insn().

◆ get_max_insn_count()

int get_max_insn_count ( void )
extern
Return the number of actual (non-debug) insns emitted in this
function.   

References cur_debug_insn_uid, cur_insn_uid, and ggc_alloc().

Referenced by alloc_hash_table(), and alloc_hash_table().

◆ get_mem_attrs()

◆ get_mode_bounds()

void get_mode_bounds ( scalar_int_mode mode,
int sign,
scalar_int_mode target_mode,
rtx * mmin,
rtx * mmax )
extern
In stor-layout.cc.   
Gets minimal and maximal values for MODE (signed or unsigned depending on
SIGN).  The returned constants are made to be usable in TARGET_MODE.   

References gcc_assert, gen_int_mode(), GET_MODE_PRECISION(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_1U, and STORE_FLAG_VALUE.

Referenced by determine_max_iter(), iv_number_of_iterations(), shorten_into_mode(), and simplify_const_relational_operation().

◆ get_pool_constant()

rtx get_pool_constant ( const_rtx addr)
extern
Given a constant pool SYMBOL_REF, return the corresponding constant.   

References SYMBOL_REF_CONSTANT.

Referenced by avoid_constant_pool_reference(), get_some_local_dynamic_name(), mark_jump_label_1(), noce_try_abs(), plus_constant(), replace_label(), and rtx_referenced_p().

◆ get_pool_constant_mark()

rtx get_pool_constant_mark ( rtx addr,
bool * pmarked )
extern
Given a constant pool SYMBOL_REF, return the corresponding constant
and whether it has been output or not.   

References constant_descriptor_rtx::constant, ggc_alloc(), constant_descriptor_rtx::mark, and SYMBOL_REF_CONSTANT.

Referenced by const_ok_for_output_1().

◆ get_pool_mode()

fixed_size_mode get_pool_mode ( const_rtx addr)
extern

◆ get_referenced_operands()

void get_referenced_operands ( const char * string,
bool * used,
unsigned int noperands )
extern
Parse inline assembly string STRING and determine which operands are
referenced by % markers.  For the first NOPERANDS operands, set USED[I]
to true if operand I is referenced.

This is intended to distinguish barrier-like asms such as:

   asm ("" : "=m" (...));

from real references such as:

   asm ("sw\t$0, %0" : "=m" (...));   

References ggc_alloc().

◆ get_reg_base_value()

rtx get_reg_base_value ( unsigned int regno)
extern
Return REG_BASE_VALUE for REGNO.  Selective scheduler uses this to avoid
using hard registers with non-null REG_BASE_VALUE for renaming.   

References reg_base_value.

◆ get_reg_known_equiv_p()

bool get_reg_known_equiv_p ( unsigned int regno)
extern
Similarly for reg_known_equiv_p.   

References bitmap_bit_p, ggc_alloc(), reg_known_equiv_p, reg_known_value, and vec_safe_length().

◆ get_reg_known_value()

rtx get_reg_known_value ( unsigned int regno)
extern
If a value is known for REGNO, return it.   

References ggc_alloc(), NULL, reg_known_value, and vec_safe_length().

Referenced by canon_rtx(), and init_alias_analysis().

◆ get_related_value()

rtx get_related_value ( const_rtx x)
extern
If X is a constant, return the value sans apparent integer term;
otherwise return 0.
Only obvious integer terms are detected.   

References CONST_INT_P, GET_CODE, ggc_alloc(), and XEXP.

Referenced by insert_with_costs(), and use_related_value().

◆ get_stack_check_protect()

HOST_WIDE_INT get_stack_check_protect ( void )
extern
Return the number of bytes to "protect" on the stack for -fstack-check.

"protect" in the context of -fstack-check means how many bytes we need
to always ensure are available on the stack; as a consequence, this is
also how many bytes are first skipped when probing the stack.

On some targets we want to reuse the -fstack-check prologue support
to give a degree of protection against stack clashing style attacks.

In that scenario we do not want to skip bytes before probing as that
would render the stack clash protections useless.

So we never use STACK_CHECK_PROTECT directly.  Instead we indirectly
use it through this helper, which allows to provide different values
for -fstack-check and -fstack-clash-protection.   

References ggc_alloc().

Referenced by allocate_dynamic_stack_space().

◆ globalize_reg()

◆ gt_ggc_mx()

void gt_ggc_mx ( rtx & )
extern
gtype-desc.cc.   

◆ gt_pch_nx() [1/2]

void gt_pch_nx ( rtx & )
extern

◆ gt_pch_nx() [2/2]

void gt_pch_nx ( rtx & ,
gt_pointer_operator ,
void *  )
extern

◆ hash_rtx()

unsigned hash_rtx ( const_rtx x,
machine_mode mode,
int * do_not_record_p,
int * hash_arg_in_memory_p,
bool have_reg_qty,
hash_rtx_callback_function cb )
extern
Hash an rtx.  We are careful to make sure the value is never negative.
Equivalent registers hash identically.
MODE is used in hashing for CONST_INTs only;
otherwise the mode of X is used.

Store 1 in DO_NOT_RECORD_P if any subexpression is volatile.

If HASH_ARG_IN_MEMORY_P is not NULL, store 1 in it if X contains
a MEM rtx which does not have the MEM_READONLY_P flag set.

Note that cse_insn knows that the hash code of a MEM expression
is just (int) MEM plus the hash code of the address.

Call CB on each rtx if CB is not NULL.
When the callback returns true, we continue with the new rtx.   

References arg_pointer_rtx, ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_CONSTRAINT, ASM_OPERANDS_INPUT_LENGTH, ASM_OPERANDS_OUTPUT_CONSTRAINT, ASM_OPERANDS_OUTPUT_IDX, ASM_OPERANDS_TEMPLATE, CODE_LABEL_NUMBER, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, CONST_DOUBLE_REAL_VALUE, CONST_FIXED_VALUE, CONST_POLY_INT_COEFFS, CONST_VECTOR_ENCODED_ELT, const_vector_encoded_nelts(), CONST_WIDE_INT_ELT, CONST_WIDE_INT_NUNITS, fixed_hash(), fixed_regs, frame_pointer_rtx, gcc_unreachable, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), global_regs, hard_frame_pointer_rtx, hash_rtx(), hash_rtx_string(), i, INTVAL, label_ref_label(), MEM_P, MEM_READONLY_P, MEM_VOLATILE_P, table_elt::mode, NULL, NUM_POLY_INT_COEFFS, pic_offset_table_rtx, real_hash(), REG_P, REG_QTY, REGNO, reload_completed, stack_pointer_rtx, SUBREG_BYTE, SUBREG_REG, TARGET_SUPPORTS_WIDE_INT, targetm, XEXP, XINT, XSTR, XVECEXP, and XVECLEN.

Referenced by canon_hash(), invariant_group_base_hasher::hash(), pre_ldst_expr_hasher::hash(), st_expr_hasher::hash(), hash_expr(), hash_expr(), hash_invariant_expr_1(), hash_rtx(), ldst_entry(), safe_hash(), st_expr_entry(), and temp_slot_address_compute_hash().

◆ immed_double_const()

rtx immed_double_const ( HOST_WIDE_INT i0,
HOST_WIDE_INT i1,
machine_mode mode )
extern
Return a CONST_DOUBLE or CONST_INT for a value specified as a pair
of ints: I0 is the low-order word and I1 is the high-order word.
For values that are larger than HOST_BITS_PER_DOUBLE_INT, the
implied upper bits are copies of the high bit of i1.  The value
itself is neither signed nor unsigned.  Do not use this routine for
non-integer modes; convert to REAL_VALUE_TYPE and use
const_double_from_real_value.   

References CONST_DOUBLE_FORMAT, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, GEN_INT, gen_int_mode(), GET_MODE_BITSIZE(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, i, i1, lookup_const_double(), PUT_MODE(), rtx_alloc(), and XWINT.

Referenced by immed_wide_int_const_1().

◆ immed_wide_int_const()

rtx immed_wide_int_const ( const poly_wide_int_ref & c,
machine_mode mode )
extern

◆ in_insn_list_p()

bool in_insn_list_p ( const rtx_insn_list * listp,
const rtx_insn * node )
extern
Search LISTP (an EXPR_LIST) for an entry whose first operand is NODE and
return 1 if it is found.  A simple equality test is used to determine if
NODE matches.   

References ggc_alloc(), and XEXP.

Referenced by remove_node_from_insn_list().

◆ in_sequence_p()

bool in_sequence_p ( void )
extern
Return true if currently emitting into a sequence.   

References get_current_sequence(), and sequence_stack::next.

Referenced by expand_dummy_function_end(), expand_function_end(), leaf_function_p(), and resolve_simple_move().

◆ init_alias_analysis()

◆ init_alias_target()

◆ init_costs_to_max()

void init_costs_to_max ( struct full_rtx_costs * c)
inline
Initialize a full_rtx_costs structure C to the maximum cost.   

References MAX_COST, full_rtx_costs::size, and full_rtx_costs::speed.

Referenced by move2add_use_add3_insn().

◆ init_costs_to_zero()

void init_costs_to_zero ( struct full_rtx_costs * c)
inline
Initialize a full_rtx_costs structure C to zero cost.   

References full_rtx_costs::size, and full_rtx_costs::speed.

Referenced by move2add_use_add3_insn().

◆ init_derived_machine_modes()

void init_derived_machine_modes ( void )
extern

◆ init_emit()

◆ init_emit_once()

◆ init_emit_regs()

◆ init_expmed()

◆ init_fake_stack_mems()

void init_fake_stack_mems ( void )
extern
Initialize some fake stack-frame MEM references for use in
memory_move_secondary_cost.   

References gen_rtx_MEM(), ggc_alloc(), i, stack_pointer_rtx, and top_of_stack.

Referenced by backend_init_target().

◆ init_lower_subreg()

void init_lower_subreg ( void )
extern
In lower-subreg.cc  
Do one-per-target initialisation.  This involves determining
which operations on the machine are profitable.  If none are found,
then the pass just returns when called.   

References compute_costs(), const0_rtx, gen_rtx_REG(), GET_MODE_2XWIDER_MODE(), ggc_alloc(), LAST_VIRTUAL_REGISTER, LOG_COSTS, this_target_lower_subreg, twice_word_mode, and word_mode.

Referenced by backend_init_target().

◆ init_raw_REG()

rtx init_raw_REG ( rtx x,
machine_mode mode,
unsigned int regno )
extern
Initialize a fresh REG rtx with mode MODE and register REGNO.   

References NULL, ORIGINAL_REGNO, REG_ATTRS, and set_mode_and_regno().

Referenced by gen_raw_REG().

◆ init_reg_modes_target()

void init_reg_modes_target ( void )
extern
Compute the table of register modes.
  These values are used to record death information for individual registers
  (as opposed to a multi-register mode).
  This function might be invoked more than once, if the target has support
  for changing register usage conventions on a per-function basis.

References choose_hard_reg_mode(), ggc_alloc(), hard_regno_nregs(), i, NULL, reg_raw_mode, targetm, this_target_regs, and word_mode.

Referenced by init_emit_regs().

◆ init_reg_sets()

void init_reg_sets ( void )
extern
Function called only once per target_globals to initialize the
target_hard_regs structure.  Once this is done, various switches
may override.   

References accessible_reg_set, call_used_regs, CLEAR_HARD_REG_SET, fixed_regs, gcc_assert, ggc_alloc(), i, init_reg_class_start_regs(), initial_call_used_regs, initial_fixed_regs, initial_reg_names, int_reg_class_contents, operand_reg_set, reg_alloc_order, reg_class_contents, reg_names, SET_HARD_REG_BIT, and SET_HARD_REG_SET.

Referenced by general_init().

◆ init_regs()

void init_regs ( void )
extern
Finish initializing the register sets and initialize the register modes.
  This function might be invoked more than once, if the target has support
  for changing register usage conventions on a per-function basis.

References init_reg_sets_1().

Referenced by add_removable_extension(), backend_init(), reinit_regs(), and target_reinit().

◆ init_rtlanal()

◆ init_subregs_of_mode()

◆ init_varasm_once()

◆ insn_cost()

int insn_cost ( rtx_insn * insn,
bool speed )
extern
Calculate the cost of a single instruction.  A return value of zero
indicates an instruction pattern without a known cost.   

References PATTERN(), pattern_cost(), and targetm.

Referenced by bb_ok_for_noce_convert_multiple_sets(), canonicalize_comparison(), cheap_bb_rtx_cost_p(), combine_instructions(), combine_validate_cost(), find_shift_sequence(), output_asm_name(), rtl_account_profile_record(), and seq_cost().

◆ insn_could_throw_p()

bool insn_could_throw_p ( const_rtx insn)
extern

◆ insn_discriminator()

int insn_discriminator ( const rtx_insn * insn)
extern
Return discriminator of the statement that produced this insn.   

References compute_discriminator(), and INSN_LOCATION().

Referenced by notice_source_line(), and rtx_writer::print_rtx_operand_code_i().

◆ insn_file()

const char * insn_file ( const rtx_insn * insn)
extern
Return source file of the statement that produced this insn.   

References INSN_LOCATION(), and LOCATION_FILE.

◆ INSN_HAS_LOCATION()

◆ insn_line()

int insn_line ( const rtx_insn * insn)
extern
In emit-rtl.cc   
Return line number of the statement that produced this insn.   

References INSN_LOCATION(), and LOCATION_LINE.

◆ insn_location()

expanded_location insn_location ( const rtx_insn * insn)
extern
Return expanded location of the statement that produced this insn.   

References expand_location(), and INSN_LOCATION().

Referenced by notice_source_line(), and rtx_writer::print_rtx_operand_code_i().

◆ INSN_LOCATION() [1/2]

◆ INSN_LOCATION() [2/2]

unsigned int & INSN_LOCATION ( rtx_insn * insn)
inline

References XUINT.

◆ insn_locations_finalize()

void insn_locations_finalize ( void )
extern
At the end of emit stage, clear current location.   

References curr_location, epilogue_location, and UNKNOWN_LOCATION.

Referenced by expand_thunk().

◆ insn_locations_init()

void insn_locations_init ( void )
extern
Allocate insn location datastructure.   

References curr_location, epilogue_location, prologue_location, and UNKNOWN_LOCATION.

Referenced by compile_file(), and expand_thunk().

◆ insn_nothrow_p()

◆ insn_scope()

tree insn_scope ( const rtx_insn * insn)
extern
Return lexical scope block insn belongs to.   

References INSN_LOCATION(), and LOCATION_BLOCK.

Referenced by reemit_insn_block_notes().

◆ INSN_UID()

int & INSN_UID ( const_rtx insn)
inline
ACCESS MACROS for particular fields of insns.   
Holds a unique number for each insn.
These are not necessarily sequentially increasing.   

References RTL_INSN_CHAIN_FLAG_CHECK.

Referenced by add_regs_to_insn_regno_info(), add_removable_extension(), add_store_equivs(), align_fuzz(), alloc_mem(), fixup_insn_uid::apply(), assign_spill_hard_regs(), build_def_use(), bypass_block(), calculate_gen_cands(), can_combine_p(), check_and_process_move(), check_for_label_ref(), check_mem_read_rtx(), clear_hashed_info_for_insn(), combine_predictions_for_insn(), combine_reaching_defs(), combine_validate_cost(), compute_store_table(), cond_exec_find_if_block(), copy_delay_slot_insn(), copyprop_hardreg_forward_1(), cprop_insn(), cprop_jump(), create_cand(), create_new_chain(), create_new_invariant(), create_pseudo_cfg(), curr_insn_transform(), dbr_schedule(), dead_debug_global_replace_temp(), dead_debug_insert_temp(), dead_debug_promote_uses(), dead_debug_reset_uses(), debug_rtx_find(), delete_address_reloads_1(), delete_dead_jumptables(), delete_dead_store_insn(), delete_noop_moves(), delete_unmarked_insns(), df_chain_create_bb(), df_chain_insn_bottom_dump(), df_chain_insn_top_dump(), df_insn_change_bb(), df_insn_debug(), df_insn_debug_regno(), df_insn_delete(), df_insn_refs_verify(), df_insn_rescan(), df_insn_rescan_debug_internal(), df_live_bb_local_compute(), df_md_bb_local_compute(), df_mir_bb_local_compute(), df_note_bb_compute(), df_notes_rescan(), df_print_note(), df_rd_bb_local_compute(), df_reorganize_refs_by_insn_bb(), df_scan_free_bb_info(), do_local_cprop(), do_remat(), dse_step1(), dse_step5(), dse_step6(), dump_basic_block_info(), dump_cselib_val(), dump_def_use_chain(), dump_eh_tree(), dump_inc_insn(), dump_insn_info(), dump_mem_insn(), emit_barrier(), emit_barrier_after(), emit_barrier_before(), emit_jump_table_data(), emit_label(), emit_label_after(), emit_label_before(), emit_reload_insns(), equiv_address_substitution(), final_1(), find_and_remove_re(), find_call_stack_args(), find_equiv_reg(), find_moveable_pseudos(), find_reload_regno_insns(), find_reload_regs(), get_attr_length_1(), get_jump_flags(), get_reload_reg(), get_trace_info(), function_reader::handle_insn_uids(), handle_simple_exit(), trace_info_hasher::hash(), iv_split_hasher::hash(), var_expand_hasher::hash(), hoist_code(), in_class_p(), inherit_in_ebb(), initialize_uninitialized_regs(), insert_insn_end_basic_block(), insn_addresses_new(), insn_current_reference_address(), insn_dominated_by_p(), insn_uid_check(), invalidate_insn_data_regno_info(), ira_former_scratch_operand_p(), ira_register_new_scratch_op(), ira_remove_insn_scratches(), ira_restore_scratches(), ira_update_equiv_info_by_shuffle_insn(), log_op_type(), lra_coalesce(), lra_constraints(), lra_get_insn_recog_data(), lra_invalidate_insn_data(), lra_pop_insn(), lra_push_insn_1(), lra_set_insn_recog_data(), lra_split_hard_reg_for(), lra_update_insn_recog_data(), make_call_insn_raw(), make_debug_insn_raw(), make_defs_and_copies_lists(), make_insn_raw(), make_jump_insn_raw(), make_label_edge(), make_note_raw(), mark_insn(), mark_reg_dependencies(), mark_tablejump_edge(), mark_target_live_regs(), marked_insn_p(), maybe_record_trace_start(), merge_def_and_ext(), merge_in_block(), move_freq_compare_func(), move_unallocated_pseudos(), narrow_reload_pseudo_class(), output_asm_name(), pre_delete(), pre_insert_copy_insn(), prescan_insns_for_dce(), print_insn(), print_insn_chain(), print_rtl_with_bb(), rtx_writer::print_rtx(), rtx_writer::print_rtx_operand_code_0(), rtx_writer::print_rtx_operand_code_u(), print_value(), process_addr_reg(), process_alt_operands(), process_bb_lives(), process_bb_node_lives(), rtx_reader::read_rtx_code(), record_reg_classes(), record_store(), redirect_jump_2(), regrename_analyze(), regstat_bb_compute_calls_crossed(), remove_inheritance_pseudos(), remove_pseudos(), remove_reachable_equiv_notes(), rename_chains(), replace_oldest_value_reg(), replace_read(), replace_store_insn(), resolve_shift_zext(), rest_of_clean_state(), rtl_verify_bb_insn_chain(), rtl_verify_bb_insns(), rtl_verify_bb_pointers(), scan_insn(), scan_one_insn(), scan_rtx_reg(), scan_trace(), set_new_first_and_last_insn(), shorten_branches(), spill_failure(), spill_hard_reg_in_range(), spill_pseudos(), spill_pseudos(), split_if_necessary(), try_combine(), try_fwprop_subst_note(), try_redirect_by_replacing_jump(), try_shrink_wrapping(), try_simplify_condjump(), undo_optional_reloads(), val_resolve(), val_store(), and word_dce_process_block().

◆ invert_jump()

bool invert_jump ( rtx_jump_insn * jump,
rtx nlabel,
int delete_unused )
extern
Invert the condition of the jump JUMP, and make it jump to label
NLABEL instead of where it jumps now.  Return true if successful.   

References apply_change_group(), cancel_changes(), ggc_alloc(), invert_jump_1(), JUMP_LABEL, and redirect_jump_2().

Referenced by fix_up_fall_thru_edges(), fixup_reorder_chain(), optimize_skip(), relax_delay_slots(), set_edge_can_fallthru_flag(), try_optimize_cfg(), and try_simplify_condjump().

◆ invert_jump_1()

bool invert_jump_1 ( rtx_jump_insn * jump,
rtx nlabel )
extern
Invert the condition of the jump JUMP, and make it jump to label
NLABEL instead of where it jumps now.  Accrue changes into the
change group.  Return false if we didn't see how to perform the
inversion and redirection.   

References gcc_assert, ggc_alloc(), invert_exp_1(), JUMP_LABEL, NULL, num_validated_changes(), pc_set(), redirect_jump_1(), and SET_SRC.

Referenced by dead_or_predicable(), and invert_jump().

◆ JUMP_LABEL_AS_INSN()

rtx_insn * JUMP_LABEL_AS_INSN ( const rtx_insn * insn)
inline

◆ jump_table_for_label()

rtx_jump_table_data * jump_table_for_label ( const rtx_code_label * label)
inline
If LABEL is followed by a jump table, return the table, otherwise
return null.   

References ggc_alloc(), and NEXT_INSN().

Referenced by final_scan_insn_1(), and shorten_branches().

◆ jump_to_label_p()

bool jump_to_label_p ( const rtx_insn * insn)
extern
Return true iff INSN is a jump and its JUMP_LABEL is a label, not
NULL or a return.   

References ANY_RETURN_P, JUMP_LABEL, JUMP_P, and NULL.

Referenced by delete_related_insns(), fill_simple_delay_slots(), fill_slots_from_thread(), insn_current_reference_address(), and make_return_insns().

◆ keep_with_call_p()

bool keep_with_call_p ( const rtx_insn * insn)
extern
Return true if we should avoid inserting code between INSN and preceding
call instruction.   

References fixed_regs, general_operand(), ggc_alloc(), i2, INSN_P, keep_with_call_p(), next_nonnote_insn(), NULL, REG_P, REGNO, SET_DEST, SET_SRC, single_set(), stack_pointer_rtx, and targetm.

Referenced by keep_with_call_p(), rtl_block_ends_with_call_p(), and rtl_flow_call_edges_add().

◆ label_is_jump_target_p()

bool label_is_jump_target_p ( const_rtx label,
const rtx_insn * jump_insn )
extern
Return true if LABEL is a target of JUMP_INSN.  This applies only
to non-complex jumps.  That is, direct unconditional, conditional,
and tablejumps, but not computed jumps or returns.  It also does
not apply to the fallthru case of a conditional jump.   

References find_reg_note(), GET_NUM_ELEM, ggc_alloc(), i, JUMP_LABEL, NULL, RTVEC_ELT, table, tablejump_p(), and XEXP.

Referenced by cfg_layout_redirect_edge_and_branch(), check_for_label_ref(), find_reloads(), subst_reloads(), and try_optimize_cfg().

◆ label_ref_label()

◆ last_call_insn()

rtx_call_insn * last_call_insn ( void )
extern
Return the last CALL_INSN in the current list, or 0 if there is none.
This routine does not look inside SEQUENCEs.   

References CALL_P, get_last_insn(), ggc_alloc(), and PREV_INSN().

Referenced by emit_call_1(), emit_library_call_value_1(), expand_builtin_apply(), and expand_call().

◆ load_extend_op()

rtx_code load_extend_op ( machine_mode mode)
inline
If loads from memories of mode MODE always sign or zero extend,
return SIGN_EXTEND or ZERO_EXTEND as appropriate.  Return UNKNOWN
otherwise.   

References BITS_PER_WORD, GET_MODE_PRECISION(), ggc_alloc(), and LOAD_EXTEND_OP.

Referenced by cse_insn(), expand_single_bit_test(), fold_unary_loc(), free_load_extend(), make_compound_operation_int(), nonzero_bits1(), num_sign_bit_copies1(), reload_cse_simplify_operands(), reload_cse_simplify_set(), simplify_comparison(), simplify_set(), and try_combine().

◆ loc_mentioned_in_p()

bool loc_mentioned_in_p ( rtx * loc,
const_rtx in )
extern
Return true if IN contains a piece of rtl that has the address LOC.   

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, loc_mentioned_in_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by df_remove_dead_eq_notes(), loc_mentioned_in_p(), and remove_address_replacements().

◆ lookup_constant_def()

rtx lookup_constant_def ( tree exp)
extern
Look up EXP in the table of constant descriptors.  Return the rtl
if it has been emitted, else null.   

References const_desc_htab, const_hash_1(), exp(), constant_descriptor_tree::hash, NULL_RTX, constant_descriptor_tree::rtl, and constant_descriptor_tree::value.

Referenced by cst_pool_loc_descr(), decode_addr_const(), and expand_debug_expr().

◆ low_bitmask_len()

int low_bitmask_len ( machine_mode mode,
unsigned HOST_WIDE_INT m )
extern
If M is a bitmask that selects a field of low-order bits within an item but
not the entire word, return the length of the field.  Return -1 otherwise.
M is used in machine mode MODE.   

References exact_log2(), GET_MODE_MASK, ggc_alloc(), and HWI_COMPUTABLE_MODE_P().

Referenced by try_widen_shift_mode().

◆ lowpart_subreg()

◆ lowpart_subreg_regno()

int lowpart_subreg_regno ( unsigned int regno,
machine_mode xmode,
machine_mode ymode )
extern
A wrapper around simplify_subreg_regno that uses subreg_lowpart_offset
(xmode, ymode) as the offset.   

References ggc_alloc(), offset, simplify_subreg_regno(), and subreg_lowpart_offset().

Referenced by gen_memset_value_from_prev().

◆ make_compound_operation()

rtx make_compound_operation ( rtx x,
enum rtx_code in_code )
extern
Look at the expression rooted at X.  Look for expressions
equivalent to ZERO_EXTRACT, SIGN_EXTRACT, ZERO_EXTEND, SIGN_EXTEND.
Form these expressions.

Return the new rtx, usually just X.

Also, for machines like the VAX that don't have logical shift insns,
try to convert logical to arithmetic shift operations in cases where
they are equivalent.  This undoes the canonicalizations to logical
shifts done elsewhere.

We try, as much as possible, to re-use rtl expressions to save memory.

IN_CODE says what kind of expression we are processing.  Normally, it is
SET.  In a memory address it is MEM.  When processing the arguments of
a comparison or a COMPARE against zero, it is COMPARE, or EQ if more
precisely it is an equality comparison against zero.   

References COMPARISON_P, const0_rtx, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, make_compound_operation(), make_compound_operation_int(), maybe_swap_commutative_operands(), SET, simplify_unary_operation(), SUBST, XEXP, XVECEXP, and XVECLEN.

Referenced by combine_simplify_rtx(), make_compound_operation(), make_compound_operation_int(), propagate_for_debug_subst(), simplify_comparison(), simplify_if_then_else(), and simplify_set().

◆ make_debug_expr_from_rtl()

◆ make_insn_raw()

◆ make_safe_from()

rtx make_safe_from ( rtx x,
rtx other )
extern
Copy X if necessary so that it won't be altered by changes in OTHER.
Return X or the rtx for the pseudo reg the value of X was copied into.
OTHER must be valid as a SET_DEST.   

References CONSTANT_P, emit_move_insn(), gen_reg_rtx(), GET_CODE, GET_MODE, ggc_alloc(), MEM_P, reg_mentioned_p(), REG_P, REGNO, SUBREG_REG, and XEXP.

◆ mark_elimination()

void mark_elimination ( int from,
int to )
extern
Indicate that hard register number FROM was eliminated and replaced with
an offset from hard register number TO.  The status of hard registers live
at the start of a basic block is updated by replacing a use of FROM with
a use of TO.   

References bitmap_bit_p, bitmap_clear_bit(), bitmap_set_bit, cfun, df_live, DF_LIVE_IN, DF_LR_IN, FOR_EACH_BB_FN, and r.

Referenced by reload().

◆ mark_jump_label()

void mark_jump_label ( rtx x,
rtx_insn * insn,
int in_mem )
extern
Find all CODE_LABELs referred to in X, and increment their use
counts.  If INSN is a JUMP_INSN and there is at least one
CODE_LABEL referenced in INSN as a jump target, then store the last
one in JUMP_LABEL (INSN).  For a tablejump, this must be the label
for the ADDR_VEC.  Store any other jump targets as REG_LABEL_TARGET
notes.  If INSN is an INSN or a CALL_INSN or non-target operands of
a JUMP_INSN, and there is at least one CODE_LABEL referenced in
INSN, add a REG_LABEL_OPERAND note containing that label to INSN.
For returnjumps, the JUMP_LABEL will also be set as appropriate.

Note that two labels separated by a loop-beginning note
must be kept distinct if we have not yet done loop-optimization,
because the gap between them is where loop-optimize
will want to move invariant code to.  CROSS_JUMP tells us
that loop-optimization is done with.   

References extract_asm_operands(), ggc_alloc(), JUMP_P, mark_jump_label_1(), mark_jump_label_asm(), NULL, and PATTERN().

Referenced by emit_copy_of_insn_after(), gen_reload(), mark_all_labels(), mark_jump_label_1(), move_insn_for_shrink_wrap(), try_combine(), and try_split().

◆ mark_reg_pointer()

◆ mark_user_reg()

void mark_user_reg ( rtx reg)
extern
Identify REG (which may be a CONCAT) as a user register.   

References gcc_assert, GET_CODE, ggc_alloc(), REG_P, REG_USERVAR_P, and XEXP.

Referenced by adjust_one_expanded_partition_var(), assign_parm_setup_reg(), and expand_one_register_var().

◆ max_label_num()

int max_label_num ( void )
extern
Return 1 + the largest label number used so far in the current function.   

References label_num.

Referenced by compute_alignments(), grow_label_align(), init_eliminable_invariants(), reload_combine(), shorten_branches(), and update_alignments().

◆ max_reg_num()

int max_reg_num ( void )
extern
In emit-rtl.cc.   
Return 1 plus largest pseudo reg number used in the current function.   

References reg_rtx_no.

Referenced by allocate_reg_info(), assign_by_spills(), build_conflicts(), build_store_vectors(), calculate_equiv_gains(), cleanup_cfg(), combine_and_move_insns(), combine_split_insns(), compute_hash_table_work(), compute_store_table(), create_cands(), create_live_range_start_chains(), create_log_links(), cse_main(), cselib_init(), curr_insn_transform(), dead_or_predicable(), decompose_multiword_subregs(), df_grow_reg_info(), df_print_word_regset(), dump_reg_info(), expand_reg_data(), expand_reg_info(), expand_reg_info(), find_costs_and_classes(), find_moveable_pseudos(), fix_reg_equiv_init(), fwprop_done(), gcse_or_cprop_is_too_expensive(), grow_reg_equivs(), if_convert(), init_alias_analysis(), init_costs(), init_live_reload_and_inheritance_pseudos(), init_lives(), init_loop_tree_node(), init_reg_info(), init_regno_assign_info(), init_subregs_of_mode(), initiate_allocnos(), initiate_regno_cost_classes(), ira(), ira_emit(), ira_expand_reg_equiv(), ira_flattening(), ira_print_disposition(), ira_set_pseudo_classes(), ira_sort_regnos_for_alter_reg(), lra(), lra_assign(), lra_clear_live_ranges(), lra_coalesce(), lra_constrain_insn(), lra_constraints(), lra_create_live_ranges_1(), lra_create_new_reg_with_unique_value(), lra_emit_add(), lra_emit_move(), lra_final_code_change(), lra_init_equiv(), lra_need_for_scratch_reg_p(), lra_need_for_spills_p(), lra_remat(), lra_spill(), lra_split_hard_reg_for(), lra_update_reg_val_offset(), maybe_memory_address_addr_space_p(), print_live_ranges(), print_pseudo_costs(), propagate_allocno_info(), rebuild_regno_allocno_maps(), regno_clobbered_at_setjmp(), regstat_compute_calls_crossed(), regstat_compute_ri(), regstat_init_n_sets_and_refs(), remove_some_program_points_and_update_live_ranges(), remove_unnecessary_allocnos(), resize_reg_info(), rest_of_handle_combine(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_cse_after_global_opts(), run_rtl_passes(), setup_live_pseudos_and_spill_after_risky_transforms(), setup_min_max_allocno_live_range_point(), setup_preferred_alternate_classes_for_new_pseudos(), setup_reg_classes(), setup_reg_equiv_init(), spill_pseudos(), and try_combine().

◆ may_alias_p()

bool may_alias_p ( const_rtx mem,
const_rtx x )
extern
Check whether X may be aliased with MEM.  Don't do offset-based
memory disambiguation & TBAA.   

References ALIAS_SET_MEMORY_BARRIER, base_alias_check(), find_base_term(), get_addr(), GET_CODE, GET_MODE, ggc_alloc(), MEM_ADDR_SPACE, MEM_ALIAS_SET, MEM_READONLY_P, MEM_VOLATILE_P, nonoverlapping_memrefs_p(), rtx_refs_may_alias_p(), and XEXP.

◆ may_be_sp_based_p()

bool may_be_sp_based_p ( rtx x)
extern
Return true if accesses to address X may alias accesses based
on the stack pointer.   

References find_base_term(), ggc_alloc(), and static_reg_base_value.

Referenced by record_store(), and store_killed_in_insn().

◆ may_trap_or_fault_p()

bool may_trap_or_fault_p ( const_rtx x)
extern
Same as above, but additionally return true if evaluating rtx X might
cause a fault.  We define a fault for the purpose of this function as a
erroneous execution condition that cannot be encountered during the normal
execution of a valid program; the typical example is an unaligned memory
access on a strict alignment machine.  The compiler guarantees that it
doesn't generate code that will fault from a valid program, but this
guarantee doesn't mean anything for individual instructions.  Consider
the following example:

   struct S { int d; union { char *cp; int *ip; }; };

   int foo(struct S *s)
   {
     if (s->d == 1)
       return *s->ip;
     else
       return *s->cp;
   }

on a strict alignment machine.  In a valid program, foo will never be
invoked on a structure for which d is equal to 1 and the underlying
unique field of the union not aligned on a 4-byte boundary, but the
expression *s->ip might cause a fault if considered individually.

At the RTL level, potentially problematic expressions will almost always
verify may_trap_p; for example, the above dereference can be emitted as
(mem:SI (reg:P)) and this expression is may_trap_p for a generic register.
However, suppose that foo is inlined in a caller that causes s->cp to
point to a local character variable and guarantees that s->d is not set
to 1; foo may have been effectively translated into pseudo-RTL as:

   if ((reg:SI) == 1)
     (set (reg:SI) (mem:SI (%fp - 7)))
   else
     (set (reg:QI) (mem:QI (%fp - 7)))

Now (mem:SI (%fp - 7)) is considered as not may_trap_p since it is a
memory reference to a stack slot, but it will certainly cause a fault
on a strict alignment machine.   

References may_trap_p_1().

Referenced by can_move_insns_across(), fill_simple_delay_slots(), fill_slots_from_thread(), find_invariant_insn(), noce_try_cmove_arith(), noce_try_sign_mask(), steal_delay_list_from_fallthrough(), steal_delay_list_from_target(), and update_equiv_regs().

◆ may_trap_p()

◆ may_trap_p_1()

bool may_trap_p_1 ( const_rtx x,
unsigned flags )
extern
Return true if evaluating rtx X might cause a trap.
FLAGS controls how to consider MEMs.  A true means the context
of the access may have changed from the original, such that the
address may have become invalid.   

References CASE_CONST_ANY, const0_rtx, CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_ELT, CONST_VECTOR_ENCODED_ELT, CONSTANT_P, FLOAT_MODE_P, GET_CODE, GET_MODE, GET_MODE_NUNITS(), GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), HONOR_NANS(), HONOR_SNANS(), i, may_trap_p_1(), MEM_NOTRAP_P, MEM_SIZE, MEM_SIZE_KNOWN_P, MEM_VOLATILE_P, rtx_addr_can_trap_p_1(), stack_pointer_rtx, targetm, XEXP, XVECEXP, and XVECLEN.

Referenced by default_unspec_may_trap_p(), may_trap_or_fault_p(), may_trap_p(), and may_trap_p_1().

◆ maybe_set_first_label_num()

void maybe_set_first_label_num ( rtx_code_label * x)
extern
If the rtx for label was created during the expansion of a nested
function, then first_label_num won't include this label number.
Fix this now so that array indices work later.   

References CODE_LABEL_NUMBER, and first_label_num.

Referenced by expand_label().

◆ memory_modified_in_insn_p()

bool memory_modified_in_insn_p ( const_rtx mem,
const_rtx insn )
extern
Return true when INSN possibly modify memory contents of MEM
(i.e. address can be modified).   

References CALL_P, CONST_CAST_RTX, ggc_alloc(), INSN_P, memory_modified, memory_modified_1(), and note_stores().

Referenced by modified_between_p(), and modified_in_p().

◆ mode_signbit_p()

◆ modified_between_p()

bool modified_between_p ( const_rtx x,
const rtx_insn * start,
const rtx_insn * end )
extern
Similar to reg_set_between_p, but check all registers in X.  Return false
only if none of them are modified between START and END.  Return true if
X contains a MEM; this routine does use memory aliasing.   

References CASE_CONST_ANY, end(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_READONLY_P, memory_modified_in_insn_p(), modified_between_p(), NEXT_INSN(), reg_set_between_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by can_combine_p(), canonicalize_condition(), check_cond_move_block(), cprop_jump(), cse_condition_code_reg(), find_call_crossed_cheap_reg(), find_moveable_pseudos(), modified_between_p(), no_conflict_move_test(), noce_process_if_block(), and try_combine().

◆ modified_in_p()

◆ move_by_pieces()

rtx move_by_pieces ( rtx to,
rtx from,
unsigned HOST_WIDE_INT len,
unsigned int align,
memop_ret retmode )
extern
In expr.cc  
Generate several move instructions to copy LEN bytes from block FROM to
block TO.  (These are MEM rtx's with BLKmode).

If PUSH_ROUNDING is defined and TO is NULL, emit_single_push_insn is
used to push FROM to the stack.

ALIGN is maximum stack alignment we can assume.

Return value is based on RETMODE argument.   

References gcc_unreachable, ggc_alloc(), NULL, and RETURN_BEGIN.

Referenced by emit_block_move_hints(), and emit_push_insn().

◆ multiple_sets()

bool multiple_sets ( const_rtx insn)
extern

◆ narrower_subreg_mode()

machine_mode narrower_subreg_mode ( machine_mode outermode,
machine_mode innermode )
inline
Given that a subreg has outer mode OUTERMODE and inner mode INNERMODE,
return the smaller of the two modes if they are different sizes,
otherwise return the outer mode.   

References ggc_alloc(), and paradoxical_subreg_p().

Referenced by update_costs_from_allocno().

◆ native_decode_rtx()

rtx native_decode_rtx ( machine_mode mode,
const vec< target_unit > & bytes,
unsigned int first_byte )
extern
Read an rtx of mode MODE from the target memory image given by BYTES,
starting at byte FIRST_BYTE.  Each element of BYTES contains BITS_PER_UNIT
bits and the bytes are in target memory order.  The image has enough
values to specify all bytes of MODE.

Return the rtx on success, otherwise return NULL_RTX.   

References ALL_SCALAR_FIXED_POINT_MODE_P, CEIL, const_double_from_real_value(), CONST_FIXED_FROM_FIXED_VALUE, FIXED_VALUE_TYPE, gcc_assert, GET_MODE_BITSIZE(), GET_MODE_NUNITS(), GET_MODE_PRECISION(), GET_MODE_SIZE(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, i, immed_wide_int_const(), MIN, native_decode_vector_rtx(), NULL_RTX, r, real_from_target(), REAL_VALUE_TYPE, subreg_size_lsb(), subreg_size_offset_from_lsb(), poly_int< N, C >::to_constant(), VECTOR_MODE_P, and wi::zero().

Referenced by c_readstr(), native_decode_vector_rtx(), and simplify_immed_subreg().

◆ native_decode_vector_rtx()

rtx native_decode_vector_rtx ( machine_mode mode,
const vec< target_unit > & bytes,
unsigned int first_byte,
unsigned int npatterns,
unsigned int nelts_per_pattern )
extern
Read a vector of mode MODE from the target memory image given by BYTES,
starting at byte FIRST_BYTE.  The vector is known to be encodable using
NPATTERNS interleaved patterns with NELTS_PER_PATTERN elements each,
and BYTES is known to have enough bytes to supply NPATTERNS *
NELTS_PER_PATTERN vector elements.  Each element of BYTES contains
BITS_PER_UNIT bits and the bytes are in target memory order.

Return the vector on success, otherwise return NULL_RTX.   

References gcc_assert, gen_int_mode(), GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_NUNITS(), GET_MODE_PRECISION(), ggc_alloc(), i, native_decode_rtx(), NULL_RTX, and vector_element_size.

Referenced by native_decode_rtx(), and simplify_const_vector_subreg().

◆ native_encode_rtx()

bool native_encode_rtx ( machine_mode mode,
rtx x,
vec< target_unit > & bytes,
unsigned int first_byte,
unsigned int num_bytes )
extern
Try to calculate NUM_BYTES bytes of the target memory image of X,
starting at byte FIRST_BYTE.  Return true on success and add the
bytes to BYTES, such that each byte has BITS_PER_UNIT bits and such
that the bytes follow target memory order.  Leave BYTES unmodified
on failure.

MODE is the mode of X.  The caller must reserve NUM_BYTES bytes in
BYTES before calling this function.   

References CONST_DOUBLE_P, CONST_DOUBLE_REAL_VALUE, CONST_FIXED_VALUE_HIGH, CONST_FIXED_VALUE_LOW, CONST_SCALAR_INT_P, CONST_VECTOR_ELT, gcc_assert, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_MASK, GET_MODE_NUNITS(), GET_MODE_PRECISION(), GET_MODE_SIZE(), GET_MODE_UNIT_SIZE, ggc_alloc(), HOST_BITS_PER_WIDE_INT, i, INTVAL, MIN, native_encode_rtx(), real_to_target(), shift, subreg_size_lsb(), poly_int< N, C >::to_constant(), and vector_element_size.

Referenced by native_encode_rtx(), optimize_constant_pool(), simplify_const_vector_subreg(), and simplify_immed_subreg().

◆ next_active_insn()

rtx_insn * next_active_insn ( rtx_insn * insn)
extern

◆ NEXT_INSN()

rtx_insn * NEXT_INSN ( const rtx_insn * insn)
inline

References ggc_alloc(), and XEXP.

Referenced by _succ_iter_cond(), add_cfis_to_fde(), add_equal_note(), add_insn_after_nobb(), add_store_equivs(), apply_opt_in_copies(), asan_clear_shadow(), assign_parm_setup_reg(), bb_note(), find_comparison_dom_walker::before_dom_children(), before_next_cfi_note(), block_jumps_and_fallthru(), build_def_use(), can_combine_p(), can_move_insns_across(), cfg_layout_can_duplicate_bb_p(), cfg_layout_can_merge_blocks_p(), cfg_layout_delete_block(), cfg_layout_duplicate_bb(), cfg_layout_merge_blocks(), cfg_layout_split_edge(), change_sp_offset(), cheap_bb_rtx_cost_p(), check_cond_move_block(), check_sibcall_argument_overlap(), cleanup_barriers(), combine_and_move_insns(), combine_instructions(), combine_reaching_defs(), combine_reload_insn(), combine_stack_adjustments_for_block(), combine_var_copies_in_loop_exit(), commit_one_edge_insertion(), compute_bb_for_insn(), cond_exec_process_if_block(), cond_exec_process_insns(), connect_traces(), construct_exit_block(), construct_init_block(), contains_call_div_mod(), contains_no_active_insn_p(), convert_to_eh_region_ranges(), copy_reg_eh_region_note_forward(), copyprop_hardreg_forward_1(), count_bb_insns(), create_basic_block_structure(), create_cands(), create_pseudo_cfg(), cse_cc_succs(), cse_change_cc_mode_insns(), cse_condition_code_reg(), curr_insn_transform(), dbr_schedule(), dead_or_predicable(), debug_rtx_find(), debug_rtx_list(), debug_rtx_range(), decompose_multiword_subregs(), decrease_live_ranges_number(), delete_address_reloads(), delete_address_reloads_1(), delete_dead_jumptables(), delete_for_peephole(), delete_from_delay_slot(), delete_insn(), delete_insn_and_edges(), delete_noop_moves(), delete_output_reload(), delete_related_insns(), delete_trivially_dead_insns(), delete_vta_debug_insns(), discover_loops(), distribute_links(), doloop_optimize(), doloop_valid_p(), dump_rtl_slim(), duplicate_insn_chain(), eliminate_partially_redundant_load(), emit_barrier_after_bb(), emit_debug_insn(), emit_inc_dec_insn_before(), emit_input_reload_insns(), emit_insn(), emit_insn_after_1(), emit_jump_insn(), emit_libcall_block_1(), emit_move_list(), emit_moves(), emit_note_insn_var_location(), emit_output_reload_insns(), emit_pattern_after_setloc(), emit_pattern_before_noloc(), emit_pattern_before_setloc(), emit_to_new_bb_before(), end_ifcvt_sequence(), expand_binop_directly(), expand_builtin_apply(), expand_builtin_apply_args(), expand_case(), expand_debug_locations(), expand_doubleword_divmod(), expand_doubleword_mod(), expand_function_end(), expand_gimple_basic_block(), expand_gimple_cond(), expand_gimple_tailcall(), expand_sjlj_dispatch_table(), expand_unop_direct(), fill_eager_delay_slots(), fill_simple_delay_slots(), final(), final_1(), final_scan_insn_1(), final_start_function_1(), find_active_insn_after(), find_bb_boundaries(), find_cond_trap(), find_dead_or_set_registers(), find_jump_block(), find_moveable_pseudos(), find_reload_regno_insns(), find_shift_sequence(), find_single_use(), find_split_point(), first_active_insn(), first_insn_after_basic_block_note(), fix_crossing_unconditional_branches(), fixup_abnormal_edges(), fixup_debug_insns(), fixup_eh_region_note(), fixup_reorder_chain(), fixup_tail_calls(), flow_find_head_matching_sequence(), follow_jumps(), force_nonfallthru_and_redirect(), free_bb_for_insn(), gen_reload(), get_bb_avail_insn(), get_some_local_dynamic_name(), function_reader::handle_insn_uids(), inherit_reload_reg(), init_eliminable_invariants(), init_label_info(), insert_insn_end_basic_block(), insert_insn_start_basic_block(), inside_basic_block_p(), insn_current_reference_address(), instantiate_virtual_regs(), internal_arg_pointer_based_exp_scan(), ira_update_equiv_info_by_shuffle_insn(), iv_analyze(), jump_table_for_label(), leaf_function_p(), lra_process_new_insns(), lra_split_hard_reg_for(), make_edges(), make_return_insns(), mark_all_labels(), mark_constant_pool(), mark_referenced_resources(), maybe_cleanup_end_of_block(), maybe_dump_rtl_for_gimple_stmt(), maybe_emit_unop_insn(), memref_used_between_p(), merge_blocks_move_successor_nojumps(), merge_if_block(), modified_between_p(), next_active_insn(), next_active_insn_bb(), next_insn(), next_insn_no_annul(), next_non_note_insn_var_location(), next_nondebug_insn(), next_nonnote_insn(), next_nonnote_nondebug_insn(), next_nonnote_nondebug_insn_bb(), next_real_insn(), next_real_nondebug_insn(), no_labels_between_p(), noce_convert_multiple_sets(), noce_convert_multiple_sets_1(), noce_get_alt_condition(), note_add_store(), own_thread_p(), function_reader::parse_insn(), peep2_attempt(), peephole2_optimize(), rtx_writer::print_rtl(), print_rtl_with_bb(), print_rtx_function(), process_address_1(), propagate_for_debug(), push_to_sequence(), record_effective_endpoints(), record_insns(), reemit_insn_block_notes(), reg_killed_on_edge(), reg_killed_on_edge(), reg_scan(), reg_set_between_p(), reg_used_between_p(), reg_used_on_edge(), relax_delay_slots(), reload(), reload_as_needed(), reload_cse_move2add(), remove_barriers_from_footer(), remove_insn(), remove_reachable_equiv_notes(), reorder_blocks_1(), reorder_insns(), reorder_insns_nobb(), replace_read(), replace_store_insn(), reposition_prologue_and_epilogue_notes(), reset_all_used_flags(), resolve_shift_zext(), rest_of_clean_state(), rtl_dump_bb(), rtl_flow_call_edges_add(), rtl_merge_blocks(), rtl_split_block(), rtl_split_edge(), rtl_tidy_fallthru_edge(), rtl_verify_bb_insns(), rtl_verify_bb_layout(), rtl_verify_bb_pointers(), rtl_verify_fallthru(), save_call_clobbered_regs(), scan_loop(), scan_trace(), seq_cost(), set_insn_locations(), set_last_insn(), set_new_first_and_last_insn(), set_nothrow_function_flags(), setup_sp_offset(), shorten_branches(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_mark_call_sites(), skip_consecutive_labels(), skip_insns_after_block(), spill_hard_reg_in_range(), spill_pseudos(), split_all_insns(), split_all_insns_noflow(), split_insn(), split_reg(), switch_text_sections_between_p(), thread_jump(), thread_prologue_and_epilogue_insns(), try_combine(), try_crossjump_to_edge(), try_head_merge_bb(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_shrink_wrapping(), try_split(), unique_locus_on_edge_between_p(), unlink_insn_chain(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), update_bb_for_insn_chain(), update_cfg_for_uncondjump(), update_equiv_regs(), validate_equiv_mem(), verify_insn_chain(), verify_rtl_sharing(), and vt_stack_adjustments().

◆ next_insn()

◆ next_nondebug_insn()

rtx_insn * next_nondebug_insn ( rtx_insn * insn)
extern
Return the next insn after INSN that is not a DEBUG_INSN.  This
routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, and NEXT_INSN().

Referenced by constprop_register().

◆ next_nonnote_insn()

◆ next_nonnote_nondebug_insn()

rtx_insn * next_nonnote_nondebug_insn ( rtx_insn * insn)
extern
Return the next insn after INSN that is not a NOTE nor DEBUG_INSN.
This routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, NEXT_INSN(), and NOTE_P.

Referenced by distribute_notes(), find_moveable_pseudos(), reload_cse_move2add(), rtl_verify_bb_layout(), rtx_renumbered_equal_p(), try_combine(), try_redirect_by_replacing_jump(), and update_cfg_for_uncondjump().

◆ next_nonnote_nondebug_insn_bb()

rtx_insn * next_nonnote_nondebug_insn_bb ( rtx_insn * insn)
extern
Return the next insn after INSN that is not a NOTE nor DEBUG_INSN,
but stop the search before we enter another basic block.  This
routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, NEXT_INSN(), NOTE_INSN_BASIC_BLOCK_P, NOTE_P, and NULL.

Referenced by get_last_bb_insn(), and setup_sp_offset().

◆ next_real_insn()

rtx_insn * next_real_insn ( rtx_insn * insn)
extern
Return the next INSN, CALL_INSN, JUMP_INSN or DEBUG_INSN after INSN;
or 0, if there is none.  This routine does not look inside
SEQUENCEs.   

References INSN_P, and NEXT_INSN().

Referenced by decrease_live_ranges_number(), expand_gimple_stmt(), and mark_transaction_restart_calls().

◆ next_real_nondebug_insn()

rtx_insn * next_real_nondebug_insn ( rtx uncast_insn)
extern
Return the next INSN, CALL_INSN or JUMP_INSN after INSN;
or 0, if there is none.  This routine does not look inside
SEQUENCEs.   

References ggc_alloc(), NEXT_INSN(), and NONDEBUG_INSN_P.

Referenced by fill_simple_delay_slots(), and relax_delay_slots().

◆ no_labels_between_p()

bool no_labels_between_p ( const rtx_insn * beg,
const rtx_insn * end )
extern
Return true if in between BEG and END, exclusive of BEG and END, there is
no CODE_LABEL insn.   

References end(), LABEL_P, and NEXT_INSN().

Referenced by fill_simple_delay_slots(), and relax_delay_slots().

◆ nonzero_address_p()

◆ nonzero_bits()

◆ noop_move_p()

bool noop_move_p ( const rtx_insn * insn)
extern
Return true if an insn consists only of SETs, each of which only sets a
value to itself.   

References COND_EXEC_CODE, GET_CODE, ggc_alloc(), i, INSN_CODE, NOOP_MOVE_INSN_CODE, set_of_data::pat, PATTERN(), SET, set_noop_p(), XVECEXP, and XVECLEN.

Referenced by copyprop_hardreg_forward_1(), delete_noop_moves(), delete_unmarked_insns(), distribute_notes(), and find_rename_reg().

◆ note_pattern_stores()

void note_pattern_stores ( const_rtx x,
void(*)(rtx, const_rtx, void *) fun,
void * data )
extern
Call FUN on each register or MEM that is stored into or clobbered by X.
 (X would be the pattern of an insn).  DATA is an arbitrary pointer,
 ignored by note_stores, but passed to FUN.

 FUN receives three arguments:
 1. the REG, MEM or PC being stored in or clobbered,
 2. the SET or CLOBBER rtx that does the store,
 3. the pointer DATA provided to note_stores.

If the item being stored in or clobbered is a SUBREG of a hard register,
the SUBREG will be passed.   

References COND_EXEC_CODE, GET_CODE, ggc_alloc(), i, note_pattern_stores(), REG_P, REGNO, SET, SET_DEST, SUBREG_REG, XEXP, XVECEXP, and XVECLEN.

Referenced by cselib_record_sets(), note_pattern_stores(), note_stores(), reload(), set_of(), single_set_gcse(), try_combine(), and update_equiv_regs().

◆ note_stores()

◆ note_uses()

void note_uses ( rtx * pbody,
void(*)(rtx *, void *) fun,
void * data )
extern
Like notes_stores, but call FUN for each expression that is being
referenced in PBODY, a pointer to the PATTERN of an insn.  We only call
FUN for each expression, not any interior subexpressions.  FUN receives a
pointer to the expression and the DATA passed to this function.

Note that this is not quite the same test as that done in reg_referenced_p
since that considers something as being referenced if it is being
partially set, while we do not.   

References ASM_OPERANDS_INPUT, ASM_OPERANDS_INPUT_LENGTH, COND_EXEC_CODE, COND_EXEC_TEST, GET_CODE, ggc_alloc(), i, MEM_P, note_uses(), PATTERN(), SET, SET_DEST, SET_SRC, TRAP_CONDITION, XEXP, XVECEXP, and XVECLEN.

Referenced by add_with_sets(), adjust_insn(), bypass_block(), combine_instructions(), copyprop_hardreg_forward_1(), cprop_insn(), find_call_stack_args(), insert_one_insn(), local_cprop_pass(), note_uses(), scan_insn(), try_shrink_wrapping(), and validate_replace_src_group().

◆ num_sign_bit_copies()

◆ offset_within_block_p()

bool offset_within_block_p ( const_rtx symbol,
HOST_WIDE_INT offset )
extern
Return true if SYMBOL is a SYMBOL_REF and OFFSET + SYMBOL points
to somewhere in the same object or object_block as SYMBOL.   

References CONSTANT_POOL_ADDRESS_P, GET_CODE, GET_MODE_SIZE(), get_pool_mode(), ggc_alloc(), int_size_in_bytes(), offset, SYMBOL_REF_BLOCK, SYMBOL_REF_BLOCK_OFFSET, SYMBOL_REF_DECL, SYMBOL_REF_HAS_BLOCK_INFO_P, and TREE_TYPE.

◆ onlyjump_p()

◆ operand_subword()

rtx operand_subword ( rtx op,
poly_uint64 offset,
int validate_address,
machine_mode mode )
extern
Return subword OFFSET of operand OP.
 The word number, OFFSET, is interpreted as the word number starting
 at the low-order address.  OFFSET 0 is the low-order word if not
 WORDS_BIG_ENDIAN, otherwise it is the high-order word.

 If we cannot extract the required word, we return zero.  Otherwise,
 an rtx corresponding to the requested word will be returned.

 VALIDATE_ADDRESS is nonzero if the address should be validated.  Before
 reload has completed, a valid address will always be returned.  After
 reload, if a valid address cannot be returned, we return zero.

 If VALIDATE_ADDRESS is zero, we simply form the required address; validating
 it is the responsibility of the caller.

 MODE is the mode of OP in case it is a CONST_INT.

 ??? This is still rather broken for some cases.  The problem for the
 moment is that all callers of this thing provide no 'goal mode' to
 tell us to work with.  This exists because all callers were written
 in a word based SUBREG world.
 Now use of this function can be deprecated by simplify_subreg in most
 cases.

References adjust_address_nv, const0_rtx, gcc_assert, GET_MODE, GET_MODE_SIZE(), ggc_alloc(), maybe_gt, MEM_ADDR_SPACE, MEM_P, offset, reload_completed, replace_equiv_address(), simplify_gen_subreg(), strict_memory_address_addr_space_p(), word_mode, and XEXP.

Referenced by convert_mode_scalar(), copy_blkmode_from_reg(), copy_blkmode_to_reg(), emit_move_multi_word(), expand_absneg_bit(), expand_binop(), expand_copysign_bit(), expand_doubleword_bswap(), expand_doubleword_mult(), expand_unop(), extract_integral_bit_field(), find_equiv_reg(), move_block_from_reg(), and operand_subword_force().

◆ operand_subword_force()

rtx operand_subword_force ( rtx op,
poly_uint64 offset,
machine_mode mode )
extern

◆ output_constant_def()

rtx output_constant_def ( tree exp,
int defer )
extern
Return an rtx representing a reference to constant data in memory
for the constant expression EXP.

If assembler code for such a constant has already been output,
return an rtx to refer to it.
Otherwise, output such a constant in memory
and generate an rtx for it.

If DEFER is nonzero, this constant can be deferred and output only
if referenced in the function after all optimizations.

`const_desc_table' records which constants already have label strings.   

References add_constant_to_table(), exp(), ggc_alloc(), maybe_output_constant_def_contents(), and constant_descriptor_tree::rtl.

Referenced by expand_expr_constant(), make_decl_rtl(), and output_addressed_constants().

◆ output_dependence()

bool output_dependence ( const_rtx mem,
const_rtx x )
extern
Output dependence: X is written after store in MEM takes place.   

References ggc_alloc(), NULL_RTX, and write_dependence_p().

Referenced by memory_modified_1(), and store_killed_in_pat().

◆ paradoxical_subreg_p() [1/2]

bool paradoxical_subreg_p ( const_rtx x)
inline
Return true if X is a paradoxical subreg, false otherwise.   

References GET_CODE, GET_MODE, ggc_alloc(), paradoxical_subreg_p(), and SUBREG_REG.

◆ paradoxical_subreg_p() [2/2]

bool paradoxical_subreg_p ( machine_mode outermode,
machine_mode innermode )
inline

◆ partial_subreg_p() [1/2]

bool partial_subreg_p ( const_rtx x)
inline
Likewise return true if X is a subreg that is smaller than the inner
register.  Use read_modify_subreg_p to test whether writing to such
a subreg preserves any part of the inner register.   

References GET_CODE, GET_MODE, ggc_alloc(), partial_subreg_p(), and SUBREG_REG.

◆ partial_subreg_p() [2/2]

◆ PATTERN()

rtx & PATTERN ( const_rtx insn)
inline
The body of an insn.   

References XEXP.

Referenced by active_insn_p(), add_stores(), generic_subrtx_iterator< T >::add_subrtxes_to_queue(), add_with_sets(), adjust_insn(), apply_opt_in_copies(), insn_propagation::apply_to_rvalue_1(), arithmetic_flags_clobber_p(), attempt_change(), bb_is_just_return(), block_has_only_trap(), block_jumps_and_fallthru(), build_def_use(), bypass_block(), bypass_conditional_jumps(), calculate_equiv_gains(), calculate_loop_reg_pressure(), calculate_needs_all_insns(), call_from_call_insn(), can_assign_to_reg_without_clobbers_p(), can_combine_p(), can_eliminate_compare(), can_merge_compare_into_arith(), can_move_insns_across(), can_replace_by(), can_split_parallel_of_n_reg_sets(), can_throw_external(), canonicalize_insn(), check_for_inc_dec(), check_for_inc_dec_1(), check_for_label_ref(), check_rtl(), check_sibcall_argument_overlap(), combinable_i3pat(), combine_and_move_insns(), combine_instructions(), combine_stack_adjustments_for_block(), combine_validate_cost(), compare_and_jump_seq(), compute_can_copy(), compute_hash_table(), compute_ld_motion_mems(), compute_regs_asm_clobbered(), computed_jump_p(), cond_exec_process_insns(), condjump_in_parallel_p(), condjump_p(), contains(), contains_call_div_mod(), control_flow_insn_p(), convert_to_eh_region_ranges(), copyprop_hardreg_forward_1(), count_reg_usage(), cprop_insn(), create_bb_allocnos(), create_log_links(), create_trace_edges(), cse_change_cc_mode_insn(), cse_condition_code_reg(), cse_insn(), cse_prescan_path(), cselib_record_sets(), curr_insn_transform(), dbr_schedule(), dead_or_set_regno_p(), decompose_multiword_subregs(), decrease_live_ranges_number(), deletable_insn_p(), delete_address_reloads_1(), delete_dead_insn(), delete_from_delay_slot(), delete_move_and_clobber(), delete_output_reload(), delete_prior_computation(), delete_related_insns(), delete_trivially_dead_insns(), delete_unmarked_insns(), df_get_call_refs(), df_insn_refs_collect(), distribute_links(), distribute_notes(), do_local_cprop(), do_output_reload(), do_remat(), doloop_condition_get(), duplicate_insn_chain(), dwarf2out_frame_debug(), eh_returnjump_p(), eliminate_partially_redundant_load(), eliminate_partially_redundant_loads(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_copy_of_insn_after(), emit_input_reload_insns(), emit_jump_table_data(), emit_move_insn_1(), emit_output_reload_insns(), emit_reload_insns(), equiv_can_be_consumed_p(), expand_gimple_stmt(), extract_insn(), failed_reload(), fill_simple_delay_slots(), fill_slots_from_thread(), final_scan_insn_1(), find_args_size_adjust(), find_call_stack_args(), find_cond_trap(), find_dead_or_set_registers(), find_dummy_reload(), find_end_label(), find_equiv_reg(), find_flags_uses_in_insn(), find_inc(), find_invariant_insn(), find_memory(), find_moveable_pseudos(), find_reg_equal_equiv_note(), find_reload_regno_insns(), find_reloads(), find_reloads_address_1(), find_sets_in_insn(), find_single_use(), find_split_point(), fix_crossing_conditional_branches(), fix_crossing_unconditional_branches(), fix_reg_dead_note(), fix_up_fall_thru_edges(), fixup_reorder_chain(), flow_active_insn_p(), flow_find_cross_jump(), follow_jumps(), force_nonfallthru_and_redirect(), forward_propagate_and_simplify(), forward_propagate_into(), free_load_extend(), get_attr_length_1(), get_avail_load_store_reg(), get_branch_condition(), get_call_rtx_from(), rtx_jump_table_data::get_data_mode(), get_eh_region_and_lp_from_rtx(), get_first_nonnote_insn(), rtx_jump_table_data::get_labels(), get_last_nonnote_insn(), get_some_local_dynamic_name(), get_sub_rtx(), hash_scan_insn(), hash_scan_insn(), hash_scan_set(), if_test_bypass_p(), inherit_in_ebb(), init_alias_analysis(), init_eliminable_invariants(), init_elimination(), init_expr_target(), init_label_info(), init_subregs_of_mode(), insert_insn_end_basic_block(), insert_one_insn(), insn_cost(), insn_could_throw_p(), insn_invalid_p(), insn_live_p(), insn_nothrow_p(), insn_stack_adjust_offset_pre_post(), instantiate_virtual_regs(), instantiate_virtual_regs_in_insn(), interesting_dest_for_shprep(), invalidate_from_clobbers(), invalidate_from_sets_and_clobbers(), ira_nullify_asm_goto(), kill_autoinc_value(), last_active_insn(), leaf_function_p(), likely_spilled_retval_p(), link_insn_into_chain(), local_cprop_pass(), location_for_asm(), lra_asm_insn_error(), lra_constraints(), lra_delete_dead_insn(), lra_final_code_change(), lra_process_new_insns(), lra_set_insn_recog_data(), lra_split_hard_reg_for(), lra_update_insn_recog_data(), lra_update_insn_regno_info(), make_call_insn_raw(), make_debug_insn_raw(), make_edges(), make_insn_raw(), make_jump_insn_raw(), make_return_insns(), mark_all_labels(), mark_constants(), mark_constants_in_pattern(), mark_jump_label(), mark_jump_label_1(), mark_referenced_resources(), mark_set_resources(), mark_target_live_regs(), match_reload(), maybe_add_nop_after_section_switch(), maybe_fix_stack_asms(), memref_used_between_p(), merge_if_block(), merge_in_block(), move2add_use_add2_insn(), move_insn_for_shrink_wrap(), move_unallocated_pseudos(), multiple_sets(), need_fake_edge_p(), next_insn(), next_insn_no_annul(), no_conflict_move_test(), noce_emit_all_but_last(), noce_get_alt_condition(), noce_try_cmove_arith(), noop_move_p(), note_add_store(), note_stores(), note_uses(), old_insns_match_p(), one_cprop_pass(), operand_to_remat(), optimize_skip(), outgoing_edges_match(), own_thread_p(), patch_jump_insn(), pc_set(), peep2_attempt(), peephole2_optimize(), pre_insert_copy_insn(), previous_insn(), print_insn(), process_bb_lives(), process_bb_node_lives(), process_insn_for_elimination(), process_invariant_for_inheritance(), purge_dead_edges(), push_reload(), recog_for_combine_1(), recog_memoized(), record_out_operands(), record_stack_refs(), record_store(), redirect_exp_1(), redirect_jump_1(), redirect_with_delay_slots_safe_p(), redundant_insn(), reemit_insn_block_notes(), reg_scan(), reg_set_p(), reg_used_between_p(), reg_used_on_edge(), regno_clobbered_p(), relax_delay_slots(), reload(), reload_as_needed(), reload_combine(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_move2add_invalidate(), reload_cse_simplify(), remove_init_insns(), remove_insn(), replace_label(), reset_all_used_flags(), reset_insn_used_flags(), resolve_debug(), rest_of_clean_state(), return_insn_p(), returnjump_p(), rtl_split_edge(), save_call_clobbered_regs(), scan_insn(), scan_loop(), scan_one_insn(), scan_rtx(), scan_rtx_reg(), scan_trace(), set_for_reg_notes(), set_label_offsets(), set_nonzero_bits_and_sign_copies(), set_of(), set_paradoxical_subreg(), set_return_jump_label(), set_unique_reg_note(), setup_sp_offset(), shorten_branches(), simplejump_or_return_p(), simplejump_p(), simplify_set(), single_set(), single_set_for_csa(), single_set_gcse(), spill_failure(), spill_pseudos(), split_insn(), steal_delay_list_from_fallthrough(), steal_delay_list_from_target(), stop_search_p(), store_data_bypass_p(), store_data_bypass_p_1(), store_killed_in_insn(), thread_jump(), thread_prologue_and_epilogue_insns(), transform_ifelse(), try_apply_stack_adjustment(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_fwprop_subst_pattern(), try_merge_compare(), try_merge_delay_insns(), try_optimize_cfg(), try_shrink_wrapping(), try_split(), rtx_properties::try_to_add_insn(), undo_optional_reloads(), unshare_all_rtl_again(), unshare_all_rtl_in_chain(), update_equiv_regs(), update_inc_notes(), update_ld_motion_stores(), update_reg_dead_notes(), validate_replace_rtx(), validate_replace_rtx_group(), validate_replace_src_group(), validate_simplify_insn(), verify_changes(), verify_insn_sharing(), verify_rtl_sharing(), and vt_initialize().

◆ pattern_cost()

int pattern_cost ( rtx pat,
bool speed )
extern
Calculate the rtx_cost of a single instruction pattern.  A return value of
zero indicates an instruction pattern without a known cost.   

References COSTS_N_INSNS, GET_CODE, GET_MODE, ggc_alloc(), i, NULL_RTX, SET, SET_DEST, SET_SRC, set_src_cost(), XVECEXP, and XVECLEN.

Referenced by bb_valid_for_noce_process_p(), and insn_cost().

◆ pc_set()

◆ plus_constant()

rtx plus_constant ( machine_mode mode,
rtx x,
poly_int64 c,
bool inplace )
extern
Return an rtx for the sum of X and the integer C, given that X has
mode MODE.  INPLACE is true if X can be modified inplace or false
if it must be treated as immutable.   

References wi::add(), CASE_CONST_SCALAR_INT, const0_rtx, CONST_POLY_INT_P, const_poly_int_value(), CONSTANT_P, CONSTANT_POOL_ADDRESS_P, copy_rtx(), find_constant_term_loc(), force_const_mem(), gcc_assert, gen_int_mode(), gen_lowpart, GET_CODE, GET_MODE, GET_MODE_INNER, get_pool_constant(), get_pool_mode(), ggc_alloc(), immed_wide_int_const(), known_eq, memory_address_p, plus_constant(), RTX_CODE, shared_const_p(), XEXP, and y.

Referenced by addr_side_effect_eval(), adjust_address_1(), adjust_mems(), allocate_dynamic_stack_space(), anti_adjust_stack_and_probe(), anti_adjust_stack_and_probe_stack_clash(), asan_clear_shadow(), asan_emit_stack_protection(), assign_stack_local_1(), autoinc_split(), check_mem_read_rtx(), combine_simplify_rtx(), compute_argument_addresses(), compute_cfa_pointer(), cselib_record_sp_cfa_base_equiv(), cselib_reset_table(), cselib_subst_to_values(), pieces_addr::decide_autoinc(), default_memtag_add_tag(), eliminate_regs_1(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), emit_library_call_value_1(), emit_move_resolve_push(), emit_push_insn(), equiv_address_substitution(), expand_builtin_adjust_descriptor(), expand_builtin_apply(), expand_builtin_apply_args_1(), expand_builtin_extract_return_addr(), expand_builtin_frob_return_addr(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_builtin_return_addr(), expand_builtin_setjmp_setup(), expand_builtin_stack_address(), expand_builtin_stpcpy_1(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_builtin_update_setjmp_buf(), expand_call(), expand_debug_expr(), expand_divmod(), expand_expr_addr_expr_1(), expand_expr_real_2(), expand_movstr(), expand_one_stack_var_at(), find_reg_offset_for_const(), find_reloads_address(), fold_rtx(), force_int_to_mode(), form_sum(), form_sum(), get_addr(), get_dynamic_stack_size(), hwasan_emit_prologue(), hwasan_get_frame_extent(), init_alias_analysis(), init_reload(), insert_const_anchor(), instantiate_virtual_regs_in_rtx(), internal_arg_pointer_based_exp(), lra_eliminate_regs_1(), memory_load_overlap(), offsettable_address_addr_space_p(), plus_constant(), prepare_call_address(), prepare_call_arguments(), prepare_cmp_insn(), probe_stack_range(), push_block(), record_store(), round_push(), rtl_for_decl_location(), simplify_context::simplify_binary_operation_1(), simplify_context::simplify_plus_minus(), simplify_context::simplify_unary_operation_1(), sjlj_emit_function_enter(), sjlj_mark_call_sites(), store_expr(), try_apply_stack_adjustment(), try_store_by_multiple_pieces(), use_anchored_address(), use_related_value(), vt_add_function_parameter(), vt_canonicalize_addr(), and vt_initialize().

◆ poly_int_rtx_p() [1/2]

◆ poly_int_rtx_p() [2/2]

bool poly_int_rtx_p ( const_rtx x,
poly_int64 * res )
inline
Return true if arbitrary value X is an integer constant that can
be represented as a poly_int64.  Store the value in *RES if so,
otherwise leave it unmodified.   

References poly_int< N, C >::coeffs, CONST_INT_P, CONST_POLY_INT_COEFFS, CONST_POLY_INT_P, wi::fits_shwi_p(), i, INTVAL, and NUM_POLY_INT_COEFFS.

◆ pop_topmost_sequence()

void pop_topmost_sequence ( void )
extern
After emitting to the outer-level insn chain, update the outer-level
insn chain, and restore the previous saved state.   

References end_sequence(), get_insns(), get_last_insn(), get_topmost_sequence(), and ggc_alloc().

Referenced by expand_builtin_apply_args(), expand_builtin_saveregs(), and get_arg_pointer_save_area().

◆ prepare_copy_insn()

rtx_insn * prepare_copy_insn ( rtx reg,
rtx exp )
extern

◆ prev_active_insn()

rtx_insn * prev_active_insn ( rtx_insn * insn)
extern
Find the last insn before INSN that really does something.  This routine
does not look inside SEQUENCEs.  After reload this also skips over
standalone USE and CLOBBER insn.   

References active_insn_p(), and PREV_INSN().

Referenced by delete_dead_insn(), merge_blocks_move_successor_nojumps(), and relax_delay_slots().

◆ PREV_INSN()

rtx_insn * PREV_INSN ( const rtx_insn * insn)
inline
Chain insns together in sequence.   
For now these are split in two: an rvalue form:
  PREV_INSN/NEXT_INSN
and an lvalue form:
  SET_NEXT_INSN/SET_PREV_INSN.   

References ggc_alloc(), and XEXP.

Referenced by add_insn_before_nobb(), attempt_change(), bb_valid_for_noce_process_p(), build_insn_chain(), can_combine_p(), can_merge_compare_into_arith(), can_move_insns_across(), cfg_layout_delete_block(), cleanup_barriers(), combine_instructions(), commit_one_edge_insertion(), cond_exec_find_if_block(), connect_traces(), copy_reg_eh_region_note_backward(), create_basic_block_structure(), cse_condition_code_reg(), dead_or_predicable(), debug_rtx_list(), delete_address_reloads(), delete_address_reloads_1(), delete_for_peephole(), delete_from_delay_slot(), delete_insn_chain(), delete_move_and_clobber(), delete_output_reload(), delete_related_insns(), delete_trivially_dead_insns(), discover_loops(), distribute_notes(), eliminate_partially_redundant_load(), emit_delay_sequence(), emit_input_reload_insns(), emit_libcall_block_1(), emit_library_call_value_1(), emit_moves(), emit_pattern_after(), emit_pattern_before(), emit_pattern_before_setloc(), emit_to_new_bb_before(), equivalent_reg_at_start(), expand_builtin_longjmp(), expand_builtin_nonlocal_goto(), expand_call(), expand_call_stmt(), expand_debug_locations(), expand_gimple_basic_block(), expand_gimple_cond(), expand_gimple_tailcall(), fill_simple_delay_slots(), final_scan_insn_1(), find_active_insn_before(), find_bb_boundaries(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_end_label(), find_equiv_reg(), find_first_parameter_load(), find_moveable_store(), find_reload_regno_insns(), fixup_abnormal_edges(), fixup_args_size_notes(), fixup_partitions(), fixup_reorder_chain(), flow_find_cross_jump(), get_bb_avail_insn(), get_label_before(), inherit_in_ebb(), insert_insn_start_basic_block(), insn_current_reference_address(), label_before_next_insn(), last_active_insn(), last_call_insn(), likely_spilled_retval_p(), lra_process_new_insns(), make_return_insns(), mark_referenced_resources(), mark_target_live_regs(), maybe_add_nop_after_section_switch(), maybe_cleanup_end_of_block(), merge_blocks_move_predecessor_nojumps(), next_insn_no_annul(), noce_get_alt_condition(), noce_process_if_block(), outgoing_edges_match(), own_thread_p(), peep2_attempt(), peep2_update_life(), peephole2_optimize(), prev_active_insn(), prev_active_insn_bb(), prev_nondebug_insn(), prev_nonnote_insn(), prev_nonnote_nondebug_insn(), prev_nonnote_nondebug_insn_bb(), prev_real_insn(), prev_real_nondebug_insn(), previous_insn(), process_address_1(), purge_dead_edges(), push_insns(), record_effective_endpoints(), redundant_insn(), reg_dead_at_p(), relax_delay_slots(), reload_as_needed(), reload_combine(), remove_barriers_from_footer(), remove_inheritance_pseudos(), remove_insn(), reorder_insns(), reorder_insns_nobb(), reposition_prologue_and_epilogue_notes(), rtl_block_ends_with_call_p(), rtl_flow_call_edges_add(), rtl_merge_blocks(), rtl_split_block(), rtl_tidy_fallthru_edge(), rtl_verify_bb_insn_chain(), save_call_clobbered_regs(), set_first_insn(), shorten_branches(), simulate_backwards_to_point(), skip_insns_after_block(), split_insn(), store_killed_after(), store_killed_before(), thread_prologue_and_epilogue_insns(), trivially_empty_bb_p(), try_back_substitute_reg(), try_crossjump_to_edge(), try_head_merge_bb(), try_redirect_by_replacing_jump(), try_split(), unique_locus_on_edge_between_p(), unlink_insn_chain(), update_cfg_for_uncondjump(), update_ebb_live_info(), verify_insn_chain(), and walk_to_nondebug_insn().

◆ prev_nondebug_insn()

rtx_insn * prev_nondebug_insn ( rtx_insn * insn)
extern
Return the previous insn before INSN that is not a DEBUG_INSN.
This routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, and PREV_INSN().

Referenced by combine_and_move_insns(), doloop_condition_get(), expand_gimple_basic_block(), and try_forward_edges().

◆ prev_nonnote_insn()

rtx_insn * prev_nonnote_insn ( rtx_insn * insn)
extern

◆ prev_nonnote_nondebug_insn()

rtx_insn * prev_nonnote_nondebug_insn ( rtx_insn * insn)
extern
Return the previous insn before INSN that is not a NOTE nor DEBUG_INSN.
This routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, NOTE_P, and PREV_INSN().

Referenced by canonicalize_condition(), cleanup_barriers(), noce_get_alt_condition(), noce_process_if_block(), noce_try_abs(), and reload_combine_recognize_pattern().

◆ prev_nonnote_nondebug_insn_bb()

rtx_insn * prev_nonnote_nondebug_insn_bb ( rtx_insn * insn)
extern
Return the previous insn before INSN that is not a NOTE nor
DEBUG_INSN, but stop the search before we enter another basic
block.  This routine does not look inside SEQUENCEs.   

References DEBUG_INSN_P, NOTE_INSN_BASIC_BLOCK_P, NOTE_P, NULL, and PREV_INSN().

Referenced by find_bb_boundaries().

◆ prev_real_insn()

rtx_insn * prev_real_insn ( rtx_insn * insn)
extern
Return the last INSN, CALL_INSN, JUMP_INSN or DEBUG_INSN before INSN;
or 0, if there is none.  This routine does not look inside
SEQUENCEs.   

References INSN_P, and PREV_INSN().

Referenced by add_var_loc_to_decl(), and lra_delete_dead_insn().

◆ prev_real_nondebug_insn()

rtx_insn * prev_real_nondebug_insn ( rtx_insn * insn)
extern
Return the last INSN, CALL_INSN or JUMP_INSN before INSN;
or 0, if there is none.  This routine does not look inside
SEQUENCEs.   

References NONDEBUG_INSN_P, and PREV_INSN().

Referenced by move_deaths(), and try_head_merge_bb().

◆ previous_insn()

rtx_insn * previous_insn ( rtx_insn * insn)
extern
Return the previous insn.  If it is a SEQUENCE, return the last insn
of the sequence.   

References ggc_alloc(), NONJUMP_INSN_P, PATTERN(), and PREV_INSN().

Referenced by get_last_nonnote_insn().

◆ print_inline_rtx()

◆ print_mem_expr()

◆ print_rtl()

◆ print_rtl_single()

◆ print_rtl_single_with_indent()

void print_rtl_single_with_indent ( FILE * ,
const_rtx ,
int  )
extern

◆ print_simple_rtl()

void print_simple_rtl ( FILE * outf,
const_rtx x )
extern
Like print_rtl except without all the detail; for example,
if RTX is a CONST_INT then print in decimal format.   

References ggc_alloc(), and NULL.

Referenced by insert_part_to_rtx_on_edge(), insert_rtx_to_part_on_edge(), mark_reg_dependencies(), and replace_read().

◆ push_to_sequence()

void push_to_sequence ( rtx_insn * first)
extern
Set up the insn chain starting with FIRST as the current sequence,
saving the previously current one.  See the documentation for
start_sequence for more information about how to use this function.   

References sequence_stack::first, last, NEXT_INSN(), set_first_insn(), set_last_insn(), and start_sequence().

Referenced by asan_emit_allocas_unpoison(), curr_insn_transform(), emit_input_reload_insns(), emit_output_reload_insns(), expand_builtin_return(), insert_insn_on_edge(), insert_move_for_subreg(), match_reload(), process_addr_reg(), and process_address_1().

◆ push_to_sequence2()

void push_to_sequence2 ( rtx_insn * first,
rtx_insn * last )
extern
Like push_to_sequence, but take the last insn as an argument to avoid
looping through the list.   

References sequence_stack::first, last, set_first_insn(), set_last_insn(), and start_sequence().

Referenced by assign_parm_setup_block(), assign_parm_setup_reg(), assign_parm_setup_stack(), assign_parms_unsplit_complex(), and expand_asm_stmt().

◆ push_topmost_sequence()

void push_topmost_sequence ( void )
extern
Set up the outer-level insn chain
as the current sequence, saving the previously current one.   

References get_topmost_sequence(), ggc_alloc(), set_first_insn(), set_last_insn(), and start_sequence().

Referenced by expand_builtin_apply_args(), expand_builtin_saveregs(), and get_arg_pointer_save_area().

◆ PUT_MODE()

◆ read_dependence()

bool read_dependence ( const_rtx mem,
const_rtx x )
extern
Functions to compute memory dependencies.

Since we process the insns in execution order, we can build tables
to keep track of what registers are fixed (and not aliased), what registers
are varying in known ways, and what registers are varying in unknown
ways.

If both memory references are volatile, then there must always be a
dependence between the two references, since their order cannot be
changed.  A volatile and non-volatile reference can be interchanged
though.

We also must allow AND addresses, because they may generate accesses
outside the object being referenced.  This is used to generate aligned
addresses from unaligned addresses, for instance, the alpha
storeqi_unaligned pattern.   
Read dependence: X is read after read in MEM takes place.  There can
only be a dependence here if both reads are volatile, or if either is
an explicit barrier.   

References ALIAS_SET_MEMORY_BARRIER, MEM_ALIAS_SET, and MEM_VOLATILE_P.

◆ read_modify_subreg_p()

◆ rebuild_jump_labels()

void rebuild_jump_labels ( rtx_insn * f)
extern
This function rebuilds the JUMP_LABEL field and REG_LABEL_TARGET
notes in jumping insns and REG_LABEL_OPERAND notes in non-jumping
instructions and jumping insns that have labels as operands
(e.g. cbranchsi4).   

References rebuild_jump_labels_1().

Referenced by break_superblocks(), cfg_layout_finalize(), indirect_jump_optimize(), function_reader::parse_function(), peephole2_optimize(), rest_of_handle_combine(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_cse_after_global_opts(), and rest_of_handle_gcse2().

◆ rebuild_jump_labels_chain()

void rebuild_jump_labels_chain ( rtx_insn * chain)
extern
This function is like rebuild_jump_labels, but doesn't run over
forced_labels.  It can be used on insn chains that aren't the 
main function chain.   

References rebuild_jump_labels_1().

Referenced by commit_edge_insertions(), and commit_one_edge_insertion().

◆ record_hard_reg_sets()

void record_hard_reg_sets ( rtx x,
const_rtx pat,
void * data )
extern
This function, called through note_stores, collects sets and
clobbers of hard registers in a HARD_REG_SET, which is pointed to
by DATA.   

References add_to_hard_reg_set(), GET_MODE, HARD_REGISTER_P, REG_P, and REGNO.

Referenced by assign_parm_setup_reg(), find_all_hard_reg_sets(), and try_shrink_wrapping().

◆ record_hard_reg_uses()

void record_hard_reg_uses ( rtx * px,
void * data )
extern
Like record_hard_reg_sets, but called through note_uses.   

References find_all_hard_regs(), and ggc_alloc().

Referenced by try_shrink_wrapping().

◆ redirect_jump()

bool redirect_jump ( rtx_jump_insn * jump,
rtx nlabel,
int delete_unused )
extern
Make JUMP go to NLABEL instead of where it jumps now.  If the old
jump target label is unused as a result, it and the code following
it may be deleted.

Normally, NLABEL will be a label, but it may also be a RETURN rtx;
in that case we are to turn the jump into a (possibly conditional)
return insn.

The return value will be true if the change was made, false if it wasn't
(this can only occur when trying to produce return insns).   

References apply_change_group(), epilogue_completed, gcc_unreachable, ggc_alloc(), rtx_jump_insn::jump_label(), redirect_jump_1(), and redirect_jump_2().

Referenced by compare_and_jump_seq(), dbr_schedule(), fix_crossing_conditional_branches(), force_nonfallthru_and_redirect(), patch_jump_insn(), reorg_redirect_jump(), try_optimize_cfg(), and try_redirect_by_replacing_jump().

◆ redirect_jump_1()

bool redirect_jump_1 ( rtx_insn * jump,
rtx nlabel )
extern
Make JUMP go to NLABEL instead of where it jumps now.  Accrue
the modifications into the change group.  Return false if we did
not see how to do that.   

References ASM_OPERANDS_LABEL, ASM_OPERANDS_LABEL_LENGTH, extract_asm_operands(), gcc_assert, GET_CODE, ggc_alloc(), JUMP_LABEL, NULL, NULL_RTX, num_validated_changes(), PATTERN(), redirect_exp_1(), and XVECEXP.

Referenced by dead_or_predicable(), invert_jump_1(), and redirect_jump().

◆ redirect_jump_2()

void redirect_jump_2 ( rtx_jump_insn * jump,
rtx olabel,
rtx nlabel,
int delete_unused,
int invert )
extern
Fix up JUMP_LABEL and label ref counts after OLABEL has been replaced with
NLABEL in JUMP.
If DELETE_UNUSED is positive, delete related insn to OLABEL if its ref
count has dropped to zero.   

References ANY_RETURN_P, confirm_change_group(), CROSSING_JUMP_P, delete_related_insns(), find_reg_note(), gcc_assert, ggc_alloc(), INSN_UID(), invert_br_probabilities(), invert_exp_1(), JUMP_LABEL, LABEL_NUSES, NULL_RTX, redirect_exp_1(), remove_note(), and XEXP.

Referenced by dead_or_predicable(), invert_jump(), and redirect_jump().

◆ refers_to_regno_p() [1/2]

bool refers_to_regno_p ( unsigned int regnum,
const_rtx x,
rtx * loc = NULL )
inline
Overload for refers_to_regno_p for checking a single register.   

References ggc_alloc(), and refers_to_regno_p().

◆ refers_to_regno_p() [2/2]

bool refers_to_regno_p ( unsigned int regno,
unsigned int endregno,
const_rtx x,
rtx * loc )
extern
Return true if register in range [REGNO, ENDREGNO)
appears either explicitly or implicitly in X
other than being stored into.

References contained within the substructure at LOC do not count.
LOC may be zero, meaning don't ignore anything.   

References END_REGNO(), GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, refers_to_regno_p(), REG_P, REGNO, RTX_CODE, SET, SET_DEST, SET_SRC, subreg_nregs(), SUBREG_REG, subreg_regno(), VIRTUAL_REGISTER_NUM_P, XEXP, XVECEXP, and XVECLEN.

Referenced by delete_output_reload(), df_get_call_refs(), distribute_notes(), move_insn_for_shrink_wrap(), refers_to_regno_p(), refers_to_regno_p(), reg_overlap_mentioned_p(), remove_invalid_refs(), and remove_invalid_subreg_refs().

◆ reg_allocno_class()

◆ reg_alternate_class()

◆ reg_class_subset_p()

bool reg_class_subset_p ( reg_class_t c1,
reg_class_t c2 )
extern
Return true if C1 is a subset of C2, i.e., if every register in C1
is also in C2.   

References ggc_alloc(), hard_reg_set_subset_p(), and reg_class_contents.

Referenced by combine_reloads(), default_secondary_reload(), find_reloads(), find_reusable_reload(), push_reload(), push_secondary_reload(), and setup_reg_class_relations().

◆ reg_classes_intersect_p()

bool reg_classes_intersect_p ( reg_class_t c1,
reg_class_t c2 )
extern
In reginfo.cc  
Return true if there is a register that is in both C1 and C2.   

References ggc_alloc(), hard_reg_set_intersect_p(), and reg_class_contents.

Referenced by check_and_make_def_conflict(), check_and_make_def_use_conflict(), choose_reload_regs(), gain_for_invariant(), and make_pseudo_conflict().

◆ reg_mentioned_p()

◆ reg_or_subregno()

unsigned int reg_or_subregno ( const_rtx reg)
extern
Return regno of the register REG and handle subregs too.   

References gcc_assert, GET_CODE, ggc_alloc(), REG_P, REGNO, and SUBREG_REG.

Referenced by gen_reload(), ira_get_dup_out_num(), push_reload(), and try_combine().

◆ reg_overlap_mentioned_p()

bool reg_overlap_mentioned_p ( const_rtx x,
const_rtx in )
extern
Rreturn true if modifying X will affect IN.  If X is a register or a SUBREG,
we check if any register number in X conflicts with the relevant register
numbers.  If X is a constant, return false.  If X is a MEM, return true iff
IN contains a MEM (we don't bother checking for memory addresses that can't
conflict because we expect this to be a rare case.   

References CONSTANT_P, END_REGNO(), gcc_assert, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_P, refers_to_regno_p(), reg_mentioned_p(), reg_overlap_mentioned_p(), REGNO, subreg_nregs(), SUBREG_REG, subreg_regno(), XEXP, XVECEXP, and XVECLEN.

Referenced by add_equal_note(), add_removable_extension(), insn_propagation::apply_to_lvalue_1(), insn_propagation::apply_to_rvalue_1(), bb_valid_for_noce_process_p(), can_combine_p(), check_cond_move_block(), check_for_cc_cmp_clobbers(), check_invalid_inc_dec(), combinable_i3pat(), combine_reaching_defs(), conflicts_with_override(), convert_mode_scalar(), copyprop_hardreg_forward_1(), decrease_live_ranges_number(), delete_prior_computation(), distribute_links(), distribute_notes(), emit_move_complex_parts(), expand_absneg_bit(), expand_asm_stmt(), expand_atomic_compare_and_swap(), expand_binop(), expand_copysign_bit(), expand_expr_real_2(), expand_unop(), fill_slots_from_thread(), find_inc(), gen_reload(), init_alias_analysis(), match_asm_constraints_1(), need_cmov_or_rewire(), no_conflict_move_test(), noce_convert_multiple_sets_1(), noce_get_alt_condition(), noce_process_if_block(), noce_try_store_flag_constants(), process_bb_node_lives(), record_value_for_reg(), reg_overlap_mentioned_p(), reg_referenced_p(), reg_used_between_p(), reg_used_on_edge(), resolve_simple_move(), set_of_1(), subst(), try_combine(), validate_equiv_mem(), and validate_equiv_mem_from_store().

◆ reg_preferred_class()

enum reg_class reg_preferred_class ( int regno)
extern
Return the reg_class in which pseudo reg number REGNO is best allocated.
This function is sometimes called before the info has been computed.
When that happens, just return GENERAL_REGS, which is innocuous.   

References gcc_assert, ggc_alloc(), reg_pref::prefclass, and reg_info_size.

Referenced by dump_reg_info(), find_costs_and_classes(), find_hard_regno_for(), find_reloads(), ira(), ira_bad_reload_regno_1(), ira_get_dup_out_num(), move_invariants(), must_not_spill_p(), setup_preferred_alternate_classes_for_new_pseudos(), update_conflict_hard_reg_costs(), and update_equiv_regs().

◆ reg_referenced_p()

◆ reg_scan()

void reg_scan ( rtx_insn * f,
unsigned int nregs )
extern

◆ reg_set_between_p()

bool reg_set_between_p ( const_rtx reg,
const rtx_insn * from_insn,
const rtx_insn * to_insn )
extern
Return true if register REG is set or clobbered in an insn between
FROM_INSN and TO_INSN (exclusive of those two).   

References ggc_alloc(), INSN_P, NEXT_INSN(), and reg_set_p().

Referenced by bb_valid_for_noce_process_p(), can_combine_p(), combine_reaching_defs(), distribute_notes(), eliminate_partially_redundant_load(), get_bb_avail_insn(), modified_between_p(), and try_combine().

◆ reg_set_p()

◆ reg_used_between_p()

bool reg_used_between_p ( const_rtx reg,
const rtx_insn * from_insn,
const rtx_insn * to_insn )
extern
Return true if register REG is used in an insn between
FROM_INSN and TO_INSN (exclusive of those two).   

References CALL_P, find_reg_fusage(), ggc_alloc(), NEXT_INSN(), NONDEBUG_INSN_P, PATTERN(), and reg_overlap_mentioned_p().

Referenced by can_combine_p(), combine_reaching_defs(), eliminate_partially_redundant_load(), no_conflict_move_test(), and try_combine().

◆ regclass()

void regclass ( rtx ,
int  )
extern

◆ reginfo_cc_finalize()

void reginfo_cc_finalize ( void )
extern

◆ register_asm_p()

bool register_asm_p ( const_rtx x)
extern

◆ regno_use_in()

rtx regno_use_in ( unsigned int regno,
rtx x )
extern
Searches X for any reference to REGNO, returning the rtx of the
reference found if any.  Otherwise, returns NULL_RTX.   

References GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, NULL_RTX, REG_P, REGNO, regno_use_in(), XEXP, XVECEXP, and XVECLEN.

Referenced by regno_use_in().

◆ reinit_regs()

void reinit_regs ( void )
extern
The same as previous function plus initializing IRA.   

References caller_save_initialized_p, init_regs(), ira_init(), recog_init(), and this_target_rtl.

Referenced by globalize_reg().

◆ remove_death()

rtx remove_death ( unsigned int regno,
rtx_insn * insn )
extern
Remove register number REGNO from the dead registers list of INSN.

Return the note used to record the death, if there was one.   

References find_regno_note(), ggc_alloc(), insn_link::insn, insn_link::regno, and remove_note().

Referenced by combine_and_move_insns(), and move_deaths().

◆ remove_free_EXPR_LIST_node()

rtx remove_free_EXPR_LIST_node ( rtx_expr_list ** listp)
extern
Remove and free the first node in the EXPR_LIST pointed to by LISTP.   

References free_EXPR_LIST_node(), ggc_alloc(), remove_list_node(), and XEXP.

◆ remove_free_INSN_LIST_elem()

void remove_free_INSN_LIST_elem ( rtx_insn * elem,
rtx_insn_list ** listp )
extern
Remove and free corresponding to ELEM node in the INSN_LIST pointed to
by LISTP.   

References free_INSN_LIST_node(), ggc_alloc(), and remove_list_elem().

◆ remove_free_INSN_LIST_node()

rtx_insn * remove_free_INSN_LIST_node ( rtx_insn_list ** listp)
extern
Remove and free the first node in the INSN_LIST pointed to by LISTP.   

References free_INSN_LIST_node(), ggc_alloc(), rtx_insn_list::insn(), and remove_list_node().

◆ remove_insn()

void remove_insn ( rtx_insn * insn)
extern
Unlink INSN from the insn chain.

This function knows how to handle sequences.

This function does not invalidate data flow information associated with
INSN (i.e. does not call df_insn_delete).  That makes this function
usable for only disconnecting an insn from the chain, and re-emit it
elsewhere later.

To later insert INSN elsewhere in the insn chain via add_insn and
similar functions, PREV_INSN and NEXT_INSN must be nullified by
the caller.  Nullifying them here breaks many insn chain walks.

To really delete an insn and related DF information, use delete_insn.   

References BARRIER_P, BB_END, BB_HEAD, BLOCK_FOR_INSN(), sequence_stack::first, gcc_assert, GET_CODE, get_current_sequence(), ggc_alloc(), rtx_sequence::insn(), sequence_stack::last, rtx_sequence::len(), sequence_stack::next, NEXT_INSN(), NONJUMP_INSN_P, NOTE_P, PATTERN(), PREV_INSN(), SET_NEXT_INSN(), and SET_PREV_INSN().

Referenced by delete_insn(), emit_delay_sequence(), and resolve_simple_move().

◆ remove_list_elem()

rtx remove_list_elem ( rtx elem,
rtx * listp )
extern
Removes corresponding to ELEM node from the list pointed to by LISTP.
Returns that node.   

References find_list_elem(), ggc_alloc(), and remove_list_node().

Referenced by remove_free_INSN_LIST_elem().

◆ remove_node_from_insn_list()

void remove_node_from_insn_list ( const rtx_insn * node,
rtx_insn_list ** listp )
extern
Search LISTP (an INSN_LIST) for an entry whose first operand is NODE and
remove that entry from the list if it is found.

A simple equality test is used to determine if NODE matches.   

References gcc_checking_assert, ggc_alloc(), in_insn_list_p(), rtx_insn_list::insn(), rtx_insn_list::next(), NULL, and XEXP.

Referenced by delete_insn().

◆ remove_note()

◆ remove_reg_equal_equiv_notes()

bool remove_reg_equal_equiv_notes ( rtx_insn * insn,
bool no_rescan )
extern
Remove REG_EQUAL and/or REG_EQUIV notes if INSN has such notes.
If NO_RESCAN is false and any notes were removed, call
df_notes_rescan.  Return true if any note has been removed.   

References df_notes_rescan(), ggc_alloc(), REG_NOTE_KIND, REG_NOTES, and XEXP.

Referenced by adjust_for_new_dest(), reload_combine_recognize_pattern(), and try_apply_stack_adjustment().

◆ remove_reg_equal_equiv_notes_for_regno()

void remove_reg_equal_equiv_notes_for_regno ( unsigned int regno)
extern
Remove all REG_EQUAL and REG_EQUIV notes referring to REGNO.   

References df, DF_REF_INSN, DF_REG_EQ_USE_CHAIN, find_reg_equal_equiv_note(), gcc_assert, ggc_alloc(), NULL, and remove_note().

Referenced by dead_or_predicable(), and remove_reg_equal_equiv_notes_for_defs().

◆ reorder_insns()

◆ reorder_insns_nobb()

void reorder_insns_nobb ( rtx_insn * from,
rtx_insn * to,
rtx_insn * after )
extern
This function is deprecated, please use sequences instead.

Move a consecutive bunch of insns to a different place in the chain.
The insns to be moved are those between FROM and TO.
They are moved to a new position after the insn AFTER.
AFTER must not be FROM or TO or any insn in between.

This function does not know about SEQUENCEs and hence should not be
called after delay-slot filling has been done.   

References gcc_assert, get_insns(), get_last_insn(), ggc_alloc(), NEXT_INSN(), PREV_INSN(), set_first_insn(), set_last_insn(), SET_NEXT_INSN(), and SET_PREV_INSN().

Referenced by cleanup_barriers(), create_basic_block_structure(), delete_insn(), find_bb_boundaries(), maybe_duplicate_computed_goto(), merge_blocks_move_predecessor_nojumps(), merge_blocks_move_successor_nojumps(), reload_as_needed(), reorder_insns(), and rtl_merge_blocks().

◆ replace_label()

void replace_label ( rtx * loc,
rtx old_label,
rtx new_label,
bool update_label_nuses )
extern
Replace occurrences of the OLD_LABEL in *LOC with NEW_LABEL.  Also track
the change in LABEL_NUSES if UPDATE_LABEL_NUSES.   

References CONSTANT_POOL_ADDRESS_P, copy_rtx(), FOR_EACH_SUBRTX_PTR, force_const_mem(), GET_CODE, GET_NUM_ELEM, get_pool_constant(), get_pool_mode(), ggc_alloc(), i, JUMP_LABEL, JUMP_P, JUMP_TABLE_DATA_P, LABEL_NUSES, PATTERN(), replace_label(), replace_rtx(), RTVEC_ELT, rtx_referenced_p(), XEXP, and XVEC.

Referenced by replace_label(), and replace_label_in_insn().

◆ replace_label_in_insn()

void replace_label_in_insn ( rtx_insn * insn,
rtx_insn * old_label,
rtx_insn * new_label,
bool update_label_nuses )
extern

◆ replace_rtx()

rtx replace_rtx ( rtx x,
rtx from,
rtx to,
bool all_regs )
extern
Replace any occurrence of FROM in X with TO.  The function does
not enter into CONST_DOUBLE for the replace.

Note that copying is not done so X must not be shared unless all copies
are to be modified.

ALL_REGS is true if we want to replace all REGs equal to FROM, not just
those pointer-equal ones.   

References CONST_SCALAR_INT_P, gcc_assert, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, REG_P, REGNO, replace_rtx(), simplify_subreg(), simplify_unary_operation(), SUBREG_BYTE, SUBREG_REG, XEXP, XVECEXP, and XVECLEN.

Referenced by find_split_point(), match_asm_constraints_1(), record_value_for_reg(), replace_label(), and replace_rtx().

◆ reset_used_flags()

void reset_used_flags ( rtx x)
extern
Clear all the USED bits in X to allow copy_rtx_if_shared to be used
to look for shared sub-parts.   

References mark_used_flags().

Referenced by doloop_modify(), reset_insn_used_flags(), try_combine(), and unshare_all_rtl_again().

◆ resize_reg_info()

bool resize_reg_info ( void )
extern
reginfo.cc  
Resize reg info.   
Resize reg info. The new elements will be initialized.  Return TRUE
if new pseudos were added since the last call.   

References allocate_reg_info(), reg_pref::allocnoclass, reg_pref::altclass, gcc_assert, ggc_alloc(), i, max_reg_num(), max_regno_since_last_resize, NULL, reg_pref::prefclass, reg_info_size, and reg_renumber.

Referenced by expand_reg_data(), expand_reg_info(), find_costs_and_classes(), ira(), lra_get_allocno_class(), lra_get_regno_hard_regno(), and move_invariants().

◆ returnjump_p()

◆ reverse_condition()

enum rtx_code reverse_condition ( enum rtx_code code)
extern
In jump.cc  
Given an rtx-code for a comparison, return the code for the negated
comparison.  If no such code exists, return UNKNOWN.

WATCH OUT!  reverse_condition is not safe to use on a jump that might
be acting on the results of an IEEE floating point comparison, because
of the special treatment of non-signaling nans in comparisons.
Use reversed_comparison_code instead.   

References gcc_unreachable, and ggc_alloc().

Referenced by do_compare_rtx_and_jump(), emit_store_flag_force(), emit_store_flag_int(), fold_rtx(), iv_number_of_iterations(), known_cond(), noce_get_condition(), reversed_comparison_code_parts(), and simplify_comparison().

◆ reverse_condition_maybe_unordered()

enum rtx_code reverse_condition_maybe_unordered ( enum rtx_code code)
extern
Similar, but we're allowed to generate unordered comparisons, which
makes it safe for IEEE floating-point.  Of course, we have to recognize
that the target will support them too...   

References gcc_unreachable, and ggc_alloc().

Referenced by do_compare_rtx_and_jump(), emit_store_flag(), emit_store_flag_force(), prepare_float_lib_cmp(), and reversed_comparison_code_parts().

◆ reverse_rotate_by_imm_p()

bool reverse_rotate_by_imm_p ( machine_mode mode,
unsigned int left,
rtx op1 )
extern
Return TRUE if a rotate in mode MODE with a constant count in OP1
should be reversed.

If the rotate should not be reversed, return FALSE.

LEFT indicates if this is a rotate left or a rotate right.   

References CONST_INT_P, GET_MODE_UNIT_PRECISION, ggc_alloc(), IN_RANGE, insn_operand_matches(), INTVAL, and optab_handler().

Referenced by expand_shift_1(), and simplify_context::simplify_binary_operation_1().

◆ reversed_comparison()

rtx reversed_comparison ( const_rtx exp,
machine_mode mode )
extern
Return comparison with reversed code of EXP.
Return NULL_RTX in case we fail to do the reversal.   

References exp(), ggc_alloc(), NULL, NULL_RTX, reversed_comparison_code(), simplify_gen_relational(), and XEXP.

Referenced by simplify_context::simplify_binary_operation_1(), simplify_if_then_else(), and simplify_context::simplify_unary_operation_1().

◆ reversed_comparison_code()

◆ reversed_comparison_code_parts()

enum rtx_code reversed_comparison_code_parts ( enum rtx_code code,
const_rtx arg0,
const_rtx arg1,
const rtx_insn * insn )
extern
Given a comparison (CODE ARG0 ARG1), inside an insn, INSN, return a code
of reversed comparison if it is possible to do so.  Otherwise return UNKNOWN.
UNKNOWN may be returned in case we are having CC_MODE compare and we don't
know whether it's source is floating point or integer comparison.  Machine
description should define REVERSIBLE_CC_MODE and REVERSE_CONDITION macros
to help this function avoid overhead in these cases.   

References CONST_INT_P, GET_CODE, GET_MODE, GET_MODE_CLASS, GET_RTX_CLASS, ggc_alloc(), HONOR_NANS(), LABEL_P, prev_nonnote_insn(), REG_P, REVERSE_CONDITION, reverse_condition(), reverse_condition_maybe_unordered(), REVERSIBLE_CC_MODE, RTX_COMM_COMPARE, RTX_COMPARE, rtx_equal_p(), SET, SET_DEST, set_of(), SET_SRC, and XEXP.

Referenced by combine_simplify_rtx(), emit_conditional_move(), record_jump_equiv(), and reversed_comparison_code().

◆ rhs_regno()

unsigned int rhs_regno ( const_rtx x)
inline
Force the REGNO macro to only be used on the lhs.   

References REG_CHECK.

◆ rtvec_all_equal_p()

bool rtvec_all_equal_p ( const_rtvec vec)
extern
Return true if all elements of VEC are equal.   

References CASE_CONST_UNIQUE, GET_CODE, GET_NUM_ELEM, i, RTVEC_ELT, and rtx_equal_p().

Referenced by gen_rtx_CONST_VECTOR().

◆ rtvec_alloc()

rtvec rtvec_alloc ( size_t n)
extern
Allocate an rtx vector of N elements.
Store the length, and initialize all elements to zero.   

References gcc_assert, ggc_alloc(), ggc_alloc_rtvec_sized, INT_MAX, PUT_NUM_ELEM, rtvec_alloc_counts, and rtvec_alloc_sizes.

Referenced by add_attributes(), adjust_insn(), alter_attrs_for_insn(), rtx_vector_builder::build(), cleanup_auto_inc_dec(), convert_set_attr(), convert_set_attr_alternative(), copy_insn_1(), copy_rtx(), md_reader::copy_rtx_for_iterators(), cselib_expand_value_rtx_1(), decompose_register(), emit_delay_sequence(), emit_group_load_into_temps(), emit_group_move_into_temps(), expand_asm_loc(), expand_asm_memory_blockage(), expand_asm_reg_clobber_mem_blockage(), expand_asm_stmt(), expand_debug_expr(), expand_delays(), expand_vector_broadcast(), gen_mnemonic_setattr(), gen_rewrite_sequence(), gen_rtvec(), gen_rtvec_v(), gen_rtvec_v(), get_peephole2_pattern(), insn_invalid_p(), instantiate_virtual_regs_in_insn(), ira_nullify_asm_goto(), main(), make_automaton_attrs(), make_canonical(), process_one_cond_exec(), process_rtx(), process_substs_on_one_elem(), rtx_reader::read_rtx_operand(), recog_for_combine_1(), remove_clobbers(), replace_operands_with_dups(), replace_reg_with_saved_mem(), shallow_copy_rtvec(), simplify_context::simplify_binary_operation_1(), simplify_cond(), simplify_const_binary_operation(), simplify_context::simplify_ternary_operation(), store_constructor(), substitute_address(), try_combine(), try_eliminate_compare(), verify_changes(), and vt_add_function_parameter().

◆ rtvec_series_p()

bool rtvec_series_p ( rtvec vec,
int start )
extern
Return true if VEC contains a linear series of integers
{ START, START+1, START+2, ... }.   

References CONST_INT_P, GET_NUM_ELEM, i, INTVAL, and RTVEC_ELT.

Referenced by vec_series_highpart_p(), and vec_series_lowpart_p().

◆ rtx_addr_can_trap_p()

bool rtx_addr_can_trap_p ( const_rtx x)
extern
Return true if the use of X as an address in a MEM can cause a trap.   

References ggc_alloc(), and rtx_addr_can_trap_p_1().

Referenced by find_comparison_args().

◆ rtx_addr_varies_p()

bool rtx_addr_varies_p ( const_rtx x,
bool for_alias )
extern
Return true if X refers to a memory location whose address
cannot be compared reliably with constant addresses,
or if X refers to a BLKmode memory object.
FOR_ALIAS is nonzero if we are called from alias analysis; if it is
zero, we are slightly more conservative.   

References GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, rtx_addr_varies_p(), rtx_varies_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by rtx_addr_varies_p().

◆ rtx_alloc()

rtx rtx_alloc ( RTX_CODE CXX_MEM_STAT_INFO)
extern
In rtl.cc  

◆ rtx_alloc_stat_v()

rtx rtx_alloc_stat_v ( RTX_CODE MEM_STAT_DECL,
int  )
extern

◆ rtx_cost()

int rtx_cost ( rtx x,
machine_mode mode,
enum rtx_code outer_code,
int opno,
bool speed )
extern
Return an estimate of the cost of computing rtx X.
One use is in cse, to decide which expression to keep in the hash table.
Another is in rtl generation, to pick the cheapest way to multiply.
Other uses like the latter are expected in the future.

X appears as operand OPNO in an expression with code OUTER_CODE.
SPEED specifies whether costs optimized for speed or size should
be returned.   

References COSTS_N_INSNS, estimated_poly_value(), GET_CODE, GET_MODE, GET_MODE_SIZE(), GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, mode_size, rtx_cost(), SET, SET_DEST, SUBREG_REG, targetm, XEXP, XVECEXP, and XVECLEN.

Referenced by avoid_expensive_constant(), default_address_cost(), emit_conditional_move(), emit_store_flag(), emit_store_flag_int(), get_full_rtx_cost(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), notreg_cost(), prefer_and_bit_test(), prepare_cmp_insn(), rtx_cost(), set_rtx_cost(), and set_src_cost().

◆ rtx_equal_p()

bool rtx_equal_p ( const_rtx x,
const_rtx y,
rtx_equal_p_callback_function cb )
extern
Return true if X and Y are identical-looking rtx's.
This is the Lisp function EQUAL for rtx arguments.

Call CB on each pair of rtx if CB is not NULL.
When the callback returns true, we continue with the new pair.   

References CASE_CONST_UNIQUE, DEBUG_IMPLICIT_PTR_DECL, DEBUG_PARAMETER_REF_DECL, ENTRY_VALUE_EXP, gcc_unreachable, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, label_ref_label(), MEM_ADDR_SPACE, NULL, REGNO, rtx_equal_p(), same_vector_encodings_p(), SUBREG_BYTE, XEXP, XINT, XSTR, XVECEXP, XVECLEN, XWINT, and y.

Referenced by add_equal_note(), add_var_loc_to_decl(), allocate_dynamic_stack_space(), analyze_insn_to_expand_var(), apply_distributive_law(), insn_propagation::apply_to_rvalue_1(), attr_equal_p(), base_alias_check(), bbs_ok_for_cmove_arith(), find_comparison_dom_walker::before_dom_children(), builtin_memset_gen_str(), calculate_needs_all_insns(), can_combine_p(), can_eliminate_compare(), can_replace_by(), canon_reg_for_combine(), canonicalize_condition(), canonicalize_insn(), change_address_1(), check_and_make_def_conflict(), choose_reload_regs(), clobber_slot_part(), combinable_i3pat(), combine_reloads(), combine_simplify_rtx(), compare_and_jump_seq(), cond_move_process_if_block(), condition_dominates_p(), const_vec_series_p_1(), copy_frame_info_to_split_insn(), copyprop_hardreg_forward_1(), count_occurrences(), cprop_jump(), cse_cc_succs(), cse_insn(), cselib_record_sets(), decompose_automod_address(), delegitimize_mem_from_attrs(), delete_address_reloads(), delete_address_reloads_1(), delete_output_reload(), delete_slot_part(), df_find_single_def_src(), distribute_notes(), do_compare_rtx_and_jump(), do_input_reload(), do_output_reload(), dw_val_equal_p(), address_reload_context::emit_autoinc(), emit_block_cmp_via_loop(), emit_block_move_hints(), emit_conditional_move(), emit_conditional_move_1(), emit_group_store(), emit_input_reload_insns(), emit_move_insn(), emit_note_insn_var_location(), emit_output_reload_insns(), emit_store_flag_int(), addr_hasher::equal(), invariant_group_base_hasher::equal(), const_rtx_desc_hasher::equal(), equal_different_set_p(), rtx_vector_builder::equal_p(), expand_binop(), expand_call(), expand_fn_using_insn(), expand_gather_load_optab_fn(), expand_GOMP_SIMT_ENTER_ALLOC(), expand_GOMP_SIMT_LAST_LANE(), expand_GOMP_SIMT_ORDERED_PRED(), expand_GOMP_SIMT_VOTE_ANY(), expand_GOMP_SIMT_XCHG_BFLY(), expand_GOMP_SIMT_XCHG_IDX(), expand_load_lanes_optab_fn(), expand_partial_load_optab_fn(), expand_RAWMEMCHR(), expand_SPACESHIP(), expand_vec_cond_mask_optab_fn(), expand_vec_cond_optab_fn(), expand_vec_perm_1(), expand_vec_perm_const(), expand_while_optab_fn(), fill_slots_from_thread(), find_address(), find_args_size_adjust(), find_auto_inc(), find_call_crossed_cheap_reg(), find_equiv_reg(), find_inc(), find_loc_in_1pdv(), find_reg_fusage(), find_reloads(), find_reloads_address(), find_reloads_address_1(), find_reloads_subreg_address(), find_reloads_toplev(), find_src_set_src(), fold_rtx(), force_reg(), free_load_extend(), gcse_emit_move_after(), gen_reload(), get_biv_step_1(), get_hard_reg_initial_reg(), get_init_value(), get_reload_reg(), if_then_else_cond(), immune_p(), implies_p(), init_alias_analysis(), insns_have_identical_cfa_notes(), invariant_eq_p(), invariant_expr_equal_p(), ira_setup_alts(), ira_update_equiv_info_by_shuffle_insn(), iv_number_of_iterations(), kill_set_value(), known_cond(), lra_emit_move(), make_compound_operation_int(), mark_referenced_resources(), match_asm_constraints_1(), maybe_legitimize_operands(), maybe_propagate_label_ref(), merge_notes(), move2add_use_add3_insn(), noce_bbs_ok_for_cond_zero_arith(), noce_get_alt_condition(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_minmax(), noce_try_move(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), nonoverlapping_memrefs_p(), old_insns_match_p(), outgoing_edges_match(), parse_add_or_inc(), prepare_cmp_insn(), propagate_for_debug_subst(), push_reg_equiv_alt_mem(), push_reload(), record_jump_cond(), record_reg_classes(), record_store(), redundant_insn(), reg_mentioned_p(), reg_overlap_mentioned_for_reload_p(), relax_delay_slots(), reload_combine_note_use(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_reg_free_for_value_p(), reloads_unique_chain_p(), reversed_comparison_code_parts(), rtvec_all_equal_p(), rtx_equal_for_cselib_1(), rtx_equal_for_field_assignment_p(), rtx_equal_for_memref_p(), rtx_equal_p(), rtx_interchangeable_p(), rtx_referenced_p(), rtx_renumbered_equal_p(), safe_from_p(), same_dw_val_p(), set_noop_p(), set_of_1(), set_slot_part(), setup_reg_equiv(), simplify_context::simplify_binary_operation_1(), simplify_comparison(), simplify_context::simplify_cond_clz_ctz(), simplify_const_relational_operation(), simplify_context::simplify_distributive_operation(), simplify_if_then_else(), simplify_context::simplify_logical_relational_operation(), simplify_context::simplify_merge_mask(), simplify_context::simplify_relational_operation_1(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_unary_operation_1(), simplify_using_condition(), sp_based_mem_offset(), split_insn(), store_constructor(), store_expr(), subst_reg_equivs(), substitute(), swap_commutative_operands_with_target(), thread_jump(), try_back_substitute_reg(), try_combine(), try_eliminate_compare(), try_merge_delay_insns(), try_replace_in_use(), try_replace_reg(), try_split(), update_equiv_regs(), update_temp_slot_address(), use_related_value(), validate_change_1(), validate_replace_rtx_1(), validate_simplify_insn(), values_equal_p(), variable_part_different_p(), and variable_union().

◆ rtx_init()

rtx rtx_init ( rtx rt,
RTX_CODE code )
inline

References ggc_alloc(), PUT_CODE, and RTX_HDR_SIZE.

Referenced by rtx_alloc_stat_v().

◆ rtx_referenced_p()

◆ rtx_renumbered_equal_p()

◆ rtx_size()

unsigned int rtx_size ( const_rtx x)
extern
In rtl.cc  
Return the number of bytes occupied by rtx value X.   

References CONST_POLY_INT_COEFFS, CONST_POLY_INT_P, CONST_WIDE_INT_NUNITS, CONST_WIDE_INT_P, GET_CODE, ggc_alloc(), RTX_CODE_SIZE, RTX_HDR_SIZE, and SYMBOL_REF_HAS_BLOCK_INFO_P.

Referenced by shallow_copy_rtx().

◆ rtx_to_double_int()

double_int rtx_to_double_int ( const_rtx cst)
extern

◆ rtx_to_poly_int64()

◆ rtx_to_tree_code()

int rtx_to_tree_code ( enum rtx_code code)
extern
Translates rtx code to tree code, for those codes needed by
real_arithmetic.  The function returns an int because the caller may not
know what `enum tree_code' means.   
Look up the tree code for a given rtx code
to provide the arithmetic operation for real_arithmetic.
The function returns an int because the caller may not know
what `enum tree_code' means.   

References ggc_alloc().

Referenced by simplify_const_binary_operation().

◆ rtx_unstable_p()

bool rtx_unstable_p ( const_rtx x)
extern
Return true if the value of X is unstable
(would be different at a different point in the program).
The frame pointer, arg pointer, etc. are considered stable
(within one function) and so is anything marked `unchanging'.   

References arg_pointer_rtx, CASE_CONST_ANY, fixed_regs, frame_pointer_rtx, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), hard_frame_pointer_rtx, i, MEM_READONLY_P, MEM_VOLATILE_P, PIC_OFFSET_TABLE_REG_CALL_CLOBBERED, pic_offset_table_rtx, RTX_CODE, rtx_unstable_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by rtx_unstable_p().

◆ rtx_varies_p()

bool rtx_varies_p ( const_rtx x,
bool for_alias )
extern
Return true if X has a value that can vary even between two
executions of the program.  false means X can be compared reliably
against certain constants or near-constants.
FOR_ALIAS is nonzero if we are called from alias analysis; if it is
zero, we are slightly more conservative.
The frame pointer and the arg pointer are considered constant.   

References arg_pointer_rtx, CASE_CONST_ANY, fixed_regs, frame_pointer_rtx, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), hard_frame_pointer_rtx, i, MEM_READONLY_P, MEM_VOLATILE_P, PIC_OFFSET_TABLE_REG_CALL_CLOBBERED, pic_offset_table_rtx, RTX_CODE, rtx_varies_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by equiv_init_movable_p(), equiv_init_varies_p(), init_alias_analysis(), make_memloc(), rtx_addr_varies_p(), rtx_varies_p(), and update_equiv_regs().

◆ same_vector_encodings_p()

bool same_vector_encodings_p ( const_rtx x,
const_rtx y )
inline
Return true if CONST_VECTORs X and Y, which are known to have the same mode,
also have the same encoding.  This means that they are equal whenever their
operands are equal.   

References CONST_VECTOR_NELTS_PER_PATTERN, CONST_VECTOR_NPATTERNS, CONST_VECTOR_NUNITS, and y.

Referenced by exp_equiv_p(), operands_match_p(), operands_match_p(), rtx_equal_for_cselib_1(), rtx_equal_p(), and rtx_renumbered_equal_p().

◆ save_register_info()

◆ schedule_ebbs()

void schedule_ebbs ( void )
extern
In sched-ebb.cc.   

Referenced by rest_of_handle_sched2().

◆ schedule_insns()

◆ sel_sched_fix_param()

void sel_sched_fix_param ( const char * param,
const char * val )
extern
In sel-sched-dump.cc.   

◆ seq_cost()

◆ set_block_for_insn()

◆ set_curr_insn_location()

◆ set_dst_reg_note()

rtx set_dst_reg_note ( rtx insn,
enum reg_note kind,
rtx datum,
rtx dst )
extern

◆ set_for_reg_notes()

rtx set_for_reg_notes ( rtx insn)
extern
In emit-rtl.cc   
Notes like REG_EQUAL and REG_EQUIV refer to a set in an instruction.
Return the set in INSN that such notes describe, or NULL if the notes
have no meaning for INSN.   

References GET_CODE, ggc_alloc(), INSN_P, multiple_sets(), NULL_RTX, PATTERN(), REG_P, SET, SET_DEST, XEXP, and XVECEXP.

Referenced by add_equal_note(), forward_propagate_and_simplify(), reload_cse_simplify(), set_dst_reg_note(), set_unique_reg_note(), and try_fwprop_subst_pattern().

◆ set_insn_deleted()

void set_insn_deleted ( rtx_insn * insn)
extern
Replace insn with an deleted instruction note.   

References df_insn_delete(), ggc_alloc(), INSN_P, NOTE_KIND, and PUT_CODE.

Referenced by find_moveable_pseudos(), and one_cprop_pass().

◆ set_insn_locations()

void set_insn_locations ( rtx_insn * insn,
location_t loc )
extern
Set the location of the insn chain starting at INSN to LOC.   

References INSN_LOCATION(), INSN_P, and NEXT_INSN().

Referenced by emit_moves(), expand_function_end(), make_epilogue_seq(), make_prologue_seq(), make_split_prologue_seq(), and thread_prologue_and_epilogue_insns().

◆ set_label_ref_label()

void set_label_ref_label ( rtx ref,
rtx_insn * label )
inline
Set the label that LABEL_REF ref refers to.   

References ggc_alloc(), and XCEXP.

Referenced by mark_jump_label_1().

◆ set_mode_and_regno()

void set_mode_and_regno ( rtx x,
machine_mode mode,
unsigned int regno )
extern

◆ set_new_first_and_last_insn()

void set_new_first_and_last_insn ( rtx_insn * first,
rtx_insn * last )
extern
For procedure integration.   
Install new pointers to the first and last insns in the chain.
Also, set cur_insn_uid to one higher than the last in use.
Used for an inline-procedure after copying the insn chain.   

References cur_debug_insn_uid, cur_insn_uid, DEBUG_INSN_P, ggc_alloc(), INSN_UID(), last, MAX, MAY_HAVE_DEBUG_INSNS, NEXT_INSN(), set_first_insn(), and set_last_insn().

◆ SET_NEXT_INSN()

◆ set_noop_p()

◆ set_of()

const_rtx set_of ( const_rtx pat,
const_rtx insn )
extern
Give an INSN, return a SET or CLOBBER expression that does modify PAT
(either directly or via STRICT_LOW_PART and similar modifiers).   

References INSN_P, note_pattern_stores(), NULL_RTX, set_of_data::pat, PATTERN(), and set_of_1().

Referenced by canonicalize_condition(), check_cond_move_block(), end_ifcvt_sequence(), get_defs(), insn_valid_noce_process_p(), reg_set_p(), and reversed_comparison_code_parts().

◆ SET_PREV_INSN()

◆ set_regno_raw()

void set_regno_raw ( rtx x,
unsigned int regno,
unsigned int nregs )
inline
Change the REGNO and REG_NREGS of REG X to the specified values,
bypassing the df machinery.   

References reg_info::nregs, REG_CHECK, and reg_info::regno.

Referenced by rtx_reader::read_rtx_operand(), function_reader::read_rtx_operand_r(), and set_mode_and_regno().

◆ set_rtx_cost()

int set_rtx_cost ( rtx x,
bool speed_p )
inline
Generally useful functions.   
Return the cost of SET X.  SPEED_P is true if optimizing for speed
rather than size.   

References ggc_alloc(), and rtx_cost().

Referenced by attempt_change(), compute_costs(), create_new_invariant(), seq_cost(), and try_replace_reg().

◆ set_src_cost()

◆ set_unique_reg_note()

◆ set_used_flags()

void set_used_flags ( rtx x)
extern
Set all the USED bits in X to allow copy_rtx_if_shared to be used
to look for shared sub-parts.   

References mark_used_flags().

Referenced by doloop_modify(), end_ifcvt_sequence(), noce_convert_multiple_sets(), noce_process_if_block(), set_used_decls(), and unshare_all_rtl_again().

◆ setup_reg_classes()

void setup_reg_classes ( int regno,
enum reg_class prefclass,
enum reg_class altclass,
enum reg_class allocnoclass )
extern

◆ shallow_copy_rtvec()

rtvec shallow_copy_rtvec ( rtvec vec)
extern
Create a bitwise copy of VEC.   

References GET_NUM_ELEM, ggc_alloc(), and rtvec_alloc().

Referenced by cselib_subst_to_values(), and simplify_replace_fn_rtx().

◆ shallow_copy_rtx()

rtx shallow_copy_rtx ( const_rtx CXX_MEM_STAT_INFO)
extern

◆ shape_of_subreg()

subreg_shape shape_of_subreg ( const_rtx x)
inline
Return the shape of a SUBREG rtx.   

References GET_MODE, SUBREG_BYTE, and SUBREG_REG.

Referenced by record_subregs_of_mode().

◆ shared_const_p()

◆ side_effects_p()

bool side_effects_p ( const_rtx x)
extern
Similar to above, except that it also rejects register pre- and post-
incrementing.   

References CASE_CONST_ANY, GET_CODE, GET_MODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_VOLATILE_P, RTX_CODE, side_effects_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by add_insn_allocno_copies(), can_combine_p(), can_split_parallel_of_n_reg_sets(), check_cond_move_block(), combine_instructions(), combine_simplify_rtx(), copyprop_hardreg_forward_1(), count_reg_usage(), cse_insn(), cselib_add_permanent_equiv(), cselib_record_set(), delete_dead_insn(), delete_prior_computation(), delete_trivially_dead_insns(), distribute_notes(), eliminate_partially_redundant_loads(), emit_conditional_move_1(), expand_builtin_prefetch(), fill_slots_from_thread(), find_moveable_store(), find_split_point(), flow_find_cross_jump(), fold_rtx(), force_to_mode(), get_reload_reg(), if_then_else_cond(), interesting_dest_for_shprep(), invariant_p(), known_cond(), lra_coalesce(), lra_delete_dead_insn(), maybe_legitimize_operand_same_code(), noce_get_condition(), noce_operand_ok(), noce_process_if_block(), noce_try_sign_mask(), non_conflicting_reg_copy_p(), onlyjump_p(), recompute_constructor_flags(), record_set_data(), reload_cse_simplify_operands(), reload_cse_simplify_set(), resolve_simple_move(), rtl_can_remove_branch_p(), scan_one_insn(), set_live_p(), set_noop_p(), set_unique_reg_note(), side_effects_p(), simple_mem(), simplify_and_const_int_1(), simplify_context::simplify_binary_operation_1(), simplify_const_relational_operation(), simplify_context::simplify_distributive_operation(), simplify_if_then_else(), simplify_context::simplify_merge_mask(), simplify_context::simplify_relational_operation_1(), simplify_set(), simplify_shift_const_1(), simplify_context::simplify_ternary_operation(), simplify_context::simplify_unary_operation_1(), single_set_2(), store_expr(), thread_jump(), try_combine(), try_eliminate_compare(), try_merge_compare(), try_redirect_by_replacing_jump(), update_equiv_regs(), validate_equiv_mem(), and verify_constructor_flags().

◆ signed_condition()

enum rtx_code signed_condition ( enum rtx_code code)
extern
Similarly, return the signed version of a comparison.   

References gcc_unreachable, and ggc_alloc().

Referenced by simplify_const_relational_operation().

◆ simple_regno_set()

rtx simple_regno_set ( rtx pat,
unsigned int regno )
extern
Check whether instruction pattern PAT contains a SET with the following
properties:

- the SET is executed unconditionally; and
- either:
  - the destination of the SET is a REG that contains REGNO; or
  - both:
    - the destination of the SET is a SUBREG of such a REG; and
    - writing to the subreg clobbers all of the SUBREG_REG
      (in other words, read_modify_subreg_p is false).

If PAT does have a SET like that, return the set, otherwise return null.

This is intended to be an alternative to single_set for passes that
can handle patterns with multiple_sets.   

References covers_regno_no_parallel_p(), GET_CODE, ggc_alloc(), i, last, set_of_data::pat, SET, SET_DEST, simple_regno_set(), XVECEXP, and XVECLEN.

Referenced by forward_propagate_into(), and simple_regno_set().

◆ simplejump_p()

◆ simplifiable_subregs()

const HARD_REG_SET & simplifiable_subregs ( const subreg_shape & shape)
extern

◆ simplify_binary_operation()

◆ simplify_const_binary_operation()

rtx simplify_const_binary_operation ( enum rtx_code,
machine_mode mode,
rtx op0,
rtx op1 )
extern

References wi::add(), wi::arshift(), wi::bit_and(), wi::bit_or(), wi::bit_xor(), BITS_PER_WORD, wi::clrsb(), wi::clz(), CONST_DOUBLE_AS_FLOAT_P, const_double_from_real_value(), CONST_DOUBLE_REAL_VALUE, CONST_FIXED_P, CONST_SCALAR_INT_P, CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_ELT, CONST_VECTOR_NPATTERNS, CONST_VECTOR_NUNITS, CONST_VECTOR_STEPPED_P, count, dconst0, distributes_over_addition_p(), wi::div_trunc(), wi::eq_p(), f1, gcc_assert, gcc_unreachable, gen_rtx_CONST_VECTOR(), GET_CODE, GET_MODE, GET_MODE_INNER, GET_MODE_NUNITS(), GET_MODE_PRECISION(), wi::geu_p(), ggc_alloc(), HONOR_NANS(), HONOR_SNANS(), HOST_BITS_PER_DOUBLE_INT, i, immed_wide_int_const(), wi::leu_p(), wi::lrotate(), wi::lrshift(), wi::lshift(), wi::max_value(), wi::min_value(), wi::mod_trunc(), MODE_COMPOSITE_P, MODE_HAS_INFINITIES, wi::mul(), wi::mul_high(), wi::neg_p(), NULL_RTX, NUM_POLY_INT_COEFFS, wi::OVF_NONE, wi::OVF_OVERFLOW, wi::OVF_UNDERFLOW, poly_int_rtx_p(), r, real_arithmetic(), real_convert(), real_copysign(), real_equal(), real_from_target(), real_identical(), real_to_target(), REAL_VALUE_ISINF, REAL_VALUE_ISSIGNALING_NAN, REAL_VALUE_NEGATIVE, REAL_VALUE_TYPE, wi::rrotate(), rtvec_alloc(), RTVEC_ELT, rtx_to_tree_code(), SCALAR_FLOAT_MODE_P, shift, SHIFT_COUNT_TRUNCATED, SIGNED, simplify_binary_operation(), wi::smax(), wi::smin(), wi::sub(), poly_int< N, C >::to_constant(), wi::to_poly_wide(), wi::umax(), wi::umin(), wi::umod_trunc(), UNSIGNED, valid_for_const_vector_p(), VECTOR_MODE_P, and word_mode.

Referenced by find_shift_sequence(), simplify_context::simplify_binary_operation(), simplify_context::simplify_plus_minus(), and simplify_shift_const_1().

◆ simplify_const_relational_operation()

◆ simplify_const_unary_operation()

rtx simplify_const_unary_operation ( enum rtx_code code,
machine_mode mode,
rtx op,
machine_mode op_mode )
extern
Try to compute the value of a unary operation CODE whose output mode is to
be MODE with input operand OP whose mode was originally OP_MODE.
Return zero if the value cannot be computed.   

References wi::abs(), wi::bit_not(), wi::bitreverse(), wi::bswap(), wi::clrsb(), wi::clz(), CLZ_DEFINED_VALUE_AT_ZERO, const0_rtx, CONST_DOUBLE_AS_FLOAT_P, const_double_from_real_value(), CONST_DOUBLE_REAL_VALUE, CONST_POLY_INT_P, const_poly_int_value(), CONST_SCALAR_INT_P, CONST_VECTOR_DUPLICATE_P, CONST_VECTOR_ELT, CONST_VECTOR_NPATTERNS, CONST_VECTOR_NUNITS, count, wi::ctz(), CTZ_DEFINED_VALUE_AT_ZERO, exact_real_truncate(), wi::ffs(), wide_int_storage::from(), gcc_assert, gcc_unreachable, gen_const_vec_duplicate(), GET_CODE, GET_MODE, GET_MODE_CLASS, GET_MODE_INNER, GET_MODE_NUNITS(), GET_MODE_PRECISION(), ggc_alloc(), HONOR_SIGN_DEPENDENT_ROUNDING(), HONOR_SNANS(), HOST_BITS_PER_DOUBLE_INT, i, immed_wide_int_const(), is_int_mode(), known_eq, wi::max(), wi::max_value(), wi::min(), wi::min_value(), wi::ne_p(), wi::neg(), NULL, NULL_RTX, wi::only_sign_bit_p(), wi::parity(), wi::popcount(), real_arithmetic(), real_convert(), real_from_integer(), real_from_target(), real_less(), real_to_integer(), real_to_target(), real_value_abs(), REAL_VALUE_ISNAN, REAL_VALUE_ISSIGNALING_NAN, real_value_negate(), REAL_VALUE_NEGATIVE, real_value_truncate(), REAL_VALUE_TYPE, SCALAR_FLOAT_MODE_P, wi::shwi(), SIGNED, simplify_unary_operation(), UNSIGNED, valid_for_const_vector_p(), and VECTOR_MODE_P.

Referenced by simplify_context::simplify_unary_operation().

◆ simplify_gen_binary()

rtx simplify_gen_binary ( rtx_code code,
machine_mode mode,
rtx op0,
rtx op1 )
inline

References simplify_context::simplify_gen_binary().

Referenced by addr_for_mem_ref(), anti_adjust_stack_and_probe(), apply_distributive_law(), base_to_reg(), break_out_memory_refs(), canon_reg_for_combine(), canon_rtx(), canonicalize_address(), combine_simplify_rtx(), combine_var_copies_in_loop_exit(), compute_argument_addresses(), compute_stack_clash_protection_loop_data(), distribute_and_simplify_rtx(), do_tablejump(), doloop_simplify_count(), emit_block_cmp_via_loop(), emit_block_move_via_loop(), emit_block_move_via_oriented_loop(), emit_push_insn(), expand_debug_expr(), expand_expr_addr_expr_1(), expand_expr_real_1(), expand_expr_real_2(), expand_field_assignment(), expand_shift_1(), extract_left_shift(), find_split_point(), fold_rtx(), force_int_to_mode(), gen_addr_rtx(), gen_const_vec_series(), get_addr(), get_biv_step_1(), get_iv_value(), if_then_else_cond(), implies_p(), instantiate_virtual_regs_in_insn(), iv_add(), iv_analyze_biv(), iv_mult(), iv_number_of_iterations(), iv_shift(), iv_subreg(), lra_eliminate_regs_1(), make_compound_operation_int(), memory_load_overlap(), noce_try_bitop(), offset_address(), probe_stack_range(), process_address_1(), reverse_op(), simplify_and_const_int(), simplify_and_const_int_1(), simplify_comparison(), simplify_if_then_else(), simplify_replace_fn_rtx(), simplify_rtx(), simplify_set(), simplify_shift_const(), simplify_shift_const_1(), simplify_while_replacing(), split_iv(), try_combine(), unroll_loop_runtime_iterations(), and use_narrower_mode().

◆ simplify_gen_relational()

◆ simplify_gen_subreg()

◆ simplify_gen_ternary()

rtx simplify_gen_ternary ( rtx_code code,
machine_mode mode,
machine_mode op0_mode,
rtx op0,
rtx op1,
rtx op2 )
inline

◆ simplify_gen_unary()

◆ simplify_gen_vec_select()

rtx simplify_gen_vec_select ( rtx op,
unsigned int index )
inline

◆ simplify_relational_operation()

◆ simplify_replace_fn_rtx()

◆ simplify_replace_rtx()

rtx simplify_replace_rtx ( rtx x,
const_rtx old_rtx,
rtx new_rtx )
extern

◆ simplify_rtx()

rtx simplify_rtx ( const_rtx x)
extern
Simplify X, an rtx expression.

Return the simplified expression or NULL if no simplifications
were possible.

This is the preferred entry point into the simplification routines;
however, we still allow passes to call the more specific routines.

Right now GCC has three (yes, three) major bodies of RTL simplification
code that need to be unified.

     1. fold_rtx in cse.cc.  This code uses various CSE specific
        information to aid in RTL simplification.

     2. simplify_rtx in combine.cc.  Similar to fold_rtx, except that
        it uses combine specific information to aid in RTL
        simplification.

     3. The routines in this file.


Long term we want to only have one body of simplification code; to
get to that state I recommend the following steps:

     1. Pour over fold_rtx & simplify_rtx and move any simplifications
        which are not pass dependent state into these routines.

     2. As code is moved by #1, change fold_rtx & simplify_rtx to
        use this routine whenever possible.

     3. Allow for pass dependent state to be provided to these
        routines and add simplifications based on the pass dependent
        state.  Remove code from cse.cc & combine.cc that becomes
        redundant/dead.

 It will take time, but ultimately the compiler will be easier to
 maintain and improve.  It's totally silly that when we add a
 simplification that it needs to be added to 4 places (3 for RTL
 simplification and 1 for tree simplification.   

References GET_CODE, GET_MODE, GET_RTX_CLASS, ggc_alloc(), NULL, RTX_BIN_ARITH, RTX_BITFIELD_OPS, RTX_COMM_ARITH, RTX_COMM_COMPARE, RTX_COMPARE, rtx_equal_p(), RTX_EXTRA, RTX_OBJ, RTX_TERNARY, RTX_UNARY, simplify_binary_operation(), simplify_gen_binary(), simplify_relational_operation(), simplify_subreg(), simplify_ternary_operation(), simplify_unary_operation(), SUBREG_BYTE, SUBREG_REG, swap_commutative_operands_p(), and XEXP.

Referenced by combine_set_extension(), cselib_expand_value_rtx_1(), simplify_context::simplify_relational_operation_1(), simplify_set(), simplify_subtraction(), try_replace_reg(), and validate_simplify_insn().

◆ simplify_subreg()

◆ simplify_subreg_regno()

int simplify_subreg_regno ( unsigned int xregno,
machine_mode xmode,
poly_uint64 offset,
machine_mode ymode )
extern

◆ simplify_subtraction()

rtx simplify_subtraction ( rtx x)
extern
Given a MINUS expression, simplify it if both sides
include the same symbol.   

References r, and simplify_rtx().

Referenced by output_addr_const().

◆ simplify_ternary_operation()

rtx simplify_ternary_operation ( rtx_code code,
machine_mode mode,
machine_mode op0_mode,
rtx op0,
rtx op1,
rtx op2 )
inline

◆ simplify_unary_operation()

◆ simplify_using_condition()

void simplify_using_condition ( rtx cond,
rtx * expr,
regset altered )
extern
Tries to use the fact that COND holds to simplify EXPR.  ALTERED is the
set of altered regs.   

References altered_reg_used(), canon_condition(), COMPARISON_P, const0_rtx, const_true_rtx, CONSTANT_P, exp(), expr, GET_CODE, ggc_alloc(), implies_p(), REG_P, reversed_condition(), rtx_equal_p(), simplify_replace_rtx(), and XEXP.

Referenced by simplify_using_initial_values().

◆ single_set()

rtx single_set ( const rtx_insn * insn)
inline
Handle the cheap and common cases inline for performance.   

References GET_CODE, INSN_P, NULL_RTX, PATTERN(), SET, and single_set_2().

Referenced by add_equal_note(), add_insn_allocno_copies(), add_store_equivs(), adjust_for_new_dest(), adjust_insn(), adjust_stack_1(), allocate_basic_variable(), allocate_dynamic_stack_space(), analyze_insn_to_expand_var(), analyze_iv_to_split_insn(), assign_parm_setup_reg(), assign_spill_hard_regs(), bb_ok_for_noce_convert_multiple_sets(), bb_valid_for_noce_process_p(), bbs_ok_for_cmove_arith(), find_comparison_dom_walker::before_dom_children(), calculate_elim_costs_all_insns(), calculate_equiv_gains(), calculate_gen_cands(), calculate_needs_all_insns(), can_replace_by(), cant_combine_insn_p(), cheap_bb_rtx_cost_p(), check_cond_move_block(), check_secondary_memory_needed_p(), combine_and_move_insns(), combine_instructions(), combine_reaching_defs(), combine_reload_insn(), combine_set_extension(), cond_move_convert_if_block(), conforming_compare(), constprop_register(), contains_reloaded_insn_p(), copy_frame_info_to_split_insn(), copyprop_hardreg_forward_1(), cprop_jump(), create_cands(), create_new_invariant(), cse_cc_succs(), cse_condition_code_reg(), cse_extended_basic_block(), curr_insn_transform(), dead_debug_insert_temp(), decrease_live_ranges_number(), delete_address_reloads(), delete_address_reloads_1(), delete_jump(), delete_output_reload(), delete_trivially_dead_insns(), df_find_single_def_src(), distribute_notes(), do_remat(), dwarf2out_frame_debug(), eliminate_regs_in_insn(), eliminate_regs_in_insn(), elimination_costs_in_insn(), emit_libcall_block_1(), emit_move_insn(), emit_move_list(), emit_output_reload_insns(), emit_reload_insns(), equivalent_reg_at_start(), expand_var_during_unrolling(), find_and_remove_re(), find_args_size_adjust(), find_call_crossed_cheap_reg(), find_call_stack_args(), find_constant_src(), find_decomposable_shift_zext(), find_equiv_reg(), find_identical_invariants(), find_invariant_insn(), find_moveable_pseudos(), find_moveable_store(), find_reloads(), find_removable_extensions(), fix_reg_equiv_init(), force_reg(), forward_propagate_and_simplify(), gcse_emit_move_after(), get_biv_step_1(), get_inv_cost(), get_pressure_class_and_nregs(), if_test_bypass_p(), indirect_jump_optimize(), inherit_in_ebb(), inherit_reload_reg(), init_alias_analysis(), init_eliminable_invariants(), insert_base_initialization(), insn_rhs_dead_pseudo_p(), insn_valid_noce_process_p(), instantiate_virtual_regs_in_insn(), internal_arg_pointer_based_exp_scan(), inv_can_prop_to_addr_use(), is_cond_copy_insn(), is_just_move(), iv_analyze_def(), keep_with_call_p(), lra_coalesce(), lra_constraints(), lra_final_code_change(), make_edges(), make_more_copies(), maybe_propagate_label_ref(), move2add_use_add2_insn(), move2add_use_add3_insn(), move_invariant_reg(), move_unallocated_pseudos(), need_cmov_or_rewire(), noce_convert_multiple_sets_1(), noce_process_if_block(), noce_try_abs(), noce_try_cmove_arith(), non_conflicting_reg_copy_p(), onlyjump_p(), parse_add_or_inc(), pre_delete(), process_address_1(), process_bb_lives(), process_bb_node_for_hard_reg_moves(), process_invariant_for_inheritance(), purge_dead_tablejump_edges(), record_operand_costs(), record_promoted_value(), reload_combine_recognize_const_pattern(), reload_combine_recognize_pattern(), reload_cse_move2add(), reload_cse_simplify_operands(), remove_inheritance_pseudos(), replace_store_insn(), resolve_shift_zext(), resolve_simple_move(), reverse_equiv_p(), rtl_can_remove_branch_p(), scan_one_insn(), seq_cost(), setup_reg_equiv(), simple_move(), single_set_for_csa(), sp_based_mem_offset(), split_all_insns(), split_all_insns_noflow(), split_insn(), split_iv(), steal_delay_list_from_target(), store_data_bypass_p(), store_data_bypass_p_1(), suitable_set_for_replacement(), tablejump_casesi_pattern(), try_combine(), try_fwprop_subst_pattern(), try_merge_compare(), try_redirect_by_replacing_jump(), try_replace_in_use(), try_replace_reg(), undo_optional_reloads(), union_defs(), update_ebb_live_info(), update_equiv_regs(), and will_delete_init_insn_p().

◆ single_set_2()

rtx single_set_2 ( const rtx_insn * insn,
const_rtx pat )
extern
Functions in rtlanal.cc  
Given an INSN, return a SET expression if this insn has only a single SET.
It may also have CLOBBERs, USEs, or SET whose output
will not be used, which we ignore.   

References find_reg_note(), GET_CODE, ggc_alloc(), i, NULL, NULL_RTX, set_of_data::pat, SET, SET_DEST, side_effects_p(), XVECEXP, and XVECLEN.

Referenced by single_set().

◆ split_all_insns()

◆ split_all_insns_noflow()

void split_all_insns_noflow ( void )
extern
Same as split_all_insns, but do not expect CFG to be available.
Used by machine dependent reorg passes.   

References delete_insn_and_edges(), get_insns(), INSN_P, NEXT_INSN(), reload_completed, set_noop_p(), single_set(), and split_insn().

◆ split_const()

void split_const ( rtx x,
rtx * base_out,
rtx * offset_out )
extern
Split X into a base and a constant offset, storing them in *BASE_OUT
and *OFFSET_OUT respectively.   

References const0_rtx, CONST_INT_P, GET_CODE, ggc_alloc(), and XEXP.

Referenced by insn_propagation::apply_to_rvalue_1(), and simplify_replace_fn_rtx().

◆ split_double()

void split_double ( rtx value,
rtx * first,
rtx * second )
extern
Split up a CONST_DOUBLE or integer constant rtx
into two rtx's for single words,
storing in *FIRST the word that comes first in memory in the target
and in *SECOND the other.

TODO: This function needs to be rewritten to work on any size
integer.   

References BITS_PER_WORD, const0_rtx, CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW, CONST_DOUBLE_P, CONST_DOUBLE_REAL_VALUE, CONST_INT_P, CONST_WIDE_INT_ELT, CONST_WIDE_INT_NUNITS, constm1_rtx, gcc_assert, GEN_INT, GET_CODE, GET_MODE, GET_MODE_CLASS, ggc_alloc(), HOST_BITS_PER_LONG, HOST_BITS_PER_WIDE_INT, INTVAL, and REAL_VALUE_TO_TARGET_DOUBLE.

Referenced by emit_group_load_1().

◆ split_insns()

rtx_insn * split_insns ( rtx ,
rtx_insn *  )
extern
In insn-recog.cc (generated by genrecog).   

Referenced by combine_split_insns(), and try_split().

◆ start_sequence()

void start_sequence ( void )
extern
Begin emitting insns to a sequence.  If this sequence will contain
something that might cause the compiler to pop arguments to function
calls (because those pops have previously been deferred; see
INHIBIT_DEFER_POP for more details), use do_pending_stack_adjust
before calling this function.  That will ensure that the deferred
pops are not accidentally emitted in the middle of this sequence.   

References free_sequence_stack, get_current_sequence(), get_insns(), get_last_insn(), ggc_alloc(), sequence_stack::next, NULL, set_first_insn(), and set_last_insn().

Referenced by add_test(), asan_clear_shadow(), asan_emit_allocas_unpoison(), asan_emit_stack_protection(), assign_parm_setup_reg(), attempt_change(), check_and_process_move(), combine_reaching_defs(), combine_var_copies_in_loop_exit(), compare_and_jump_seq(), computation_cost(), compute_can_copy(), cond_move_process_if_block(), convert_mode_scalar(), curr_insn_transform(), do_remat(), doloop_modify(), dw2_build_landing_pads(), emit_common_heads_for_components(), emit_common_tails_for_components(), emit_delay_sequence(), emit_inc_dec_insn_before(), emit_initial_value_sets(), emit_move_list(), emit_move_multi_word(), emit_output_reload_insns(), emit_partition_copy(), expand_absneg_bit(), expand_asm_stmt(), expand_atomic_fetch_op(), expand_binop(), expand_builtin_apply_args(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_saveregs(), expand_builtin_strlen(), expand_call(), expand_clrsb_using_clz(), expand_cond_expr_using_cmove(), expand_copysign_bit(), expand_ctz(), expand_DIVMOD(), expand_doubleword_clz_ctz_ffs(), expand_doubleword_popcount(), expand_expr_divmod(), expand_expr_real_2(), expand_ffs(), expand_fix(), expand_fixed_convert(), expand_float(), expand_function_end(), expand_POPCOUNT(), expand_sdiv_pow2(), expand_twoval_binop_libfunc(), expand_unop(), expmed_mult_highpart_optab(), find_shift_sequence(), fix_crossing_unconditional_branches(), gen_call_used_regs_seq(), gen_clobber(), gen_cond_trap(), gen_move_insn(), gen_use(), get_arg_pointer_save_area(), get_uncond_jump_length(), hwasan_emit_untag_frame(), hwasan_frame_base(), inherit_in_ebb(), inherit_reload_reg(), init_set_costs(), initialize_uninitialized_regs(), inline_string_cmp(), insert_base_initialization(), insert_insn_on_edge(), insert_move_for_subreg(), insert_prologue_epilogue_for_components(), insert_value_copy_on_edge(), insert_var_expansion_initialization(), instantiate_virtual_regs_in_insn(), ira(), lra_process_new_insns(), make_epilogue_seq(), make_prologue_seq(), make_split_prologue_seq(), match_asm_constraints_1(), match_reload(), maybe_optimize_mod_cmp(), maybe_optimize_pow2p_mod_cmp(), noce_convert_multiple_sets(), noce_emit_cmove(), noce_emit_move_insn(), noce_emit_store_flag(), noce_process_if_block(), noce_try_abs(), noce_try_addcc(), noce_try_bitop(), noce_try_cmove(), noce_try_cmove_arith(), noce_try_cond_zero_arith(), noce_try_ifelse_collapse(), noce_try_inverse_constants(), noce_try_minmax(), noce_try_move(), noce_try_sign_mask(), noce_try_store_flag(), noce_try_store_flag_constants(), noce_try_store_flag_mask(), prepare_copy_insn(), prepare_float_lib_cmp(), prepend_insn_to_edge(), process_addr_reg(), process_address_1(), process_invariant_for_inheritance(), push_to_sequence(), push_to_sequence2(), push_topmost_sequence(), record_store(), remove_inheritance_pseudos(), replace_read(), resolve_shift_zext(), resolve_simple_move(), rtl_lv_add_condition_to_bb(), sjlj_emit_dispatch_table(), sjlj_emit_function_enter(), sjlj_emit_function_exit(), sjlj_mark_call_sites(), split_iv(), thread_prologue_and_epilogue_insns(), try_emit_cmove_seq(), and unroll_loop_runtime_iterations().

◆ strip_address_mutations()

rtx * strip_address_mutations ( rtx * loc,
enum rtx_code * outer_code )
extern
Strip outer address "mutations" from LOC and return a pointer to the
inner value.  If OUTER_CODE is nonnull, store the code of the innermost
stripped expression there.

"Mutations" either convert between modes or apply some kind of
extension, truncation or alignment.   

References CONST_INT_P, GET_CODE, GET_RTX_CLASS, ggc_alloc(), lsb_bitfield_op_p(), OBJECT_P, RTX_UNARY, subreg_lowpart_p(), SUBREG_REG, and XEXP.

Referenced by decompose_address(), decompose_automod_address(), decompose_normal_address(), get_base_term(), and get_index_term().

◆ strip_offset()

rtx strip_offset ( rtx x,
poly_int64 * offset_out )
extern
Express integer value X as some value Y plus a polynomial offset,
where Y is either const0_rtx, X or something within X (as opposed
to a new rtx).  Return the Y and store the offset in *OFFSET_OUT.   

References const0_rtx, GET_CODE, ggc_alloc(), poly_int_rtx_p(), and XEXP.

Referenced by avoid_constant_pool_reference(), delegitimize_mem_from_attrs(), dwarf2out_frame_debug_def_cfa(), find_args_size_adjust(), find_temp_slot_from_address(), indirect_operand(), set_mem_attrs_for_spill(), store_one_arg(), strip_offset_and_add(), vt_add_function_parameter(), and vt_canonicalize_addr().

◆ strip_offset_and_add()

rtx strip_offset_and_add ( rtx x,
poly_int64 * offset )
inline
If X is a PLUS of a base and a constant offset, add the constant to *OFFSET
and return the base.  Return X otherwise.   

References GET_CODE, ggc_alloc(), offset, and strip_offset().

Referenced by based_loc_descr(), canon_address(), compute_frame_pointer_to_fb_displacement(), emit_note_insn_var_location(), and nonoverlapping_memrefs_p().

◆ subreg_get_info()

void subreg_get_info ( unsigned int xregno,
machine_mode xmode,
poly_uint64 offset,
machine_mode ymode,
struct subreg_info * info )
extern
Fill in information about a subreg of a hard register.
xregno - A regno of an inner hard subreg_reg (or what will become one).
xmode  - The mode of xregno.
offset - The byte offset.
ymode  - The mode of a top level SUBREG (or what may become one).
info   - Pointer to structure to fill in.

Rather than considering one particular inner register (and thus one
particular "outer" register) in isolation, this function really uses
XREGNO as a model for a sequence of isomorphic hard registers.  Thus the
function does not check whether adding INFO->offset to XREGNO gives
a valid hard register; even if INFO->offset + XREGNO is out of range,
there might be another register of the same type that is in range.
Likewise it doesn't check whether targetm.hard_regno_mode_ok accepts
the new register, since that can depend on things like whether the final
register number is even or odd.  Callers that want to check whether
this particular subreg can be replaced by a simple (reg ...) should
use simplify_subreg_regno.   

References count, gcc_assert, gcc_checking_assert, gcc_unreachable, GET_MODE_INNER, GET_MODE_NUNITS(), GET_MODE_SIZE(), ggc_alloc(), hard_regno_nregs(), HARD_REGNO_NREGS_HAS_PADDING, HARD_REGNO_NREGS_WITH_PADDING, known_eq, maybe_gt, subreg_info::nregs, offset, subreg_info::offset, REG_WORDS_BIG_ENDIAN, subreg_info::representable_p, subreg_lowpart_offset(), subreg_size_lowpart_offset(), and poly_int< N, C >::to_constant().

Referenced by rtx_renumbered_equal_p(), simplify_subreg_regno(), subreg_nregs_with_regno(), subreg_offset_representable_p(), subreg_regno_offset(), and true_regnum().

◆ subreg_highpart_offset()

poly_uint64 subreg_highpart_offset ( machine_mode outermode,
machine_mode innermode )
inline

◆ subreg_lowpart_offset()

◆ subreg_lowpart_p()

◆ subreg_lsb()

poly_uint64 subreg_lsb ( const_rtx x)
extern
Given a subreg X, return the bit offset where the subreg begins
(counting from the least significant bit of the reg).   

References GET_MODE, SUBREG_BYTE, subreg_lsb_1(), and SUBREG_REG.

Referenced by expand_field_assignment().

◆ subreg_lsb_1()

poly_uint64 subreg_lsb_1 ( machine_mode outer_mode,
machine_mode inner_mode,
poly_uint64 subreg_byte )
inline
Given a subreg's OUTER_MODE, INNER_MODE, and SUBREG_BYTE, return the
bit offset at which the subreg begins (counting from the least significant
bit of the operand).   

References GET_MODE_SIZE(), ggc_alloc(), and subreg_size_lsb().

Referenced by simplify_context::simplify_subreg(), and subreg_lsb().

◆ subreg_memory_offset() [1/2]

poly_int64 subreg_memory_offset ( const_rtx x)
extern
As above, but return the offset that existing subreg X would have
if SUBREG_REG (X) were stored in memory.  The only significant thing
about the current SUBREG_REG is its mode.   

References GET_MODE, SUBREG_BYTE, subreg_memory_offset(), and SUBREG_REG.

◆ subreg_memory_offset() [2/2]

poly_int64 subreg_memory_offset ( machine_mode outer_mode,
machine_mode inner_mode,
poly_uint64 offset )
extern
Return the offset of (subreg:OUTER_MODE (mem:INNER_MODE X) OFFSET)
from address X.  For paradoxical big-endian subregs this is a
negative value, otherwise it's the same as OFFSET.   

References gcc_assert, ggc_alloc(), known_eq, offset, paradoxical_subreg_p(), and subreg_lowpart_offset().

Referenced by simplify_context::simplify_binary_operation_1(), simplify_context::simplify_subreg(), store_bit_field_1(), subreg_memory_offset(), and undefined_operand_subword_p().

◆ subreg_nregs()

◆ subreg_nregs_with_regno()

unsigned int subreg_nregs_with_regno ( unsigned int regno,
const_rtx x )
extern
Return the number of registers that a subreg REG with REGNO
expression refers to.  This is a copy of the rtlanal.cc:subreg_nregs
changed so that the regno can be passed in.  

References GET_MODE, ggc_alloc(), subreg_info::nregs, SUBREG_BYTE, subreg_get_info(), and SUBREG_REG.

Referenced by subreg_nregs().

◆ subreg_offset_from_lsb()

poly_uint64 subreg_offset_from_lsb ( machine_mode outer_mode,
machine_mode inner_mode,
poly_uint64 lsb_shift )
inline
Return the subreg byte offset for a subreg whose outer mode is
OUTER_MODE, whose inner mode is INNER_MODE, and where there are
LSB_SHIFT *bits* between the lsb of the outer value and the lsb of
the inner value.  This is the inverse of subreg_lsb_1 (which converts
byte offsets to bit shifts).   

References GET_MODE_SIZE(), ggc_alloc(), and subreg_size_offset_from_lsb().

Referenced by find_shift_sequence(), and make_extraction().

◆ subreg_offset_representable_p()

bool subreg_offset_representable_p ( unsigned int xregno,
machine_mode xmode,
poly_uint64 offset,
machine_mode ymode )
extern
This function returns true when the offset is representable via
subreg_offset in the given regno.
xregno - A regno of an inner hard subreg_reg (or what will become one).
xmode  - The mode of xregno.
offset - The byte offset.
ymode  - The mode of a top level SUBREG (or what may become one).
RETURN - Whether the offset is representable.   

References ggc_alloc(), offset, subreg_info::representable_p, and subreg_get_info().

Referenced by validate_subreg().

◆ subreg_promoted_mode()

scalar_int_mode subreg_promoted_mode ( rtx x)
inline
Return the promoted (inner) mode of SUBREG_PROMOTED_VAR_P subreg X.   

References gcc_checking_assert, GET_MODE, ggc_alloc(), SUBREG_PROMOTED_VAR_P, and SUBREG_REG.

Referenced by convert_modes(), convert_move(), expand_assignment(), and store_expr().

◆ subreg_regno()

◆ subreg_regno_offset()

unsigned int subreg_regno_offset ( unsigned int xregno,
machine_mode xmode,
poly_uint64 offset,
machine_mode ymode )
extern
This function returns the regno offset of a subreg expression.
xregno - A regno of an inner hard subreg_reg (or what will become one).
xmode  - The mode of xregno.
offset - The byte offset.
ymode  - The mode of a top level SUBREG (or what may become one).
RETURN - The regno offset which would be used.   

References ggc_alloc(), offset, subreg_info::offset, and subreg_get_info().

Referenced by add_stored_regs(), choose_reload_regs(), constrain_operands(), df_ref_record(), find_dummy_reload(), find_reloads(), find_reloads_address_1(), get_hard_regno(), go_through_subreg(), maybe_mode_change(), move2add_valid_value_p(), operands_match_p(), push_reload(), reg_overlap_mentioned_for_reload_p(), reload_combine_note_store(), subreg_regno(), and var_lowpart().

◆ subreg_size_highpart_offset()

poly_uint64 subreg_size_highpart_offset ( poly_uint64 outer_bytes,
poly_uint64 inner_bytes )
extern
Return the SUBREG_BYTE for a highpart subreg whose outer mode has
OUTER_BYTES bytes and whose inner mode has INNER_BYTES bytes.   

References gcc_assert, ggc_alloc(), known_ge, and subreg_size_offset_from_lsb().

Referenced by subreg_highpart_offset().

◆ subreg_size_lowpart_offset()

poly_uint64 subreg_size_lowpart_offset ( poly_uint64 outer_bytes,
poly_uint64 inner_bytes )
extern
Return the SUBREG_BYTE for a lowpart subreg whose outer mode has
OUTER_BYTES bytes and whose inner mode has INNER_BYTES bytes.   

References gcc_checking_assert, ggc_alloc(), maybe_gt, and subreg_size_offset_from_lsb().

Referenced by alter_reg(), assign_mem_slot(), maybe_mode_change(), subreg_get_info(), and subreg_lowpart_offset().

◆ subreg_size_lsb()

poly_uint64 subreg_size_lsb ( poly_uint64 outer_bytes,
poly_uint64 inner_bytes,
poly_uint64 subreg_byte )
extern
Reinterpret a subreg as a bit extraction from an integer and return
the position of the least significant bit of the extracted value.
In other words, if the extraction were performed as a shift right
and mask, return the number of bits to shift right.

The outer value of the subreg has OUTER_BYTES bytes and starts at
byte offset SUBREG_BYTE within an inner value of INNER_BYTES bytes.   

References gcc_assert, gcc_checking_assert, ggc_alloc(), known_eq, known_le, and maybe_gt.

Referenced by native_decode_rtx(), native_encode_rtx(), and subreg_lsb_1().

◆ subreg_size_offset_from_lsb()

poly_uint64 subreg_size_offset_from_lsb ( poly_uint64 outer_bytes,
poly_uint64 inner_bytes,
poly_uint64 lsb_shift )
extern
Return the subreg byte offset for a subreg whose outer value has
OUTER_BYTES bytes, whose inner value has INNER_BYTES bytes, and where
there are LSB_SHIFT *bits* between the lsb of the outer value and the
lsb of the inner value.  This is the inverse of the calculation
performed by subreg_lsb_1 (which converts byte offsets to bit shifts).   

References gcc_checking_assert, ggc_alloc(), known_eq, and maybe_gt.

Referenced by native_decode_rtx(), subreg_offset_from_lsb(), subreg_size_highpart_offset(), and subreg_size_lowpart_offset().

◆ subreg_unpromoted_mode()

scalar_int_mode subreg_unpromoted_mode ( rtx x)
inline
Return the unpromoted (outer) mode of SUBREG_PROMOTED_VAR_P subreg X.   

References gcc_checking_assert, GET_MODE, ggc_alloc(), and SUBREG_PROMOTED_VAR_P.

Referenced by expand_assignment(), and store_expr().

◆ swap_commutative_operands_p()

◆ swap_condition()

◆ tablejump_casesi_pattern()

rtx tablejump_casesi_pattern ( const rtx_insn * insn)
extern
For INSN known to satisfy tablejump_p, determine if it actually is a
CASESI.  Return the insn pattern if so, NULL_RTX otherwise.   

References GET_CODE, ggc_alloc(), NULL, NULL_RTX, pc_rtx, SET_DEST, SET_SRC, single_set(), and XEXP.

Referenced by create_trace_edges(), and patch_jump_insn().

◆ tablejump_p()

◆ tls_referenced_p()

bool tls_referenced_p ( const_rtx x)
extern
Return true if X contains a thread-local symbol.   

References FOR_EACH_SUBRTX, GET_CODE, ggc_alloc(), SYMBOL_REF_TLS_MODEL, and targetm.

◆ true_dependence()

bool true_dependence ( const_rtx mem,
machine_mode mem_mode,
const_rtx x )
extern
True dependence: X is read after store in MEM takes place.   

References NULL_RTX, and true_dependence_1().

Referenced by find_mem_conflicts(), load_kills_store(), memref_referenced_p(), mems_conflict_for_gcse_p(), and safe_from_p().

◆ true_regnum()

int true_regnum ( const_rtx x)
extern
If X is a hard register or equivalent to one or a subregister of one,
return the hard register number.  If X is a pseudo register that was not
assigned a hard register, return the pseudo register number.  Otherwise,
return -1.  Any rtx is valid for X.   

References GET_CODE, GET_MODE, ggc_alloc(), lra_in_progress, subreg_info::offset, REG_P, reg_renumber, REGNO, subreg_info::representable_p, SUBREG_BYTE, subreg_get_info(), SUBREG_REG, and true_regnum().

Referenced by choose_reload_regs(), clear_reload_reg_in_use(), deallocate_reload_reg(), decompose(), find_equiv_reg(), find_reusable_reload(), reload_cse_simplify_operands(), reload_cse_simplify_set(), reload_reg_free_for_value_p(), set_reload_reg(), and true_regnum().

◆ trunc_int_for_mode() [1/2]

◆ trunc_int_for_mode() [2/2]

poly_int64 trunc_int_for_mode ( poly_int64 x,
machine_mode mode )
extern
Likewise for polynomial values, using the sign-extended representation
for each individual coefficient.   

References poly_int< N, C >::coeffs, i, NUM_POLY_INT_COEFFS, and trunc_int_for_mode().

◆ truncated_to_mode()

bool truncated_to_mode ( machine_mode mode,
const_rtx x )
extern
Suppose that truncation from the machine mode of X to MODE is not a
no-op.  See if there is anything special about X so that we can
assume it already contains a truncated value of MODE.   

References GET_MODE, num_sign_bit_copies(), num_sign_bit_copies_in_rep, REG_P, and rtl_hooks::reg_truncated_to_mode.

Referenced by simplify_context::simplify_unary_operation_1().

◆ try_split()

rtx_insn * try_split ( rtx pat,
rtx_insn * trial,
int last )
extern

◆ unshare_all_rtl()

◆ unshare_all_rtl_again()

void unshare_all_rtl_again ( rtx_insn * insn)
extern
Go through all the RTL insn bodies and copy any invalid shared
structure, again.  This is a fairly expensive thing to do so it
should be done sparingly.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, cfun, DECL_ARGUMENTS, DECL_CHAIN, DECL_INITIAL, DECL_RTL, FOR_EACH_VEC_SAFE_ELT, i, INSN_P, NEXT_INSN(), PATTERN(), REG_NOTES, reset_used_flags(), set_used_decls(), set_used_flags(), stack_slot_list, and unshare_all_rtl_1().

Referenced by lra(), and reload().

◆ unshare_all_rtl_in_chain()

void unshare_all_rtl_in_chain ( rtx_insn * insn)
extern
Go through all the RTL insn bodies and copy any invalid shared structure.
Assumes the mark bits are cleared at entry.   

References CALL_INSN_FUNCTION_USAGE, CALL_P, copy_rtx_if_shared(), INSN_P, NEXT_INSN(), PATTERN(), and REG_NOTES.

Referenced by add_test(), doloop_modify(), end_ifcvt_sequence(), noce_convert_multiple_sets(), noce_process_if_block(), try_split(), unroll_loop_runtime_iterations(), and unshare_all_rtl_1().

◆ unsigned_condition()

enum rtx_code unsigned_condition ( enum rtx_code code)
extern
Given a comparison CODE, return the corresponding unsigned comparison.
If CODE is an equality comparison or already an unsigned comparison,
CODE is returned.   

References gcc_unreachable, and ggc_alloc().

Referenced by do_compare_rtx_and_jump(), emit_cmp_and_jump_insns(), emit_conditional_add(), emit_conditional_move(), emit_store_flag_1(), simplify_comparison(), and unsigned_condition_p().

◆ unsigned_condition_p()

bool unsigned_condition_p ( enum rtx_code code)
inline
Return true if integer comparison operator CODE interprets its operands
as unsigned.   

References unsigned_condition().

Referenced by canonicalize_comparison().

◆ unsigned_reg_p()

bool unsigned_reg_p ( rtx op)
extern
Return TRUE if OP is a register or subreg of a register that
holds an unsigned quantity.  Otherwise, return FALSE.   

References GET_CODE, ggc_alloc(), REG_EXPR, REG_P, SUBREG_PROMOTED_SIGN, TREE_TYPE, and TYPE_UNSIGNED.

◆ unwrap_const_vec_duplicate()

template<typename T >
T unwrap_const_vec_duplicate ( T x)
inline
If X is a vector constant with a duplicated element value, return that
element value, otherwise return X.   

References const_vec_duplicate_p(), and CONST_VECTOR_ELT.

Referenced by expand_mult().

◆ update_address()

void update_address ( struct address_info * info)
extern
Update INFO after a change to the address it describes.   

References decompose_address().

Referenced by equiv_address_substitution().

◆ update_alignments()

void update_alignments ( vec< rtx > & label_pairs)
extern
Update the already computed alignment information.  LABEL_PAIRS is a vector
made up of pairs of labels for which the alignment information of the first
element will be copied from that of the second element.   

References FOR_EACH_VEC_ELT, ggc_alloc(), grow_label_align(), i, LABEL_TO_ALIGNMENT, max_label_num(), max_labelno, and NULL_RTX.

Referenced by dbr_schedule().

◆ val_signbit_known_clear_p()

bool val_signbit_known_clear_p ( machine_mode mode,
unsigned HOST_WIDE_INT val )
extern
Test whether the most significant bit of mode MODE is clear in VAL.
Returns false if the precision of MODE is too large to handle.   

References GET_MODE_PRECISION(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_1U, and is_int_mode().

Referenced by simplify_shift_const_1(), and simplify_context::simplify_unary_operation_1().

◆ val_signbit_known_set_p()

bool val_signbit_known_set_p ( machine_mode mode,
unsigned HOST_WIDE_INT val )
extern
Test whether the most significant bit of mode MODE is set in VAL.
Returns false if the precision of MODE is too large to handle.   

References GET_MODE_PRECISION(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_1U, and is_int_mode().

Referenced by canonicalize_condition(), emit_cstore(), emit_store_flag_1(), find_comparison_args(), nonzero_bits1(), sign_extend_short_imm(), and simplify_comparison().

◆ val_signbit_p()

bool val_signbit_p ( machine_mode mode,
unsigned HOST_WIDE_INT val )
extern
Test whether VAL is equal to the most significant bit of mode MODE
(after masking with the mode mask of MODE).  Returns false if the
precision of MODE is too large to handle.   

References GET_MODE_MASK, GET_MODE_PRECISION(), ggc_alloc(), HOST_BITS_PER_WIDE_INT, HOST_WIDE_INT_1U, and is_int_mode().

Referenced by combine_simplify_rtx(), emit_store_flag(), emit_store_flag_1(), force_int_to_mode(), and simplify_context::simplify_binary_operation_1().

◆ valid_mode_changes_for_regno()

const HARD_REG_SET * valid_mode_changes_for_regno ( unsigned int regno)
extern

◆ validate_subreg()

◆ variable_tracking_main()

unsigned int variable_tracking_main ( void )
extern
In var-tracking.cc  

References ggc_alloc(), and variable_tracking_main_1().

◆ vec_duplicate_p()

template<typename T >
bool vec_duplicate_p ( T x,
T * elt )
inline
Return true if X is a vector with a duplicated element value, either
constant or nonconstant.  Store the duplicated element in *ELT if so.   

References const_vec_duplicate_p(), GET_CODE, GET_MODE, ggc_alloc(), VECTOR_MODE_P, and XEXP.

Referenced by simplify_context::simplify_binary_operation_1(), simplify_context::simplify_binary_operation_series(), simplify_context::simplify_subreg(), and simplify_context::simplify_unary_operation_1().

◆ vec_series_p()

bool vec_series_p ( const_rtx x,
rtx * base_out,
rtx * step_out )
inline
Return true if X is a vector that contains a linear series of the
form:

{ B, B + S, B + 2 * S, B + 3 * S, ... }

where B and S are constant or nonconstant.  Store B and S in
*BASE_OUT and *STEP_OUT on sucess.   

References const_vec_series_p(), GET_CODE, ggc_alloc(), and XEXP.

Referenced by simplify_context::simplify_binary_operation_series(), and simplify_context::simplify_unary_operation_1().

◆ verify_rtl_sharing()

void verify_rtl_sharing ( void )
extern
Go through all the RTL insn bodies and check that there is no unexpected
sharing in between the subexpressions.   

References GET_CODE, get_insns(), ggc_alloc(), i, INSN_P, NEXT_INSN(), PATTERN(), reset_all_used_flags(), timevar_pop(), timevar_push(), verify_insn_sharing(), XVECEXP, and XVECLEN.

Referenced by execute_function_todo().

◆ volatile_insn_p()

bool volatile_insn_p ( const_rtx x)
extern
Return true if X contains any volatile instructions.  These are instructions
which may cause unpredictable machine state instructions, and thus no
instructions or register uses should be moved or combined across them.
This includes only volatile asms and UNSPEC_VOLATILE instructions.   

References CASE_CONST_ANY, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_VOLATILE_P, RTX_CODE, volatile_insn_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by can_combine_p(), can_move_insns_across(), dead_debug_insert_temp(), find_equiv_reg(), propagate_for_debug(), propagate_for_debug_subst(), reload_combine(), and volatile_insn_p().

◆ volatile_refs_p()

bool volatile_refs_p ( const_rtx x)
extern
Return true if X contains any volatile memory references
UNSPEC_VOLATILE operations or volatile ASM_OPERANDS expressions.   

References CASE_CONST_ANY, GET_CODE, GET_RTX_FORMAT, GET_RTX_LENGTH, ggc_alloc(), i, MEM_VOLATILE_P, RTX_CODE, volatile_refs_p(), XEXP, XVECEXP, and XVECLEN.

Referenced by can_combine_p(), deletable_insn_p_1(), forward_propagate_into(), process_bb_lives(), scan_insn(), try_combine(), and volatile_refs_p().

◆ vt_equate_reg_base_value()

void vt_equate_reg_base_value ( const_rtx reg1,
const_rtx reg2 )
extern
Equate REG_BASE_VALUE (reg1) to REG_BASE_VALUE (reg2).
Special API for var-tracking pass purposes.   

References ggc_alloc(), REG_BASE_VALUE, and REGNO.

Referenced by vt_init_cfa_base().

◆ wider_subreg_mode() [1/2]

machine_mode wider_subreg_mode ( const_rtx x)
inline
Likewise for subreg X.   

References GET_MODE, SUBREG_REG, and wider_subreg_mode().

◆ wider_subreg_mode() [2/2]

machine_mode wider_subreg_mode ( machine_mode outermode,
machine_mode innermode )
inline
Given that a subreg has outer mode OUTERMODE and inner mode INNERMODE,
return the mode that is big enough to hold both the outer and inner
values.  Prefer the outer mode in the event of a tie.   

References ggc_alloc(), and partial_subreg_p().

Referenced by add_pseudo_to_slot(), add_regs_to_insn_regno_info(), alter_reg(), assign_mem_slot(), assign_stack_slot_num_and_sort_pseudos(), coalesced_pseudo_reg_slot_compare(), collect_non_operand_hard_regs(), invariant_p(), ira_sort_regnos_for_alter_reg(), process_alt_operands(), uses_hard_regs_p(), and wider_subreg_mode().

◆ word_register_operation_p()

bool word_register_operation_p ( const_rtx x)
inline
Return true if X is an operation that always operates on the full
registers for WORD_REGISTER_OPERATIONS architectures.   

References GET_CODE, and ggc_alloc().

Referenced by nonzero_bits1(), num_sign_bit_copies1(), and record_dead_and_set_regs_1().

Variable Documentation

◆ const_int_rtx

rtx const_int_rtx[MAX_SAVED_CONST_INT *2+1]
extern
We make one copy of (const_int C) where C is in
[- MAX_SAVED_CONST_INT, MAX_SAVED_CONST_INT]
to save space during the compilation and simplify comparisons of
integers.   

Referenced by gen_rtx_CONST_INT(), and init_emit_once().

◆ const_tiny_rtx

rtx const_tiny_rtx[4][(int) MAX_MACHINE_MODE]
extern
We record floating-point CONST_DOUBLEs in each floating-point mode for
the values of 0, 1, and 2.  For the integer entries and VOIDmode, we
record a copy of const[012]_rtx and constm1_rtx.  CONSTM1_RTX
is set only for MODE_INT and MODE_VECTOR_INT modes.   

Referenced by gen_const_vector(), and init_emit_once().

◆ const_true_rtx

◆ cse_not_expected

int cse_not_expected
extern
If this is nonzero, we do not bother generating VOLATILE
around volatile memory references, and we are willing to
output indirect addresses.  If cse is to follow, we reject
indirect addresses so a useful potential cse is generated;
if it is used only once, instruction combination will produce
the same indirect address eventually.   
Convert tree expression to rtl instructions, for GNU compiler.
   Copyright (C) 1988-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Include expr.h after insn-config.h so we get HAVE_conditional_move.   
If this is nonzero, we do not bother generating VOLATILE
around volatile memory references, and we are willing to
output indirect addresses.  If cse is to follow, we reject
indirect addresses so a useful potential cse is generated;
if it is used only once, instruction combination will produce
the same indirect address eventually.   

Referenced by memory_address_addr_space(), noce_try_cmove_arith(), prepare_function_start(), rest_of_handle_cse(), rest_of_handle_cse2(), rest_of_handle_cse_after_global_opts(), and use_anchored_address().

◆ currently_expanding_to_rtl

◆ default_target_rtl

struct target_rtl default_target_rtl
extern
Emit RTL for the GCC expander.
   Copyright (C) 1987-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
Middle-to-low level generation of rtx code and insns.

This file contains support functions for creating rtl expressions
and manipulating them in the doubly-linked chain of insns.

The patterns of the insns are created by machine-dependent
routines in insn-emit.cc, which is generated automatically from
the machine description.  These routines make the individual rtx's
of the pattern with `gen_rtx_fmt_ee' and others in genrtl.[ch],
which are automatically generated from rtl.def; what is machine
dependent is the kind of rtx's they make and what arguments they
use.   

◆ eliminable_regset

◆ epilogue_completed

◆ epilogue_location

location_t epilogue_location

◆ general_rtl_hooks

const struct rtl_hooks general_rtl_hooks
extern
... but then it has to restore these.   
Generic hooks for the RTL middle-end.
   Copyright (C) 2004-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
For speed, we will copy the RTX hooks struct member-by-member
instead of doing indirect calls.  For these reason, we initialize
*two* struct rtl_hooks globals: rtl_hooks is the one that is used
to actually call the hooks, while general_rtl_hooks is used
to restore the hooks by passes that modify them.   

Referenced by combine_instructions(), and cse_main().

◆ generating_concat_p

int generating_concat_p
extern

◆ global_regs_decl

tree global_regs_decl[FIRST_PSEUDO_REGISTER]
extern
reginfo.cc  
Declaration for the global register.  

Referenced by clear_global_regs_cache(), do_reload(), and globalize_reg().

◆ invalid_insn_rtx

rtx_insn* invalid_insn_rtx
extern
Marker used for denoting an INSN, which should never be accessed (i.e.,
this pointer should normally never be dereferenced), but is required to be
distinct from NULL_RTX.  Currently used by peephole2 pass.   

Referenced by init_emit_once().

◆ ira_in_progress

bool ira_in_progress
extern
Set to true while in IRA.   

◆ lra_in_progress

◆ note_insn_name

const char* const note_insn_name[NOTE_INSN_MAX]
extern
Names for NOTE insn's other than line numbers.   
Names for kinds of NOTEs and REG_NOTEs.   

◆ pc_rtx

◆ print_rtx_head

const char* print_rtx_head
extern
In print-rtl.cc  
Print RTL for GCC.
   Copyright (C) 1987-2024 Free Software Foundation, Inc.

This file is part of GCC.

GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 3, or (at your option) any later
version.

GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING3.  If not see
<http://www.gnu.org/licenses/>.   
This file is compiled twice: once for the generator programs,
once for the compiler.   
These headers all define things which are not available in
generator programs.   
Disable warnings about quoting issues in the pp_xxx calls below
that (intentionally) don't follow GCC diagnostic conventions.   
String printed at beginning of each RTL when it is dumped.
This string is set to ASM_COMMENT_START when the RTL is dumped in
the assembly output file.   

Referenced by final_scan_insn_1(), print_insn_with_notes(), print_pattern(), rtx_writer::print_rtl(), rtx_writer::print_rtl_single_with_indent(), print_rtl_with_bb(), rtx_writer::print_rtx(), rtx_writer::print_rtx_operand_code_0(), rtx_writer::print_rtx_operand_code_e(), and rtx_writer::print_rtx_operand_codes_E_and_V().

◆ prologue_location

◆ reg_note_name

const char* const reg_note_name[]
extern
Names for REG_NOTE's in EXPR_LIST insn's.   

◆ reload_completed

int reload_completed
extern
Nonzero after end of reload pass.
Set to 1 or 0 by reload1.cc.   
Nonzero after end of reload pass.
Set to 1 or 0 by toplev.cc.
Controls the significance of (SUBREG (MEM)).   

Referenced by active_insn_p(), asm_operand_ok(), can_combine_def_p(), can_move_insns_across(), can_replace_by(), cfg_layout_can_merge_blocks_p(), cfg_layout_finalize(), change_address_1(), check_asm_operands(), check_rtl(), cleanup_cfg(), compute_use_by_pseudos(), cond_exec_find_if_block(), cond_exec_process_insns(), cselib_invalidate_regno(), cselib_process_insn(), deletable_insn_p(), delete_trivially_dead_insns(), df_exit_block_uses_collect(), df_get_eh_block_artificial_uses(), df_get_entry_block_def_set(), df_get_exit_block_use_set(), df_get_regular_block_artificial_uses(), df_insn_delete(), df_lr_local_compute(), dump_reg_info(), emit_move_complex_parts(), emit_move_multi_word(), equal_different_set_p(), extract_constrain_insn(), extract_constrain_insn_cached(), find_cond_trap(), find_if_header(), fixup_fallthru_exit_predecessor(), flow_find_cross_jump(), gen_lowpart_general(), gen_rtx_REG(), general_operand(), hash_rtx(), indirect_operand(), init_alias_analysis(), insn_invalid_p(), insns_have_identical_cfa_notes(), lra(), memory_operand(), noce_emit_cmove(), noce_find_if_block(), old_insns_match_p(), operand_subword(), peep2_find_free_register(), prepare_operand(), record_store(), register_operand(), reload(), rest_of_clean_state(), rtl_can_merge_blocks(), rtl_for_decl_location(), scan_insn(), simplify_operand_subreg(), simplify_subreg_regno(), skip_pass(), split_all_insns(), split_all_insns_noflow(), split_insn(), thread_jump(), try_crossjump_to_edge(), try_optimize_cfg(), try_redirect_by_replacing_jump(), try_split(), and verify_rtx_sharing().

◆ reload_in_progress

int reload_in_progress
extern
Set to 1 while reload_as_needed is operating.
Required by some machines to handle any generated moves differently.   

Referenced by change_address_1(), constrain_operands(), emit_move_change_mode(), emit_move_complex_parts(), emit_move_multi_word(), gen_rtx_REG(), insn_invalid_p(), reload(), and verify_rtx_sharing().

◆ ret_rtx

◆ rtl_hooks

struct rtl_hooks rtl_hooks
extern
Each pass can provide its own.   

◆ rtx_class

Indexed by rtx code, gives a character representing the "class" of
that rtx code.  See rtl.def for documentation on the defined classes.   

◆ rtx_code_size

const unsigned char rtx_code_size[NUM_RTX_CODE]
extern
Indexed by rtx code, gives the size of the rtx in bytes.   

◆ rtx_format

const char* const rtx_format[NUM_RTX_CODE]
extern
Indexed by rtx code, gives a sequence of operand-types for
rtx's of that code.  The sequence is a C string in which
each character describes one operand.   

◆ rtx_length

const unsigned char rtx_length[NUM_RTX_CODE]
extern

◆ rtx_name

◆ rtx_next

const unsigned char rtx_next[NUM_RTX_CODE]
extern

◆ simple_return_rtx

◆ SRP_POINTER

const int SRP_POINTER = -1
Valid for subregs which are SUBREG_PROMOTED_VAR_P().  In that case
this gives the necessary extensions:
0  - signed (SPR_SIGNED)
1  - normal unsigned (SPR_UNSIGNED)
2  - value is both sign and unsign extended for mode
     (SPR_SIGNED_AND_UNSIGNED).
-1 - pointer unsigned, which most often can be handled like unsigned
     extension, except for generating instructions where we need to
     emit special code (ptr_extend insns) on some architectures
     (SPR_POINTER).  

◆ SRP_SIGNED

const int SRP_SIGNED = 0

◆ SRP_SIGNED_AND_UNSIGNED

const int SRP_SIGNED_AND_UNSIGNED = 2

◆ SRP_UNSIGNED

const int SRP_UNSIGNED = 1

◆ stack_limit_rtx

rtx stack_limit_rtx
extern
In toplev.cc  
-f flags.   
When non-NULL, indicates that whenever space is allocated on the
stack, the resulting stack pointer must not pass this
address---that is, for stacks that grow downward, the stack pointer
must always be greater than or equal to this address; for stacks
that grow upward, the stack pointer must be less than this address.
At present, the rtx may be either a REG or a SYMBOL_REF, although
the support provided depends on the backend.   

Referenced by allocate_dynamic_stack_space(), expand_function_start(), handle_common_deferred_options(), and init_emit_regs().