Replace PREV_INSN et al macros with functions
gcc/ 2014-08-19 David Malcolm <dmalcolm@redhat.com> * rtl.h (PREV_INSN): Convert to an inline function. Strengthen the return type from rtx to rtx_insn *, which will enable various conversions in followup patches. For now this is is done by a checked cast. (NEXT_INSN): Likewise. (SET_PREV_INSN): Convert to an inline function. This is intended for use as an lvalue, and so returns an rtx& to allow in-place modification. (SET_NEXT_INSN): Likewise. From-SVN: r214152
This commit is contained in:
parent
c77935ee29
commit
6306c300db
2 changed files with 34 additions and 4 deletions
|
@ -1,3 +1,15 @@
|
|||
2014-08-19 David Malcolm <dmalcolm@redhat.com>
|
||||
|
||||
* rtl.h (PREV_INSN): Convert to an inline function. Strengthen
|
||||
the return type from rtx to rtx_insn *, which will enable various
|
||||
conversions in followup patches. For now this is is done by a
|
||||
checked cast.
|
||||
(NEXT_INSN): Likewise.
|
||||
(SET_PREV_INSN): Convert to an inline function. This is intended
|
||||
for use as an lvalue, and so returns an rtx& to allow in-place
|
||||
modification.
|
||||
(SET_NEXT_INSN): Likewise.
|
||||
|
||||
2014-07-08 Mark Wielaard <mjw@redhat.com>
|
||||
|
||||
PR debug/59051
|
||||
|
|
26
gcc/rtl.h
26
gcc/rtl.h
|
@ -972,15 +972,33 @@ extern void rtl_check_failed_flag (const char *, const_rtx, const char *,
|
|||
(RTL_INSN_CHAIN_FLAG_CHECK ("INSN_UID", (INSN))->u2.insn_uid)
|
||||
|
||||
/* 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. */
|
||||
|
||||
#define PREV_INSN(INSN) XEXP ((const_rtx)(INSN), 0)
|
||||
#define SET_PREV_INSN(INSN) XEXP (INSN, 0)
|
||||
#define NEXT_INSN(INSN) XEXP ((const_rtx)(INSN), 1)
|
||||
#define SET_NEXT_INSN(INSN) XEXP (INSN, 1)
|
||||
inline rtx_insn *PREV_INSN (const_rtx insn)
|
||||
{
|
||||
rtx prev = XEXP (insn, 0);
|
||||
return safe_as_a <rtx_insn *> (prev);
|
||||
}
|
||||
|
||||
inline rtx& SET_PREV_INSN (rtx insn)
|
||||
{
|
||||
return XEXP (insn, 0);
|
||||
}
|
||||
|
||||
inline rtx_insn *NEXT_INSN (const_rtx insn)
|
||||
{
|
||||
rtx next = XEXP (insn, 1);
|
||||
return safe_as_a <rtx_insn *> (next);
|
||||
}
|
||||
|
||||
inline rtx& SET_NEXT_INSN (rtx insn)
|
||||
{
|
||||
return XEXP (insn, 1);
|
||||
}
|
||||
|
||||
#define BLOCK_FOR_INSN(INSN) XBBDEF (INSN, 2)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue