I did not have Qualcomm and their latest bout of theatrical shenanigans concerning C in mind, either.
Back onto C.
– C demonstrably improves code density;
– Improved code density is conducive of better instruction cache utilisation and reducing the pressure on the TLB;
– Mixed-width decoding (a trade-off) demonstrably adds front-end work (especially in pathological cases[0]);
– No publicly benchmarked RISC-V processor is sufficiently contemporary and wide (or very wide) to impart the net effect of that trade-off at the highest performance tier;
– Performance targets (aarch64 and x86-64) are moving faster than publicly demonstrated performance of existing RISC-V implementations in silicon, and the gap is not closing in.
So purported performance benefits of C may or may not materialise – it remains to be seen and proved, and claims that a future wide RISC-V core will validate design choices such as C remain not yet falsified projections rather than demonstrated engineering results – at this stage.[0] The second page is not resident, the decoder can't proceed because the second half-word can't be obtained, the access generates a page fault, the CPU eventually vectors to the page-fault handler. Genuine page faults are extremely expensive.