This is the mail archive of the
mailing list for the GCC project.
Re: [tree-ssa-branch] Optimizing non-SIMPLE trees
The problem seems to come down to this: the builtin expanders want args
like '(char*)"foo"', and that's not a valid SIMPLE value, so we copy it
into a temporary pointer. Doing the reverse substitution in CCP isn't a
solution, as it would produce something not SIMPLE.
Possible solutions are
1) Change SIMPLE so that 'val' allows ADDR_EXPR->STRING_CST (and whatever
other tree patterns various builtins want).
2) Enhance the builtin expanders to use dataflow information.
I prefer #2.