On 08/06/2014 10:23 AM, David Malcolm wrote: > gcc/ > * rtl.h (rtx_expr_list::insn): New method. > --- > gcc/rtl.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/gcc/rtl.h b/gcc/rtl.h > index d028be1..d5811c2 100644 > --- a/gcc/rtl.h > +++ b/gcc/rtl.h > @@ -414,6 +414,10 @@ public: > > /* Get at the underlying rtx. */ > rtx element () const; > + > + /* Get at the rtx, casting to rtx_insn *. */ > + rtx_insn *insn () const; > + > }; > > template <> > @@ -1287,6 +1291,11 @@ inline rtx rtx_expr_list::element () const > return XEXP (this, 0); > } > > +inline rtx_insn *rtx_expr_list::insn () const > +{ > + return as_a <rtx_insn *> (XEXP (this, 0)); > +} > +
Even with the current code base we aren't *supposed* to be putting insns into an EXPR_LIST -- that's what INSN_LIST is for. Note the horribleness with which anything doing this will have in the rtl dumps. Can we please fix these uses instead of adding this accessor? r~