lxfind added a comment.

In D82314#2117543 <https://reviews.llvm.org/D82314#2117543>, @lewissbaker wrote:

> >   There are still room for improvements, in particular, GCC has a 4K frame 
> > for this function.
>
> I think GCC having a smaller coroutine frame is probably because it does not 
> yet implement the allocation-elision optimisation which inlines the nested 
> coroutine frame (which is 4K) into the parent coroutine frame.
>  I have not looked yet, but I suspect that you'll see within the 
> get_big_object2() code it will perform another heap allocation for the 
> get_big_object() frame.
>
> Until we have more general support for async RVO, I think 8K is probably as 
> good as we're going to be able to get (4K for this coroutine's promise and 4K 
> for child coroutine-frame and its promise).


Yes your observation is correct. It's due to the nesting of the child frame.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D82314/new/

https://reviews.llvm.org/D82314



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to