diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2006-12-22 12:28:52 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2006-12-22 12:28:52 +0000 |
commit | 46fd10da92b527f323f89cc5e44966538b564553 (patch) | |
tree | 36e2ee57526b4b3c6b8d4c517b51f0f8e348cb54 | |
parent | af71363e455f4c60cf98f5ef42b4ddd8daedabd3 (diff) | |
download | gcc-46fd10da92b527f323f89cc5e44966538b564553.zip gcc-46fd10da92b527f323f89cc5e44966538b564553.tar.gz gcc-46fd10da92b527f323f89cc5e44966538b564553.tar.bz2 |
re PR rtl-optimization/29840 (build/genconditions ../../gcc/gcc/config/pa/pa.md > tmp-condmd.c: /bin/sh: 13354 Memory fault(coredump))
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
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/fwprop.c | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b2efe99..dadfa10 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/fwprop.c b/gcc/fwprop.c index 887da70..46e1a55 100644 --- a/gcc/fwprop.c +++ b/gcc/fwprop.c @@ -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); |