<div dir="rtl"><div dir="ltr">Yes, submitted an updated mingw-alloca.ll test that checks for -elf configuration as well as the default coff.</div><div dir="ltr"><br></div><div dir="ltr">Yaron<br></div><div dir="ltr"> <br></div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div dir="ltr">2013/10/24 Rafael Espíndola <span dir="ltr"><<a href="mailto:rafael.espindola@gmail.com" target="_blank">rafael.espindola@gmail.com</a>></span></div>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">testcase?<br>
<div class="HOEnZb"><div class="h5"><br>
On 23 October 2013 19:37, Yaron Keren <<a href="mailto:yaron.keren@gmail.com">yaron.keren@gmail.com</a>> wrote:<br>
> Author: yrnkrn<br>
> Date: Wed Oct 23 18:37:01 2013<br>
> New Revision: 193289<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=193289&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=193289&view=rev</a><br>
> Log:<br>
> (this is a corrected patch)<br>
><br>
> Calling _chkstk is required on ELF as well as COFF on Windows. Without<br>
> _chkstk, functions requiring large stack crash in initialization code.<br>
><br>
> Previous code tested for COFF format but not Mach-O and this patch modifies<br>
> the code to test for Windows OS (both Windows target and MingW target)<br>
> but not Mach-O object format: Looks like macho environment was used to<br>
> build some EFI code.<br>
><br>
> Credits to Andrew MacPherson.<br>
><br>
><br>
> Modified:<br>
>     llvm/trunk/lib/Target/X86/X86FrameLowering.cpp<br>
>     llvm/trunk/lib/Target/X86/X86ISelLowering.cpp<br>
>     llvm/trunk/lib/Target/X86/X86Subtarget.h<br>
><br>
> Modified: llvm/trunk/lib/Target/X86/X86FrameLowering.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=193289&r1=193288&r2=193289&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86FrameLowering.cpp?rev=193289&r1=193288&r2=193289&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/X86/X86FrameLowering.cpp (original)<br>
> +++ llvm/trunk/lib/Target/X86/X86FrameLowering.cpp Wed Oct 23 18:37:01 2013<br>
> @@ -606,7 +606,7 @@ void X86FrameLowering::emitPrologue(Mach<br>
>    // responsible for adjusting the stack pointer.  Touching the stack at 4K<br>
>    // increments is necessary to ensure that the guard pages used by the OS<br>
>    // virtual memory manager are allocated in correct sequence.<br>
> -  if (NumBytes >= 4096 && STI.isTargetCOFF() && !STI.isTargetEnvMacho()) {<br>
> +  if (NumBytes >= 4096 && STI.isOSWindows() && !STI.isTargetEnvMacho()) {<br>
>      const char *StackProbeSymbol;<br>
>      bool isSPUpdateNeeded = false;<br>
><br>
><br>
> Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=193289&r1=193288&r2=193289&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=193289&r1=193288&r2=193289&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)<br>
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Wed Oct 23 18:37:01 2013<br>
> @@ -631,7 +631,7 @@ void X86TargetLowering::resetOperationAc<br>
>    setOperationAction(ISD::STACKSAVE,          MVT::Other, Expand);<br>
>    setOperationAction(ISD::STACKRESTORE,       MVT::Other, Expand);<br>
><br>
> -  if (Subtarget->isTargetCOFF() && !Subtarget->isTargetEnvMacho())<br>
> +  if (Subtarget->isOSWindows() && !Subtarget->isTargetEnvMacho())<br>
>      setOperationAction(ISD::DYNAMIC_STACKALLOC, Subtarget->is64Bit() ?<br>
>                         MVT::i64 : MVT::i32, Custom);<br>
>    else if (TM.Options.EnableSegmentedStacks)<br>
><br>
> Modified: llvm/trunk/lib/Target/X86/X86Subtarget.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.h?rev=193289&r1=193288&r2=193289&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86Subtarget.h?rev=193289&r1=193288&r2=193289&view=diff</a><br>


> ==============================================================================<br>
> --- llvm/trunk/lib/Target/X86/X86Subtarget.h (original)<br>
> +++ llvm/trunk/lib/Target/X86/X86Subtarget.h Wed Oct 23 18:37:01 2013<br>
> @@ -333,6 +333,8 @@ public:<br>
>    }<br>
>    bool isTargetEnvMacho() const { return TargetTriple.isEnvironmentMachO(); }<br>
><br>
> +  bool isOSWindows() const { return TargetTriple.isOSWindows(); }<br>
> +<br>
>    bool isTargetWin64() const {<br>
>      return In64BitMode && TargetTriple.isOSWindows();<br>
>    }<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>