[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 15:56:02 PDT 2025


topperc wrote:

> Thanks. Does that mean that I can just set the DecodeOrder to be 0 in all of them and things should still work?

Probably not all of them. DecoderTableZicfiss16 does need to be prioritized before DecoderTable16, DecoderTableRV32Only16, and DecoderTableZcOverlap16.

DecoderTable16, DecoderTableRV32Only16, and DecoderTableZcOverlap16 should be able to be resolved solely by predicates.

DecoderTable32, DecoderTableRV32Only32, DecoderTableZfinx32, DecoderTableZdinxRV32Only32 should be resolved by predicates.

The DecoderTableX* namespaces need to be before the other namespaces. These are the vendor namespaces. Different vendors can overlap encodings with each other and with the standard encodings. I think conflicts between vendor tables can be resolved by predicates. Though we don't currently enforce that predicates from two different vendors can't be turned on at once. The order of the vendor tables between each other is currently arbitrary. So they can probably all have the same order.

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


More information about the llvm-commits mailing list