aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2012-10-12 22:36:09 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2012-10-12 20:36:09 +0000
commit46042c015e2827a82487956b0f50995e4fb80dc4 (patch)
tree68028a1cc17d7e2267e873280767c1506a3e9e7b /gcc
parent4a9ad29487b5a1829bcc1fdb4c588e779bc27dad (diff)
downloadgcc-46042c015e2827a82487956b0f50995e4fb80dc4.zip
gcc-46042c015e2827a82487956b0f50995e4fb80dc4.tar.gz
gcc-46042c015e2827a82487956b0f50995e4fb80dc4.tar.bz2
* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
From-SVN: r192413
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/testsuite/ChangeLog4
-rw-r--r--gcc/testsuite/gcc.dg/webizer.c35
-rw-r--r--gcc/web.c3
4 files changed, 45 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c948ab1..f628e70 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 5cff487..2f4633e 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 0000000..607bf68
--- /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 f60b4b6a..74904d2 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);