[PATCH] D66678: [GlobalISel] Replace hard coded dynamic alloca handling with G_DYN_STACKALLOC

Amara Emerson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 23 12:46:59 PDT 2019


aemerson created this revision.
aemerson added reviewers: paquette, arsenm, dsanders, Petar.Avramovic.
Herald added subscribers: volkan, hiraditya, javed.absar, rovka, wdng.
Herald added a project: LLVM.
aemerson added a parent revision: D66677: [GlobalISel] Introduce a G_DYN_STACKALLOC opcode to represent dynamic allocas.

This change moves the actual stack pointer manipulation into the legalizer, available to targets via lower(). The codegen is slightly different because we're using explicit masks instead of G_PTRMASK, and using G_SUB rather than adding a negative amount via G_GEP.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D66678

Files:
  llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
  llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
  llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
  llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
  llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
  llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp
  llvm/test/CodeGen/AArch64/GlobalISel/dynamic-alloca.ll
  llvm/test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66678.216929.patch
Type: text/x-patch
Size: 18315 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190823/d130aa8d/attachment.bin>


More information about the llvm-commits mailing list