How to debug ssa optimizer
Richard Kenner
kenner@vlsi1.ultra.nyu.edu
Sun Jun 20 01:56:00 GMT 2004
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.
I want to breakpoint at the place that does that transformation, but
all I have is what's in the dump.
How do I set the breakpoint to find who's doing this?
More information about the Gcc
mailing list