]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR rtl-optimization/29840 (build/genconditions ../../gcc/gcc/config/pa/pa.md ...
authorPaolo Bonzini <bonzini@gnu.org>
Fri, 22 Dec 2006 12:28:52 +0000 (12:28 +0000)
committerPaolo Bonzini <bonzini@gcc.gnu.org>
Fri, 22 Dec 2006 12:28:52 +0000 (12:28 +0000)
2006-12-22  Paolo Bonzini  <bonzini@gnu.org>

PR rtl-optimization/29840

* fwprop.c (forward_propagate_into): Reject artificial uses/defs.
(fwprop_init): Add DF_HARD_REGS to df_init call.

From-SVN: r120147

gcc/ChangeLog
gcc/fwprop.c

index b2efe998db5b26d36acf3357fc93f550cdc8ef35..dadfa10f62309abe1043f8d2c9b5a0ab2d55164c 100644 (file)
@@ -1,3 +1,10 @@
+2006-12-22  Paolo Bonzini  <bonzini@gnu.org>
+
+       PR rtl-optimization/29840
+
+       * fwprop.c (forward_propagate_into): Reject artificial uses/defs.
+       (fwprop_init): Add DF_HARD_REGS to df_init call.
+
 2006-12-21  Andrew Pinski  <pinskia@gmail.com>
 
        * tree-nested.c (create_tmp_var_for): Check for vector type
index 887da7009e49bdc997419c83e1df1b2ddf71dffa..46e1a553ad54535a93833d06ad147e55fa9e07f0 100644 (file)
@@ -846,6 +846,8 @@ forward_propagate_into (struct df_ref *use)
 
   if (DF_REF_FLAGS (use) & DF_REF_READ_WRITE)
     return;
+  if (DF_REF_FLAGS (use) & DF_REF_ARTIFICIAL)
+    return;
 
   /* Only consider uses that have a single definition.  */
   defs = DF_REF_CHAIN (use);
@@ -855,6 +857,8 @@ forward_propagate_into (struct df_ref *use)
   def = defs->ref;
   if (DF_REF_FLAGS (def) & DF_REF_READ_WRITE)
     return;
+  if (DF_REF_FLAGS (def) & DF_REF_ARTIFICIAL)
+    return;
 
   /* Do not propagate loop invariant definitions inside the loop if
      we are going to unroll.  */
@@ -899,7 +903,7 @@ fwprop_init (void)
 
   /* Now set up the dataflow problem (we only want use-def chains) and
      put the dataflow solver to work.  */
-  df = df_init (DF_SUBREGS | DF_EQUIV_NOTES);
+  df = df_init (DF_HARD_REGS | DF_SUBREGS | DF_EQUIV_NOTES);
   df_chain_add_problem (df, DF_UD_CHAIN);
   df_analyze (df);
   df_dump (df, dump_file);