From: Richard Henderson Date: Mon, 18 Sep 2000 18:08:19 +0000 (-0700) Subject: * combine.c (try_combine): Allow split to create a single insn. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=d340408c13f21efcbf7b012cfa7ccd3653b31281;p=gcc.git * combine.c (try_combine): Allow split to create a single insn. From-SVN: r36504 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 403109833e7..a4612dd21a4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,7 @@ 2000-09-18 Richard Henderson + * combine.c (try_combine): Allow split to create a single insn. + * machmode.def: Add BImode. Add a column for bitsize. * machmode.h (DEF_MACHMODE): Adjust for extra column. (GET_MODE_BITSIZE): Use it. diff --git a/gcc/combine.c b/gcc/combine.c index be73be30d7c..07c7e6733f4 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2107,11 +2107,17 @@ try_combine (i3, i2, i1, new_direct_jump_p) i3); } - if (m_split && GET_CODE (m_split) == SEQUENCE - && XVECLEN (m_split, 0) == 2 - && (next_real_insn (i2) == i3 - || ! use_crosses_set_p (PATTERN (XVECEXP (m_split, 0, 0)), - INSN_CUID (i2)))) + if (m_split && GET_CODE (m_split) != SEQUENCE) + { + insn_code_number = recog_for_combine (&m_split, i3, &new_i3_notes); + if (insn_code_number >= 0) + newpat = m_split; + } + else if (m_split && GET_CODE (m_split) == SEQUENCE + && XVECLEN (m_split, 0) == 2 + && (next_real_insn (i2) == i3 + || ! use_crosses_set_p (PATTERN (XVECEXP (m_split, 0, 0)), + INSN_CUID (i2)))) { rtx i2set, i3set; rtx newi3pat = PATTERN (XVECEXP (m_split, 0, 1));