[all-commits] [llvm/llvm-project] 14bc85: [SVE] Don't use LocalStackAllocation for SVE objects

david-arm via All-commits all-commits at lists.llvm.org
Mon Jul 27 00:22:33 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 14bc85e0ebb6c00c1672158ab6a692bfbb11e1cc
      https://github.com/llvm/llvm-project/commit/14bc85e0ebb6c00c1672158ab6a692bfbb11e1cc
  Author: David Sherwood <david.sherwood at arm.com>
  Date:   2020-07-27 (Mon, 27 Jul 2020)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetFrameLowering.h
    M llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
    M llvm/lib/Target/AArch64/AArch64FrameLowering.h
    A llvm/test/CodeGen/AArch64/sve-localstackalloc.mir

  Log Message:
  -----------
  [SVE] Don't use LocalStackAllocation for SVE objects

I have introduced a new TargetFrameLowering query function:

  isStackIdSafeForLocalArea

that queries whether or not it is safe for objects of a given stack
id to be bundled into the local area. The default behaviour is to
always bundle regardless of the stack id, however for AArch64 this is
overriden so that it's only safe for fixed-size stack objects.
There is future work here to extend this algorithm for multiple local
areas so that SVE stack objects can be bundled together and accessed
from their own virtual base-pointer.

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




More information about the All-commits mailing list