+2011-02-23 Jie Zhang <jie@codesourcery.com>
+
+ PR rtl-optimization/47763
+ * web.c (web_main): Ignore naked clobber when replacing register.
+
2011-02-22 Anatoly Sokolov <aesok@post.ru>
* config/stormy16/stormy16.h (REG_OK_FOR_BASE_P, REG_OK_FOR_INDEX_P):
+2011-02-23 Jie Zhang <jie@codesourcery.com>
+
+ PR rtl-optimization/47763
+ * gcc.dg/pr47763.c: New test.
+
2011-02-22 Paul Thomas <pault@gcc.gnu.org>
PR fortran/45743
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2 -funroll-loops -fdump-rtl-web" } */
+
+foo()
+{
+}
+
+/* { dg-final { scan-rtl-dump-not "Web oldreg" "web" } } */
+/* { dg-final { cleanup-rtl-dump "web" } } */
FOR_BB_INSNS (bb, insn)
{
unsigned int uid = INSN_UID (insn);
- if (NONDEBUG_INSN_P (insn))
+
+ if (NONDEBUG_INSN_P (insn)
+ /* Ignore naked clobber. For example, reg 134 in the second insn
+ of the following sequence will not be replaced.
+
+ (insn (clobber (reg:SI 134)))
+
+ (insn (set (reg:SI 0 r0) (reg:SI 134)))
+
+ Thus the later passes can optimize them away. */
+ && GET_CODE (PATTERN (insn)) != CLOBBER)
{
df_ref *use_rec;
df_ref *def_rec;