This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: How to debug ssa optimizer
- From: Andrew Pinski <pinskia at physics dot uc dot edu>
- To: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Cc: dberlin at dberlin dot org, gcc at gcc dot gnu dot org
- Date: Sat, 19 Jun 2004 22:10:42 -0400 (EDT)
- Subject: Re: How to debug ssa optimizer
>
> If it's not a new statement being added, and just an existing
> statement being modified, you can conditional breakpoint modify_stmt
> with that statement address. That will catch every time it gets
> marked as modified.
>
> I'm missing something. With an RTL dump, I see the INSN_UID for every
> insn in the dump. So I can set a conditional breakpoint testing for
> the UID.
>
> Here's a excerpt from c-cppbuiltin.i.t27.tailr:
>
> # v_30 = PHI <&version_string(0), v_3594(1)>;
> <L2>:;
> T.211_707 = *v_30;
> if (T.211_707 == 0) goto <L4>; else goto <L3>;
>
> ... and from the corresponding .t28.ch:
>
> <L191>:;
> v_386 = &version_string;
> T.211_530 = *v_386;
> if (T.211_530 == 0) goto <L4>; else goto <L3>;
>
> That's not a valid transformation. version_string is an array and
> v is char *. This is coming back into a tree as a block move MODIFY_EXPR
> with different types on both sides.
hmm, &array_type is really the same type as pointer_type so how is this not
valid?
Thanks,
Andrew Pinski