[all-commits] [llvm/llvm-project] 68f37e: [ARM] Rename the isARMAreaXRegister parameter isIO...

Martin Storsjö via All-commits all-commits at lists.llvm.org
Mon May 16 14:41:56 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 68f37e7991bf41a6f3fb3dd12d0e7a42822de347
      https://github.com/llvm/llvm-project/commit/68f37e7991bf41a6f3fb3dd12d0e7a42822de347
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-05-17 (Tue, 17 May 2022)

  Changed paths:
    M llvm/lib/Target/ARM/ARMBaseRegisterInfo.h

  Log Message:
  -----------
  [ARM] Rename the isARMAreaXRegister parameter isIOS to SplitFramePushPop. NFC.

In f8b0a7af52f8c4ec6b4ddcfe3a6fa75098c9507c in 2016, this parameter
was generalized on the caller side (previously passing
STI.isTargetMachO(), now passing STI.splitFramePushPop()). Rename
the parameter on the receiver side to match the generalization.

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


  Commit: cabefea2ec99f80ecdf9d3d5fe955831532ff4b0
      https://github.com/llvm/llvm-project/commit/cabefea2ec99f80ecdf9d3d5fe955831532ff4b0
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-05-17 (Tue, 17 May 2022)

  Changed paths:
    M llvm/lib/MC/MCWin64EH.cpp
    M llvm/test/CodeGen/AArch64/wineh1.mir
    M llvm/test/CodeGen/AArch64/wineh2.mir
    M llvm/test/CodeGen/AArch64/wineh5.mir
    M llvm/test/MC/AArch64/seh-optimize.s
    M llvm/test/MC/AArch64/seh-packed-epilog.s

  Log Message:
  -----------
  [MC] [Win64EH] Try writing an ARM64 "packed epilog" even if the epilog doesn't share opcodes with the prolog

The "packed epilog" form only implies that the epilog is located
exactly at the end of the function (so the location of the epilog
is implicit from the epilog opcodes), but it doesn't have to share
opcodes with the prolog - as long as the total number of opcode
bytes and the offset to the epilog fit within the bitfields.

This avoids writing a 4 byte epilog scope in many cases. (I haven't
measured how much this shrinks actual xdata sections in practice
though.)

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


  Commit: 64a3c63e01c5f71659797acb511f18628f41d0d8
      https://github.com/llvm/llvm-project/commit/64a3c63e01c5f71659797acb511f18628f41d0d8
  Author: Martin Storsjö <martin at martin.st>
  Date:   2022-05-17 (Tue, 17 May 2022)

  Changed paths:
    M llvm/lib/MC/MCWin64EH.cpp
    M llvm/test/CodeGen/AArch64/wineh4.mir
    M llvm/test/CodeGen/AArch64/wineh8.mir

  Log Message:
  -----------
  [MC] [Win64EH] Check for matches between epilogs and the prolog on ARM64

This allows sharing opcodes between prolog and epilog even when there
is more than one epilog.

I didn't make any handcrafted special MC level testcases for this (yet
at least), but it does seem to have the expected effect on two existing
CodeGen level testcases.

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


Compare: https://github.com/llvm/llvm-project/compare/dd20323f51b6...64a3c63e01c5


More information about the All-commits mailing list