From: Richard Guenther <richard.guenther@gmail.com>
To: Alexandre Oliva <aoliva@redhat.com>
Cc: gcc-patches@gcc.gnu.org
Subject: Re: [vta, graphite?] propagate degenerate phi nodes into debug stmts
Date: Tue, 17 Nov 2009 15:47:00 -0000 [thread overview]
Message-ID: <84fc9c000911170739v76a2e911vc6794e597c8d134e@mail.gmail.com> (raw)
In-Reply-To: <ortywuw6bb.fsf@livre.localdomain>
On Mon, Nov 16, 2009 at 9:41 PM, Alexandre Oliva <aoliva@redhat.com> wrote:
> On Nov 8, 2009, Richard Guenther <richard.guenther@gmail.com> wrote:
>
>> For the rest it would be better to re-organize the code as
>
>> else if (gimple_code (def_stmt) == PHI_NODE)
>> {
>> value = degenerate_phi_result (def_stmt);
>> if (value
>> && walk_tree (&value, find_released_ssa_name, NULL, NULL))
>> value = NULL_TREE;
>> }
>
>> that looks simpler and it avoids walking PHI args uselessly.
>
> That doesn't work. We crash deep within degenerate_phi_result given
> expressions containing released SSA names. It's the same reason why we
> have to test for released SSA names before calling
> gimple_assign_rhs_to_tree: IIRC it has to do with testing whether the
> already-NULL type of the SSA name is a pointer type.
Well, just adjust degenerate_phi_result to do instead of calling
operand_equal_p
else if (TREE_CODE (arg) != TREE_CODE (val)
|| (TREE_CODE (arg) == SSA_NAME
&& arg != val)
|| !operand_equal_p (arg, val, 0))
break;
that should fix it. Alternatively add the SSA_NAME shortcut
to operand_equal_p.
> Regardless, I reorganized the code so as to not have to test for
> PHI_NODEs as often. There were two unrelated code paths intermixed with
> tests every now and again. Now they're two separate code flows.
>
>> @@ -479,6 +508,13 @@ insert_debug_temps_for_defs (gimple_stmt
>
>> stmt = gsi_stmt (*gsi);
>
>> + if (gimple_code (stmt) == GIMPLE_PHI)
>> + {
>> + tree var = gimple_phi_result (stmt);
>> + insert_debug_temp_for_var_def (gsi, var);
>> + return;
>> + }
>> +
>
>> This looks odd. SSA DEF operand iteration should walk the PHI defs
>> as well, so the change should not be necessary.
>
> I thought so, too, but by the time we get there, the operands of the PHI
> stmt have already been disconnected.
It shouldn't be. Please try to figure out why instead.
Thanks,
Richard.
> Here's what I'm going to test now.
>
>
>
> --
> Alexandre Oliva, freedom fighter http://FSFLA.org/~lxoliva/
> You must be the change you wish to see in the world. -- Gandhi
> Be Free! -- http://FSFLA.org/ FSF Latin America board member
> Free Software Evangelist Red Hat Brazil Compiler Engineer
>
>
next prev parent reply other threads:[~2009-11-17 15:40 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-08 8:07 Alexandre Oliva
2009-11-08 9:57 ` Richard Guenther
2009-11-16 20:35 ` Alexandre Oliva
2009-11-16 20:48 ` Alexandre Oliva
2009-11-17 15:47 ` Richard Guenther [this message]
2009-11-19 4:18 ` Alexandre Oliva
2009-11-19 10:56 ` Richard Guenther
2009-11-20 9:37 ` Alexandre Oliva
2009-11-20 10:47 ` Richard Guenther
2009-11-21 5:22 ` Alexandre Oliva
2011-06-03 14:38 ` Alexandre Oliva
2011-06-06 9:37 ` Richard Guenther
2011-06-07 10:38 ` Alexandre Oliva
2011-06-07 12:04 ` Richard Guenther
2009-11-19 4:28 ` Alexandre Oliva
2009-11-19 10:59 ` Richard Guenther
2009-11-20 9:26 ` Alexandre Oliva
2009-12-05 16:04 ` H.J. Lu
2009-12-23 8:58 ` H.J. Lu
2010-01-29 17:02 ` H.J. Lu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=84fc9c000911170739v76a2e911vc6794e597c8d134e@mail.gmail.com \
--to=richard.guenther@gmail.com \
--cc=aoliva@redhat.com \
--cc=gcc-patches@gcc.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).