This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: RTL sharing versus fwprop
> Would you check if this fixes PR32372?
Bootstrapped/regtested i686-linux, it adds about 40k on combine.c
compilation that seems to be in acceptable ratio.
Honza
typedef struct AVCodecContext
{
int flags;
void *priv_data;
char codec_name[32];
}
AVCodecContext;
typedef struct ScanTable
{
int obmc;
int umvplus;
int h263_aic;
}
MpegEncContext;
MPV_encode_init (AVCodecContext *avctx)
{
MpegEncContext *s = avctx->priv_data;
s->umvplus = (avctx->flags & 0x02000000) ? 1 : 0;
s->h263_aic = (avctx->flags & 0x01000000) ? 1 : 0;
s->h263_aic = s->obmc || s->umvplus;
}
PR middle-end/32372
* cse.c (cse_insn): Avoid invalid sharing in between register note and
the insn pattern.
Index: cse.c
===================================================================
--- cse.c (revision 125972)
+++ cse.c (working copy)
@@ -4181,10 +4184,10 @@ cse_insn (rtx insn, rtx libcall_insn)
canon_reg (XEXP (tem, 0), insn);
apply_change_group ();
src_eqv = fold_rtx (XEXP (tem, 0), insn);
- XEXP (tem, 0) = src_eqv;
+ XEXP (tem, 0) = copy_rtx (src_eqv);
df_notes_rescan (insn);
}
/* Canonicalize sources and addresses of destinations.
We do this in a separate pass to avoid problems when a MATCH_DUP is
present in the insn pattern. In that case, we want to ensure that