Tim - you did some work on lifetime markers ~recently ( year or two ago) for POC stack usage? Any ideas on this?<br><br><div class="gmail_quote"><div dir="ltr">On Tue., 22 Aug. 2017, 11:00 am via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org">cfe-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
Due to the missing lifetime markers for temporary allocas, an<br>
unreasonable stack size burst was observed<br>
(<a href="https://bugs.llvm.org/show_bug.cgi?id=34173" rel="noreferrer" target="_blank">https://bugs.llvm.org/show_bug.cgi?id=34173</a>). Using the C code below,<br>
you can see the missing lifetime markers for temporary allocas for sret:<br>
<br>
/* clang -Wframe-larger-than=1 -o bug bug.c -c -O1 */<br>
<br>
struct a {<br>
   int a; int b;<br>
   int c; int d;<br>
   int f; int g;<br>
   int h; int i;<br>
};<br>
<br>
struct a test_callee(void);<br>
<br>
int foo() {<br>
   struct a b;<br>
   b= test_callee();<br>
   b= test_callee();<br>
   b= test_callee();<br>
   b= test_callee();<br>
   b= test_callee();<br>
   b= test_callee();<br>
   return 0;<br>
}<br>
<br>
Based on John McCall's comment in Bug34173, the frond-end needs to be<br>
improved to properly add lifetime marks :<br>
    Clang's adoption of lifetime markers has been rather piecemeal,<br>
especially for expression-emission temporaries like this. To do this<br>
properly, I think we'd need to honor full-expression lifetime implicitly<br>
rather than relying on ExprWithCleanups.<br>
<br>
Honestly, I don't have much experience in the front-end and I have other<br>
issues to handle in priority. Is there anyone who can volunteer for this<br>
issue ?<br>
<br>
Thanks,<br>
Jun<br>
<br>
<br>
--<br>
Qualcomm Datacenter Technologies, Inc. as an affiliate of Qualcomm<br>
Technologies, Inc.<br>
Qualcomm Technologies, Inc. is a member of the Code Aurora Forum, a<br>
Linux Foundation Collaborative Project.<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev</a><br>
</blockquote></div>