This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]