[llvm] [DecoderEmitter] Support for DecodeOrder and `resolve-conflicts-try-all` (PR #157948)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 10 22:46:27 PDT 2025
topperc wrote:
> I guess the process is similar to how we add decoder namespaces today, just expressed differently so that we end up with a single decoder table. For "hard" conflicts, we will get an error message unless we have the resolve-conflicts-try-all enabled. For "soft" conflicts, we today do not get any error message today and I guess folks need to debug (so no changes there).
>From the CM_JALT/CM_JT example, it seems like we can get more "soft" failures with this change?
As an experiment I removed the ZcOverlap namespace in my local repo and I got
```
Decoding Conflict:
................
101.............
101...........10
101000________10 CM_JALT
101000000_____10 CM_JT
101011___11___10 CM_MVA01S
101011___01___10 CM_MVSA01
10111010______10 CM_POP
10111110______10 CM_POPRET
10111100______10 CM_POPRETZ
10111000______10 CM_PUSH
101___________10 C_FSDSP
```
If I move CM_MVA01S/CM_MVSA01 back to to ZcOverlap. Everything else worked and passed the tests.
The encoding for C_FSDSP is documented as being reused by the other instructions. Predicate checks enforce that they are mutually exclusive.
https://github.com/llvm/llvm-project/pull/157948
More information about the llvm-commits
mailing list