Page MenuHomePhabricator

[AArch64] Emit some .cfi_* for non-SVE cases in emitEpilogue
Needs ReviewPublic

Authored by MaskRay on Sep 3 2021, 12:30 PM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

WIP.

Ideally .cfi_def_offset should be used instead. .cfi_adjust_cfa_offset is used for now.

There are many epilogue code paths where .cfi_* directives are missing.
They need separate fixes.

Something is not correct yet (e.g. addsub-constant-folding.ll)

Diff Detail

Unit TestsFailed

TimeTest
60 msx64 debian > LLVM.CodeGen/AArch64::argument-blocks-array-of-struct.ll
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -mtriple=aarch64-none-linux-gnu -o - /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/argument-blocks-array-of-struct.ll
60 msx64 debian > LLVM.CodeGen/AArch64::framelayout-sve.mir
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -mattr=+sve -mtriple=aarch64-none-linux-gnu -run-pass=prologepilog /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/framelayout-sve.mir -o - | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/framelayout-sve.mir
40 msx64 debian > LLVM.CodeGen/AArch64::framelayout-unaligned-fp.ll
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -verify-machineinstrs < /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/framelayout-unaligned-fp.ll | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/framelayout-unaligned-fp.ll
40 msx64 debian > LLVM.CodeGen/AArch64::hwasan-check-memaccess.ll
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc < /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/hwasan-check-memaccess.ll | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/hwasan-check-memaccess.ll
30 msx64 debian > LLVM.CodeGen/AArch64::machine-outliner-throw2.ll
Script: -- : 'RUN: at line 1'; /var/lib/buildkite-agent/builds/llvm-project/build/bin/llc -verify-machineinstrs -enable-machine-outliner -mtriple=aarch64-arm-none-eabi -frame-pointer=non-leaf < /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/machine-outliner-throw2.ll | /var/lib/buildkite-agent/builds/llvm-project/build/bin/FileCheck /var/lib/buildkite-agent/builds/llvm-project/llvm/test/CodeGen/AArch64/machine-outliner-throw2.ll --check-prefix=NOOMIT
View Full Test Results (16 Failed)

Event Timeline

MaskRay created this revision.Sep 3 2021, 12:30 PM
MaskRay requested review of this revision.Sep 3 2021, 12:30 PM
Herald added a project: Restricted Project. · View Herald TranscriptSep 3 2021, 12:30 PM
MaskRay retitled this revision from [AArch64] Emit some .cfi_* for non-SVE cases in emitEpilogue WIP to [AArch64] Emit some .cfi_* for non-SVE cases in emitEpilogue.Sep 3 2021, 12:33 PM
MaskRay edited the summary of this revision. (Show Details)
MaskRay added inline comments.Sep 3 2021, 12:37 PM
llvm/lib/Target/AArch64/AArch64FrameLowering.cpp
1688

SVE callee save stack seems very difficult, so not in the scope of this patch.

llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
279

This is incorrect.

1486

This is apparently incorrect.

MaskRay updated this revision to Diff 370748.Sep 4 2021, 11:22 AM

fix some issues

Matt added a subscriber: Matt.Sep 7 2021, 5:25 AM