Alias analysis or DSE problem?
Justin Seyster
jrseys@gmail.com
Tue Oct 20 00:53:00 GMT 2009
Thanks a lot for the help! It looks like creating a temporary
took care of it.
On Sat, Oct 17, 2009 at 7:41 AM, Richard Guenther
<richard.guenther@gmail.com> wrote:
> I think the call you insert is not of valid gimple form - an address
> argument has to fulfill the is_gimple_min_invariant() predicate.
> Thus I suspect you have something like &ptr->field in there which
> needs a temporary.
That was it. Actually, the TREE was of the form
ADDR_EXPR(ARRAY_REF(STRING_CST)), which does not satisfy
is_gimple_min_invariant().
The strange thing is, I copied that structure verbatim from
unmodified GCC. I'm trying to insert a call that looks like:
foo("some string constant");
If I put that function call in a simple C program and dump out
the resulting GIMPLE, it gives me the ADDR_EXPR that was causing
problems in refs_may_alias_p_1().
Does anyone know why that structure is ok in the contexts that
GCC is using it but not in the context that my plug-in uses it
in?
--Justin
More information about the Gcc
mailing list