[PATCH] D14147: Hanlding of aligned allocas on a target that does not align stack pointer.

Jonas Paulsson via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 28 07:05:36 PDT 2015


jonpa created this revision.
jonpa added subscribers: llvm-commits, uweigand.

    This patch implements dynamic realignment of stack objects with greater
    alignment than stack alignment.
    
    SystemZ maintains normal SP alignment always, and instead dynamically
    realigns stack objects when needed.
    
    The patch changes the behaviour in FunctionLoweringInfo, so that for a
    target that has a non-realignable stack, aligned static allocas are
    considered to be variable-sized objects and are handled with a
    DYNAMIC_STACKALLOC node.
    
    It would be good to group aligned allocas into a single big alloca,
    but this is yet todo.
    
    New SystemZ tests: alloca-03.ll for aligned allocas, and alloca-04.ll for
    "no-realign-stack" attribute on functions.


http://reviews.llvm.org/D14147

Files:
  include/llvm/CodeGen/MachineFrameInfo.h
  lib/CodeGen/MachineFunction.cpp
  lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp
  lib/Target/SystemZ/SystemZFrameLowering.cpp
  lib/Target/SystemZ/SystemZISelLowering.cpp
  test/CodeGen/SystemZ/alloca-03.ll
  test/CodeGen/SystemZ/alloca-04.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14147.38654.patch
Type: text/x-patch
Size: 12646 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151028/2b2fe5d8/attachment.bin>


More information about the llvm-commits mailing list