This gives a pretty substantial size reduction; for a 6.5 MB DLL with 300 KB .xdata, the .xdata shrinks by 66 KB.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/include/llvm/MC/MCWinEH.h | ||
---|---|---|
32 | 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. | |
llvm/lib/MC/MCWin64EH.cpp | ||
642 | Sure |
Added a comment in the operator== about why the label isn't included in the comparison, changed the last condition into an early return like the other ones.
Intentionally not comparing the label? That seems sort of confusing