diff options
author | Richard Henderson <rth@cygnus.com> | 2000-09-18 11:08:19 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2000-09-18 11:08:19 -0700 |
commit | d340408c13f21efcbf7b012cfa7ccd3653b31281 (patch) | |
tree | 4c45aaf3ca9235ed0b2aeacb4d26f8fa29af56e9 /gcc/combine.c | |
parent | a191f0ee83fb815187657cadac361e883f496f01 (diff) | |
download | gcc-d340408c13f21efcbf7b012cfa7ccd3653b31281.zip gcc-d340408c13f21efcbf7b012cfa7ccd3653b31281.tar.gz gcc-d340408c13f21efcbf7b012cfa7ccd3653b31281.tar.bz2 |
* combine.c (try_combine): Allow split to create a single insn.
From-SVN: r36504
Diffstat (limited to 'gcc/combine.c')
-rw-r--r-- | gcc/combine.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/gcc/combine.c b/gcc/combine.c index be73be3..07c7e67 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)); |