[PATCH] D42356: [AArch64] Implement dynamic stack probing for windows

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 12 05:23:55 PST 2018


mstorsjo updated this revision to Diff 133838.
mstorsjo edited the summary of this revision.
mstorsjo added a comment.

Structured the code to easier allow adding a darwin specific version of stack probing without conflicting with the windows specific parts here. Added a "return false" in GlobalISel for windows for alloca, to make sure we invoke the proper codegen for this.

On ARM and X86, the implementation of stack probing uses a custom opcode like WIN__CHKSTK - that would allow to more directly emit exactly the intended machine code for this call. Doing it via SelectionDAG is less code but ends up less elegant at -O0 - a compromise I think is ok.


https://reviews.llvm.org/D42356

Files:
  lib/CodeGen/GlobalISel/IRTranslator.cpp
  lib/Target/AArch64/AArch64CallingConvention.td
  lib/Target/AArch64/AArch64ISelLowering.cpp
  lib/Target/AArch64/AArch64ISelLowering.h
  lib/Target/AArch64/AArch64RegisterInfo.cpp
  lib/Target/AArch64/AArch64RegisterInfo.h
  test/CodeGen/AArch64/win-alloca.ll
  test/CodeGen/AArch64/win64_vararg.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42356.133838.patch
Type: text/x-patch
Size: 8439 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180212/7781e29f/attachment.bin>


More information about the llvm-commits mailing list