From c71e12010352a78de030b253bba4792d4d0fc005 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Tue, 24 Oct 2000 20:24:03 +0000 Subject: [PATCH] combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL when deleting libcall sequence collapsed to... * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL when deleting libcall sequence collapsed to a single instruction. From-SVN: r37037 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 729e8899f0f..66148dcedfa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2000-10-24 Alexandre Oliva + + * combine.c (distribute_notes): Discard REG_LIBCALL and REG_RETVAL + when deleting libcall sequence collapsed to a single instruction. + 2000-10-24 Andrew Haley * expr.c (do_store_flag): Don't crash if either side of a diff --git a/gcc/combine.c b/gcc/combine.c index f381c142f64..3f90230d1e7 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -12239,6 +12239,10 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) place = prev_real_insn (from_insn); if (tem && place) XEXP (tem, 0) = place; + /* If we're deleting the last remaining instruction of a + libcall sequence, don't add the notes. */ + else if (XEXP (note, 0) == from_insn) + tem = place = 0; } break; @@ -12252,6 +12256,10 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) place = next_real_insn (from_insn); if (tem && place) XEXP (tem, 0) = place; + /* If we're deleting the last remaining instruction of a + libcall sequence, don't add the notes. */ + else if (XEXP (note, 0) == from_insn) + tem = place = 0; } break; -- 2.30.2