[all-commits] [llvm/llvm-project] 6c8566: Tail calls: look through AssertZExt to find regist...
Tim Northover via All-commits
all-commits at lists.llvm.org
Mon Apr 11 04:25:01 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 6c85668d280408c0920f64fa1c791861faf358c4
https://github.com/llvm/llvm-project/commit/6c85668d280408c0920f64fa1c791861faf358c4
Author: Tim Northover <tnorthover at apple.com>
Date: 2022-04-11 (Mon, 11 Apr 2022)
Changed paths:
M llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
M llvm/test/CodeGen/AArch64/swiftself.ll
Log Message:
-----------
Tail calls: look through AssertZExt to find register copy.
arm64_32 guarantees the high 32 bits of pointer parameters are passed as 0, and
this is modelled in the IR by inserting an AssertZExt after the CopyFromReg.
The function deciding whether registers that need to be preserved actually are
wasn't expecting this so it banned perfectly legitimate tail calls.
Commit: 4120a3abdd02b99194ede41797d820d3579d04f6
https://github.com/llvm/llvm-project/commit/4120a3abdd02b99194ede41797d820d3579d04f6
Author: Tim Northover <tnorthover at apple.com>
Date: 2022-04-11 (Mon, 11 Apr 2022)
Changed paths:
M llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp
A llvm/test/CodeGen/AArch64/compact-unwind-async.ll
M llvm/test/MC/AArch64/arm64-compact-unwind-fallback.s
Log Message:
-----------
AArch64: take compact unwind frame size from last CFI instruction.
Asynchronous exception support for the prologue means that there can be
multiple .cfi_def_cfa_offset instructions in a single function, which tripped
up an assertion in the compact unwind generator.
In reality the compact unwind format is far too restrictive to represent
asynchronous frames so if we ever wanted that on Darwin we'd fall back to DWARF
(possibly keeping compact unwind around for synchronous users). So the compact
format should continue to represent the synchronous situation, and the
assertion can be removed.
Commit: 9fe32ca6972ef251695425e3e1b452b825257eb4
https://github.com/llvm/llvm-project/commit/9fe32ca6972ef251695425e3e1b452b825257eb4
Author: Tim Northover <tnorthover at apple.com>
Date: 2022-04-11 (Mon, 11 Apr 2022)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/test/CodeGen/AArch64/aarch64-be-bv.ll
Log Message:
-----------
AArch64: add nvcast patterns for v1f64
Compare: https://github.com/llvm/llvm-project/compare/b00d0fa2c7f0...9fe32ca6972e
More information about the All-commits
mailing list