Hi Anton,<br><br>Still there, even with opts. I consulted with GCC guys and debugged f951 a little bit. The conclusion is that unfortunately this logic is always effective for nested calls using parent's data (through the GCC function called convert_nonlocal_reference_op). Consider the provided test case: it has one func embedded into another one, and data of parent is used in nested without being passed in arguments. In this case as I understand FRAME is always created. Still, our question is if it is good to keep it for LLVM. This thing introduces additional unexpected load/stores and phi-nodes.<br>
<br>- D.<br><br><div class="gmail_quote">2012/7/31 Anton Korobeynikov <span dir="ltr"><<a href="mailto:anton@korobeynikov.info" target="_blank">anton@korobeynikov.info</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">> According to comment in tree-nested.c, these frames should be only<br>
> introduced in case of debug or OpenMP lowering:<br>
</div>in case of *debug*. What if you pass -O1 / -O2 / -Owhatever ?<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
With best regards, Anton Korobeynikov<br>
Faculty of Mathematics and Mechanics, Saint Petersburg State University<br>
</font></span></blockquote></div><br>