[all-commits] [llvm/llvm-project] 96bbd3: [AArch64][SVE] Only fold frame indexes referencing...

Bradley Smith via All-commits all-commits at lists.llvm.org
Tue May 3 03:03:14 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 96bbd359edbf8582fc2d29b57d7e65e54e98709b
      https://github.com/llvm/llvm-project/commit/96bbd359edbf8582fc2d29b57d7e65e54e98709b
  Author: Bradley Smith <bradley.smith at arm.com>
  Date:   2022-05-03 (Tue, 03 May 2022)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
    A llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests-crash.ll
    A llvm/test/CodeGen/AArch64/sve-fixed-length-frame-offests.ll

  Log Message:
  -----------
  [AArch64][SVE] Only fold frame indexes referencing SVE objects into SVE loads/stores

Currently we always fold frame indexes into SVE load/store instructions,
however these instructions can only encode VL scaled offests. This means
that when we are accessing a fixed length stack object with these
instructions, the folded in frame index gets pulled back out during frame
lowering. This can cause issues when we have no spare registers and no
emergency spill slot.

Rather than causing issues like this, don't fold in frame indexes that
reference fixed length objects.

Fixes: #55041

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




More information about the All-commits mailing list