forked from OSchip/llvm-project
d0dcbb9b02
The old approach (dedicated ExecXXX for each instruction) is not flexible and results in duplicated code when RVC kicks in. According to the spec, every compressed instruction can be decoded to a non-compressed one. So we can lower compressed instructions to instructions we already had, which requires a decoupling between the decoder and executor. This patch: - use llvm::Optional and its combinators AMAP. - use template constraints on common instruction. - make instructions strongly-typed (no uint32_t everywhere bc it is error-prone and burdens the developer when lowering the RVC) with the help of algebraic datatype (std::variant). Note: (NFC) because this is more of a refactoring in preparation for RVC. Reviewed By: DavidSpickett Differential Revision: https://reviews.llvm.org/D135015 |
||
---|---|---|
.. | ||
bindings | ||
cmake | ||
docs | ||
examples | ||
include/lldb | ||
packages/Python/lldbsuite | ||
resources | ||
scripts | ||
source | ||
test | ||
third_party/Python/module | ||
tools | ||
unittests | ||
utils | ||
.clang-format | ||
.clang-tidy | ||
.gitignore | ||
CMakeLists.txt | ||
CODE_OWNERS.txt | ||
LICENSE.TXT | ||
use_lldb_suite_root.py |