[all-commits] [llvm/llvm-project] 739b69: [LLVM][AArch64] Explain that X19 is used as the fr...

David Spickett via All-commits all-commits at lists.llvm.org
Mon Sep 12 02:18:26 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 739b69e655fe66674982cffc8b8166306355e7d3
      https://github.com/llvm/llvm-project/commit/739b69e655fe66674982cffc8b8166306355e7d3
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2022-09-12 (Mon, 12 Sep 2022)

  Changed paths:
    M llvm/include/llvm/CodeGen/TargetRegisterInfo.h
    M llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp
    M llvm/lib/Target/AArch64/AArch64RegisterInfo.h
    A llvm/test/CodeGen/AArch64/inline-asm-clobber-base-frame-pointer.ll

  Log Message:
  -----------
  [LLVM][AArch64] Explain that X19 is used as the frame base pointer register

Fixes #50098

LLVM uses X19 as the frame base pointer, if it needs to. Meaning you
can get warnings if you clobber that with inline asm.

However, it doesn't explain why. The frame base register is not part
of the ABI so it's pretty confusing why you get that warning out of the blue.

This adds a method to explain a reserved register with X19 as the first one.
The logic is the same as getReservedRegs.

I could have added a return parameter to isASMClobberable and friends
but found that there's a lot of things that call isReservedReg in various
ways.

So while one more method on the pile isn't great design, it is simpler
right now to do it this way and only pay the cost if you are actually using
a reserved register.

Reviewed By: lenary

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




More information about the All-commits mailing list