Details
Diff Detail
Event Timeline
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | ||
---|---|---|
1869 | Note to self: remove. |
LGTM
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp | ||
---|---|---|
1965–1967 | looks it can be removed. |
Committing this change caused failures in the asan/hwasan regression tests. The reason was that emitting unwind info
in epilogues caused the unwind information in case like below:
foo: ... CSR saves ... CSR restores ret L: ... b <somewhere>
to no longer be accidentally correct for the region starting at L. That could be a miscompilation
if a throwing call somehow ends up in that region.
Thus, I've changed the order of the patches to bring CFIFixup before the this patch.
Updated on top of latest main, will commit it the following days, based on previous
acceptance, as it contains no non-trivial changes.
Note: arm64-shrink-wrapping.ll and merge-store-dependency.ll need rebase.
llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp | ||
---|---|---|
120–144 | if (!NeedsAsyncDwarfUnwindInfo) { const Function &F = MF.getFunction(); // TODO hasMinSize() is to ... NeedsAsyncDwarfUnwindInfo = } return *NeedsAsyncDwarfUnwindInfo; operator* is more common than getValue. The comment is too long to use the in-line style. | |
llvm/test/CodeGen/AArch64/framelayout-sve.mir | ||
266 | Specify the operands of CFI_INSTRUCTION | |
343 | Specify the operands of CFI_INSTRUCTION | |
499 | Specify the operands of CFI_INSTRUCTION |
llvm/test/CodeGen/AArch64/framelayout-sve.mir | ||
---|---|---|
266 | Looks redundant to me. The operands are evident from the ASM and UNWINDINFO checks. |
llvm/test/CodeGen/AArch64/framelayout-sve.mir | ||
---|---|---|
266 | SVE has quite complex code paths in the implementation, so it's good to test at least the CFI instruction name to have some coverage. Other operands may be a bit redundant. |
Note to self: remove.