diff options
author | Craig Topper <craig.topper@sifive.com> | 2022-10-17 12:40:32 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2022-10-17 13:56:22 -0700 |
commit | 2b32e4f98b4f0e9e6a7c301b627ff75d9af8699e (patch) | |
tree | 914c2b030c9dedb3fe566341dbdd9d877b882bd3 /lldb/source/Commands/CommandObjectTarget.cpp | |
parent | 5de73d27bd6b9140978b376b34ef3a7231df9aa9 (diff) | |
download | llvm-2b32e4f98b4f0e9e6a7c301b627ff75d9af8699e.zip llvm-2b32e4f98b4f0e9e6a7c301b627ff75d9af8699e.tar.gz llvm-2b32e4f98b4f0e9e6a7c301b627ff75d9af8699e.tar.bz2 |
[RISCV] Add basic support for the sifive-7-series short forward branch optimization.
sifive-7-series has macrofusion support to convert a branch over
a single instruction into a conditional instruction. This can be
an improvement if the branch is hard to predict.
This patch adds support for the most basic case, a branch over a
move instruction. This is implemented as a pseudo instruction so
we can hide the control flow until all code motion passes complete.
I've disabled a recent select optimization if this feature is enabled
in the subtarget.
Related gcc patch for the same optimization https://www.mail-archive.com/gcc-patches@gcc.gnu.org/msg211045.html
Reviewed By: reames
Differential Revision: https://reviews.llvm.org/D135814
Diffstat (limited to 'lldb/source/Commands/CommandObjectTarget.cpp')
0 files changed, 0 insertions, 0 deletions