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]

strengthen protection against REG_EQUIV/EQUAL on !REG set


Hello,

This is a followup on a suggestion made along the thread at

  http://gcc.gnu.org/ml/gcc-patches/2010-09/msg00967.html

where we were observing the middle-end setting invalid REG_EQUIV
notes on set(mem) insns. At the time we had fixed specific locations
where this was happening via explicit calls to set_unique_reg_note.

Steven suggested to add some code to set_unique_reg_note as well. This
patch implements this suggestion. We (AdaCore) have been using it without
problem for a while now, it turned out useful to prevent a real case in
the gcc-4.5 series and we never saw the original issue resurface again
since then.

Bootstrapped and regtested on x86_64-suse-linux

OK to commit ?

Thanks in advance,

With Kind Regards,

Olivier

2012-04-12  Olivier Hainque  <hainque@adacore.com>

 	* emit-rtl.c (set_unique_reg_note): Don't add REG_EQUAL or REG_EQUIV
	on a SET if the destination isn't a REG or a SUBREG of REG.

Attachment: regequiv.dif
Description: video/dv


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