Commit 12404d15 by H.J. Lu Committed by H.J. Lu

apply_subst_iterator: Handle define_split/define_insn_and_split

	* read-rtl.c (apply_subst_iterator): Handle define_split and
	define_insn_and_split.

From-SVN: r266341
parent f259abd2
2018-11-21 H.J. Lu <hongjiu.lu@intel.com>
* read-rtl.c (apply_subst_iterator): Handle define_split and
define_insn_and_split.
2018-11-21 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/87817
......@@ -272,12 +272,15 @@ apply_subst_iterator (rtx rt, unsigned int, int value)
rtx new_attr;
rtvec attrs_vec, new_attrs_vec;
int i;
if (value == 1)
/* define_split has no attributes. */
if (value == 1 || GET_CODE (rt) == DEFINE_SPLIT)
return;
gcc_assert (GET_CODE (rt) == DEFINE_INSN
|| GET_CODE (rt) == DEFINE_INSN_AND_SPLIT
|| GET_CODE (rt) == DEFINE_EXPAND);
attrs_vec = XVEC (rt, 4);
int attrs = GET_CODE (rt) == DEFINE_INSN_AND_SPLIT ? 7 : 4;
attrs_vec = XVEC (rt, attrs);
/* If we've already added attribute 'current_iterator_name', then we
have nothing to do now. */
......@@ -309,7 +312,7 @@ apply_subst_iterator (rtx rt, unsigned int, int value)
GET_NUM_ELEM (attrs_vec) * sizeof (rtx));
new_attrs_vec->elem[GET_NUM_ELEM (attrs_vec)] = new_attr;
}
XVEC (rt, 4) = new_attrs_vec;
XVEC (rt, attrs) = new_attrs_vec;
}
/* Map subst-attribute ATTR to subst iterator ITER. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment