aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorH.J. Lu <hongjiu.lu@intel.com>2018-11-21 13:08:26 +0000
committerH.J. Lu <hjl@gcc.gnu.org>2018-11-21 05:08:26 -0800
commit12404d1594873bc7cc70c6c10300b5c5fcf6ab1f (patch)
tree68897d0f4ccae70a608cdcf2c71a864db1dc7ec2 /gcc
parentf259abd260739aca06f8760dcbc0a1a567018ff2 (diff)
downloadgcc-12404d1594873bc7cc70c6c10300b5c5fcf6ab1f.zip
gcc-12404d1594873bc7cc70c6c10300b5c5fcf6ab1f.tar.gz
gcc-12404d1594873bc7cc70c6c10300b5c5fcf6ab1f.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/read-rtl.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 005ce0f..2728ccbe 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+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
diff --git a/gcc/read-rtl.c b/gcc/read-rtl.c
index d698dd4..dfe22d3 100644
--- a/gcc/read-rtl.c
+++ b/gcc/read-rtl.c
@@ -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. */