diff options
author | Craig Topper <craig.topper@sifive.com> | 2021-08-08 16:58:50 -0700 |
---|---|---|
committer | Craig Topper <craig.topper@sifive.com> | 2021-08-08 17:25:37 -0700 |
commit | 88bc29f5f2c08301d43b9fc33d8098faff161fd1 (patch) | |
tree | 0c8b95debef2b375941552cdc7c6687bb73eb4ed /lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp | |
parent | 20dfe051abe021b5be412385406c32bc1a296322 (diff) | |
download | llvm-88bc29f5f2c08301d43b9fc33d8098faff161fd1.zip llvm-88bc29f5f2c08301d43b9fc33d8098faff161fd1.tar.gz llvm-88bc29f5f2c08301d43b9fc33d8098faff161fd1.tar.bz2 |
[RISCV] Introduce a RISCV CondCode enum instead of using ISD:SET* in MIR. NFC
Previously we converted ISD condition codes to integers and stored
them directly in our MIR instructions. The ISD enum kind of belongs
to SelectionDAG so that seems like incorrect layering.
This patch instead uses a CondCode node on RISCV::SELECT_CC until
isel and then converts it from ISD encoding to a RISCV specific value.
This value can be converted to/from the RISCV branch opcodes in the
RISCV namespace.
My larger motivation is to possibly support a microarchitectural
feature of some CPUs where a short forward branch over a single
instruction can be predicated internally. This will require a new
pseudo instruction for select that needs to carry a branch condition
and live probably until RISCVExpandPseudos. At that point it can be
expanded to control flow without other instructions ending up in the
predicated basic block. Using an ISD encoding in RISCVExpandPseudos
doesn't seem like correct layering.
Reviewed By: luismarques
Differential Revision: https://reviews.llvm.org/D107400
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python/PythonDataObjectsTests.cpp')
0 files changed, 0 insertions, 0 deletions