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?

Reply via email to