[Bug rtl-optimization/42839] [4.5 Regression] gcc.target/mips/octeon-bbit-2.c failing for -mabi=64
rguenther at suse dot de
gcc-bugzilla@gcc.gnu.org
Sat Feb 13 12:07:00 GMT 2010
------- Comment #11 from rguenther at suse dot de 2010-02-13 12:07 -------
Subject: Re: [4.5 Regression] gcc.target/mips/octeon-bbit-2.c
failing for -mabi=64
On Sat, 13 Feb 2010, steven at gcc dot gnu dot org wrote:
>
>
> ------- Comment #10 from steven at gcc dot gnu dot org 2010-02-13 11:39 -------
> In the test case of comment #2, the history of the funny PHIs is really odd. At
> -O2 we end with this in the .optimized dump:
>
> <bb 3>:
> # i_1 = PHI <0(2)>
> # s_11 = PHI <0(2)>
>
> <bb 4>:
> # i_12 = PHI <i_1(3), i_7(4)>
> # s_13 = PHI <s_11(3), s_6(4)>
>
>
> But the history of the phi of i_12 looks like this:
>
> t.c.120t.reassoc2: # i_12 = PHI <i_7(3), 0(2)>
> t.c.121t.vrp2: # i_12 = PHI <i_2(3), i_7(7)>
> t.c.121t.vrp2: # i_12 = PHI <0(3), i_7(4)>
> t.c.122t.dom2: # i_12 = PHI <0(3), i_7(4)>
> t.c.123t.phicprop2: # i_12 = PHI <0(2), i_7(3)>
> t.c.124t.cddce2: # i_12 = PHI <i_1(3), i_7(6)>
>
> Somehow we have re-introduced the special PHI "# i_1 = PHI <0(2)>" in the
> .cddce2 pass. The reason is that we created a loop pre-header.
Yep. I wonder if cfgcloop should just not do that, and of course
I wonder why cfgcleanup doesn't get rid of single-arg PHIs (well,
probably to not break loop-closed SSA form).
Btw, the following should avoid almost all constant propagations
into PHIs (well, I guess DOM needs fixing as well)
Index: tree-ssa-propagate.c
===================================================================
--- tree-ssa-propagate.c (revision 156666)
+++ tree-ssa-propagate.c (working copy)
@@ -924,7 +924,9 @@ replace_phi_args_in (gimple phi, prop_va
{
tree val = prop_value[SSA_NAME_VERSION (arg)].value;
- if (val && val != arg && may_propagate_copy (arg, val))
+ if (val && val != arg
+ && TREE_CODE (val) == SSA_NAME
+ && may_propagate_copy (arg, val))
{
if (TREE_CODE (val) != SSA_NAME)
prop_stats.num_const_prop++;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42839
More information about the Gcc-bugs
mailing list