From 46042c015e2827a82487956b0f50995e4fb80dc4 Mon Sep 17 00:00:00 2001
From: Jan Hubicka <jh@suse.cz>
Date: Fri, 12 Oct 2012 22:36:09 +0200
Subject: [PATCH] * web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.

From-SVN: r192413
---
 gcc/ChangeLog                  |  4 ++++
 gcc/testsuite/ChangeLog        |  4 ++++
 gcc/testsuite/gcc.dg/webizer.c | 35 ++++++++++++++++++++++++++++++++++
 gcc/web.c                      |  3 ++-
 4 files changed, 45 insertions(+), 1 deletion(-)
 create mode 100644 gcc/testsuite/gcc.dg/webizer.c

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c948ab1607a8..f628e709a85e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2012-10-12  Jan Hubicka <jh@suse.cz>
+
+	* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
+
 2012-10-12  Aaron Gray <aaronngray.lists@gmail.com>
 	    Diego Novillo <dnovillo@google.com>
 
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5cff4875fd80..2f4633e2f99a 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2012-10-12  Jan Hubicka <jh@suse.cz>
+
+	* gcc.dg/webizer.c: New testcase.
+
 2012-10-12  Janis Johnson  <janisjo@codesourcery.com>
 
 	* gcc.dg/vect/pr48765.c: Skip for conflicting options, don't
diff --git a/gcc/testsuite/gcc.dg/webizer.c b/gcc/testsuite/gcc.dg/webizer.c
new file mode 100644
index 000000000000..607bf6884d6b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/webizer.c
@@ -0,0 +1,35 @@
+/* { dg-do run } */
+/* { dg-options "-O3 -funroll-loops" } */
+typedef struct rowbox {
+    int startx ;
+    int endx ;
+    int endx1 ;
+    int startx2 ;
+    int ypos ;
+    int desiredL ;
+} ROWBOX ;
+ROWBOX rowArray1[2] ;
+ROWBOX *rowArray = rowArray1;
+
+int numRows = 2;
+
+int row = 1;
+int block = 0;
+double ckt_size_factor ;
+
+__attribute__ ((noinline))
+configure2()
+{
+  block = 0 ;
+  for( row = 1 ; row <= numRows ; row++ ) {
+      block++ ;
+    if( rowArray[row].endx1 > 0 ) {
+      block++ ;
+    }
+  }
+}
+
+main()
+{
+  configure2();
+}
diff --git a/gcc/web.c b/gcc/web.c
index f60b4b6ad84e..74904d2c350b 100644
--- a/gcc/web.c
+++ b/gcc/web.c
@@ -313,7 +313,8 @@ web_main (void)
   rtx insn;
 
   df_set_flags (DF_NO_HARD_REGS + DF_EQ_NOTES);
-  df_set_flags (DF_RD_PRUNE_DEAD_DEFS);
+  /* We can not RD_PRUNE_DEAD_DEFS, because we care about REG_EQUAL
+     notes.  */
   df_chain_add_problem (DF_UD_CHAIN);
   df_analyze ();
   df_set_flags (DF_DEFER_INSN_RESCAN);
-- 
GitLab