[Bug tree-optimization/50346] Function call foils VRP/jump-threading of redundant predicate on struct member
scovich at gmail dot com
gcc-bugzilla@gcc.gnu.org
Wed Oct 12 12:41:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50346
--- Comment #4 from Ryan Johnson <scovich at gmail dot com> 2011-10-12 12:40:25 UTC ---
(In reply to comment #3)
> Well, it's a tree optimization issue. It's simple - the local aggregate f
> escapes the function via the member function call to baz:
>
> <bb 5>:
> foo::baz (&f);
>
> and as our points-to analysis is not flow-sensitive for memory/calls this
> causes f to be clobbered by the call to bar
Is flow-sensitive analysis within single functions prohibitively expensive? All
the papers I can find talk about whole-program analysis, where it's very
expensive in both time and space; the best I could find (CGO'11 best paper)
gets it down to 20-30ms and 2-3MB per kLoC for up to ~300kLoC.
>
> as neither the bodies of baz nor bar are visible there is nothing we can do
Would knowing the body of bar() help if the latter cannot be inlined?
More information about the Gcc-bugs
mailing list