I'm having some major grief with a few related things that I'm try to
do. The mostly revolve around trying to change the type of an SSA name
(which I've given up in favor of creating new SSA names and replacing
the ones I wanted to change.) However, this seems too has its own
issues.
In one problematic case in particular, I'm seeing a sequence like:
foo_3 = mumble_1 op mumble_2
bar_5 = foo_3 op baz_4
when replace foo_3 with foo_4 the (having the needed new type.)
I'm seeing a later verification phase think
bar_5 = foo_4 op baz_4
is still associated with the foo_3.
Should the transformation above be associated with update_stmt and/or
release_ssa_name_fn? And if they are both needed is there a proper
order required. Note, when I try using them, I'm seeing some malformed
tree operands that die in horrible ways.
By the way, I realize I can probably simply create a new GIMPLE stmt
from scratch to replace the ones I'm modifying but this will cause
some significant code bloat and I want to avoid that if at all
possible.
There is an addition wrinkle to this problem with C code like this
void
whatever ( int x, .. )
{
:
x++;
:
}
I'm seeing x_2 being thought of as default definition in the following
GIMPLE stmt when it's clearly not since it's defined by the statement.
x_2 = X_1 + 4
My approach has been to simply make the SSA name to replace x_2a
normal SSA name and not a default def. Is this not reasonable and
correct?
Thanks,
Gary Oblock
Gary
CONFIDENTIALITY NOTICE: This e-mail message, including any attachments, is for
the sole use of the intended recipient(s) and contains information that is
confidential and proprietary to Ampere Computing or its subsidiaries. It is to
be used solely for the purpose of furthering the parties' business
relationship. Any unauthorized review, copying, or distribution of this email
(or any attachments thereto) is strictly prohibited. If you are not the
intended recipient, please contact the sender immediately and permanently
delete the original and any copies of this email and any attachments thereto.