[PATCH] D87369: [MC] [Win64EH] Write packed ARM64 epilogs if possible
Martin Storsjö via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 9 23:05:45 PDT 2020
mstorsjo added inline comments.
================
Comment at: llvm/include/llvm/MC/MCWinEH.h:32
+ return Offset == I.Offset && Register == I.Register &&
+ Operation == I.Operation;
+ }
----------------
efriedma wrote:
> Intentionally not comparing the label? That seems sort of confusing
Yeah, intentionally, as it's used for checking whether an opcode in the epilogue is equivalent to one in the prologue.
AFAIK the labels aren't really used for ARM64 opcodes, where the sequence is supposed to match 1-to-1 between opcodes and instructions - contrary to on x86_64, where each opcode contains the offset from the start to the particular instruction. And even if the labels would be set (I haven't checked if they are for ARM64), you'd have them pointing at different locations in prologue and epilogue.
I can add a comment to clarify.
================
Comment at: llvm/lib/MC/MCWin64EH.cpp:642
+ // as packed epilog offset.
+ if (Offset <= 31 && PrologCodeBytes <= 124) {
+ info->EpilogMap.clear();
----------------
efriedma wrote:
> Maybe early-return -1 here?
Sure
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D87369/new/
https://reviews.llvm.org/D87369
More information about the llvm-commits
mailing list