<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Fri, Sep 11, 2015 at 3:30 PM, Hal Finkel <span dir="ltr"><<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span>----- Original Message -----<br>
> From: "Reid Kleckner via llvm-commits" <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>><br>
> To: "Akira Hatanaka" <<a href="mailto:ahatanak@gmail.com" target="_blank">ahatanak@gmail.com</a>><br>
> Cc: "llvm-commits" <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>><br>
> Sent: Friday, September 11, 2015 5:08:38 PM<br>
> Subject: Re: [llvm] r247450 - Use function attribute "stackrealign" to decide whether stack<br>
><br>
><br>
><br>
> I recall some users from nvidia or Intel did something like arranging<br>
> to call a function using AVX with 32-byte stack alignment, and using<br>
> -mno-stackrealign to suppress the funky prologue. They would<br>
> probably be better served with an ABI stack alignment override, so<br>
> maybe that use case is not worth considering.<br>
><br>
<br>
</span>It seems like, for this use case, we really want an attribute to specify what the enhanced caller-provided stack alignment actually is, so that the backend can then make the appropriate choice about generating a stack realignment based on the needs of its local variables and spill slots.<br>
<br></blockquote><div><br></div><div>Can they use -mstack-alignment=32, which is an x86 option that changes TargetFrameLowering::StackAlignment? This currently gets passed to the backend via TargetOptions, but it should be possible to convert it to a function attribute.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
 -Hal<br>
<div><div><br>
><br>
><br>
> On Fri, Sep 11, 2015 at 2:31 PM, Akira Hatanaka < <a href="mailto:ahatanak@gmail.com" target="_blank">ahatanak@gmail.com</a><br>
> > wrote:<br>
><br>
><br>
><br>
> I was thinking "no-stack-realign" should be a cl::opt debug option,<br>
> not a function attribute.<br>
><br>
><br>
><br>
> Is there a use case that requires the end-user to disallow stack<br>
> realignment even when it's necessary to do so to be functionally<br>
> correct (for example, there is a local variable with a large<br>
> alignment)?<br>
><br>
><br>
><br>
><br>
><br>
> On Fri, Sep 11, 2015 at 12:57 PM, Reid Kleckner via llvm-commits <<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a> > wrote:<br>
><br>
><br>
><br>
><br>
><br>
><br>
><br>
> On Fri, Sep 11, 2015 at 12:40 PM, Joerg Sonnenberger via llvm-commits<br>
> < <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a> > wrote:<br>
><br>
><br>
> On Fri, Sep 11, 2015 at 06:54:39PM -0000, Akira Hatanaka via<br>
> llvm-commits wrote:<br>
> > URL: <a href="http://llvm.org/viewvc/llvm-project?rev=247450&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=247450&view=rev</a><br>
> > Log:<br>
> > Use function attribute "stackrealign" to decide whether stack<br>
> > realignment should be forced.<br>
><br>
> Can you please actually call it force_stackrealign or<br>
> always_realign_stack to avoid confusion?<br>
><br>
><br>
><br>
> The X86 backend looks for a "no-stack-realign" attribute. Perhaps we<br>
> should have a string attribute "stackrealign" with three values,<br>
> "always", "auto", and "never". The default behavior is "auto".<br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
><br>
><br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
><br>
<br>
</div></div><span><font color="#888888">--<br>
Hal Finkel<br>
Assistant Computational Scientist<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
</font></span></blockquote></div><br></div></div>