[all-commits] [llvm/llvm-project] 401f22: [ARM] Add pass for handling undef early-clobber va...
Jack Styles via All-commits
all-commits at lists.llvm.org
Thu Jan 11 05:50:36 PST 2024
Branch: refs/heads/users/stylie777/add_arm_init_undef_pass
Home: https://github.com/llvm/llvm-project
Commit: 401f22810225a288e417d62ac6f09ac4ffdc5d76
https://github.com/llvm/llvm-project/commit/401f22810225a288e417d62ac6f09ac4ffdc5d76
Author: Jack Styles <jack.styles at arm.com>
Date: 2024-01-11 (Thu, 11 Jan 2024)
Changed paths:
M llvm/lib/Target/ARM/ARM.h
M llvm/lib/Target/ARM/ARMAsmPrinter.cpp
A llvm/lib/Target/ARM/ARMInitUndef.cpp
M llvm/lib/Target/ARM/ARMInstrInfo.td
M llvm/lib/Target/ARM/ARMTargetMachine.cpp
M llvm/lib/Target/ARM/CMakeLists.txt
M llvm/test/CodeGen/ARM/O3-pipeline.ll
M llvm/test/CodeGen/Thumb2/mve-intrinsics/vcaddq.ll
Log Message:
-----------
[ARM] Add pass for handling undef early-clobber values
When using Greedy Register Allocation, there are times where
early-clobber values are ignored, and assigned the same register.
This is illeagal behaviour for these intructions. To get around this,
using Pseudo instructions for early-clobber registers gives them a
definition and allows Greedy to assign them to a different register.
This then meets the ARM Architecture Reference Manual and
matches the defined behaviour.
This patch takes a similar approach to the RISC-V pass added as part
of #3b8c0b3 to fix issue 50157.
More information about the All-commits
mailing list