[llvm] [DecoderEmitter] Support for DecodeOrder and `resolve-conflicts-try-all` (PR #157948)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 16 07:15:30 PDT 2025
================
@@ -1598,6 +1726,19 @@ void FilterChooser::doFilter() {
return;
}
+ // If we were unable to find a useful filter and there are multiple decode
+ // orders involved, split the candidates by decode order and create per decode
+ // order choosers.
+ if (hasMultipleDecodeOrders()) {
----------------
s-barannikov wrote:
> hasCompleteDecoder seems to set DecodeComplete = false whenever `decodeToMCInst` return Fail.
This only happens with `TryDecode`; `Decode` never changes `DecodeComplete` and so it remains `true`, AFAICT
> the condition (DecodeComplete == true and S != Fail) will never happen
It can happen if `Decode` succeeds (or returns `SoftFail`).
> except in the `bits<0>` case, which might be an oversight
It might be. I didn't add a check for `hasCompleteDecoder` because I assumed that the no-bits decoder function can never fail (can it?).
https://github.com/llvm/llvm-project/pull/157948
More information about the llvm-commits
mailing list