[all-commits] [llvm/llvm-project] b4a358: [RISCV] Fix missing emergency slots for scalable s...

Fraser Cormack via All-commits all-commits at lists.llvm.org
Tue Apr 20 02:07:17 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: b4a358a7ba0f273b8c8a4a0e63801872a1bbfd4c
      https://github.com/llvm/llvm-project/commit/b4a358a7ba0f273b8c8a4a0e63801872a1bbfd4c
  Author: Fraser Cormack <fraser at codeplay.com>
  Date:   2021-04-20 (Tue, 20 Apr 2021)

  Changed paths:
    M llvm/lib/Target/RISCV/RISCVFrameLowering.cpp
    M llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
    M llvm/test/CodeGen/RISCV/rvv/access-fixed-objects-by-rvv.ll
    M llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll
    A llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
    M llvm/test/CodeGen/RISCV/rvv/localvar.ll

  Log Message:
  -----------
  [RISCV] Fix missing emergency slots for scalable stack offsets

This patch adds an additional emergency spill slot to RVV code. This is
required as RVV stack offsets may require an additional register to compute.

This patch includes an optimization by @HsiangKai <kai.wang at sifive.com>
to reduce the number of registers required for the computation of stack
offsets from 3 to 2. Otherwise we'd need two additional emergency spill
slots.

Reviewed By: HsiangKai

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




More information about the All-commits mailing list