diff options
author | Alexey Merzlyakov <60094858+AlexeyMerzlyakov@users.noreply.github.com> | 2024-09-04 17:31:59 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-04 15:31:59 +0100 |
commit | 660e34fd38c3fb39fba1871bbf5b2eb3a48bf277 (patch) | |
tree | 4e0e012670fbaa8cdc2d5b8f1af231dbb02e5b1a /llvm/lib/Transforms/Utils/LoopUtils.cpp | |
parent | f7fa75b20835254c35baeff908b8c3827c13db41 (diff) | |
download | llvm-660e34fd38c3fb39fba1871bbf5b2eb3a48bf277.zip llvm-660e34fd38c3fb39fba1871bbf5b2eb3a48bf277.tar.gz llvm-660e34fd38c3fb39fba1871bbf5b2eb3a48bf277.tar.bz2 |
[lldb][RISCV] Support optionally disabled FPR for riscv64 (#104547)
The PR adds the support optionally enabled/disabled FP-registers to LLDB
`RegisterInfoPOSIX_riscv64`. This situation might take place for RISC-V
builds having no FP-registers, like RV64IMAC or RV64IMACV.
To aim this, patch adds `opt_regsets` flags mechanism. It re-works
RegisterInfo class to work with flexibly allocated (depending on
`opt_regsets` flag) `m_register_sets` and `m_register_infos` vectors
instead of statically defined structures. The registration of regsets is
being arranged by `m_per_regset_regnum_range` map.
The patch flows are spread to `NativeRegisterContextLinux_riscv64` and
`RegisterContextCorePOSIX_riscv64` classes, that were tested on:
- x86_64 host working with coredumps
- RV64GC and RV64IMAC targets working with coredumps and natively in
run-time with binaries
`EmulateInstructionRISCV` is out of scope of this patch, and its
behavior did not change, using maximum set of registers.
According testcase built for RV64IMAC (no-FPR) was added to
`TestLinuxCore.py`.
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
0 files changed, 0 insertions, 0 deletions