The initial RISCV64 support is based on RV64I and RV32I instruction sets which impose instruction values that are 32 bits in size. Memory usage efficiency would improve with the adoption of compressed instructions as specified in the C standard extension, enabling generation of instructions that are only 16 bits wide. The spec is quite bullish: ``` Typically, 50%–60% of the RISC-V instructions in a program can be replaced with RVC instructions, resulting in a 25%–30% code-size reduction. ``` The 32-bit instruction size was taken for granted with good effect in implementing linking and repatching on JIT code, so decoupling these assumptions will be some work. Also, the extension is just that -- an extension. We need a solid way of detecting it at runtime and adjusting accordingly.
<rdar://problem/90753189>