[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:18:29 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:

> Next, I agree that in my downstream cases, encodings that have the same static bit pattern but encode different register classes in the variable portion need to be marked with hasCompleteDecoder = 0.

Except that you can't set it on a generated decoder, it will be ignored. You can set in on a register class operand, but that will affect all decoders of all instructions that use that register class. FWIW in my opinion `hasCompleteDecoder` is deficient for these reasons.


https://github.com/llvm/llvm-project/pull/157948


More information about the llvm-commits mailing list