]> granicus.if.org Git - llvm/commit
[GlobalISel] Replace hard coded dynamic alloca handling with G_DYN_STACKALLOC.
authorAmara Emerson <aemerson@apple.com>
Tue, 27 Aug 2019 19:54:27 +0000 (19:54 +0000)
committerAmara Emerson <aemerson@apple.com>
Tue, 27 Aug 2019 19:54:27 +0000 (19:54 +0000)
commit2aad0c1894e6ddcc760bd55926a034ca37ea3902
treefc4217066f8cc0d0b3bcb5ef56291b4b5dcc54dc
parentb8c132d2b1d6de73ffb6223a96c8bd02d58bf1f8
[GlobalISel] Replace hard coded dynamic alloca handling with G_DYN_STACKALLOC.

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.

Differential Revision: https://reviews.llvm.org/D66678

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370104 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
lib/CodeGen/GlobalISel/IRTranslator.cpp
lib/CodeGen/GlobalISel/LegalizerHelper.cpp
lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
lib/Target/AArch64/AArch64LegalizerInfo.cpp
test/CodeGen/AArch64/GlobalISel/dynamic-alloca.ll
test/CodeGen/AArch64/GlobalISel/legalize-dyn-alloca.mir [new file with mode: 0644]