Only in the most extreme cases.
1) Battery life isn't dominated by run current for the vast majority of embedded devices. Sleep current dominates (most cases) or peripheral current dominates (RF transmit/receive, for example). You try to dial down the number of times you turn on until it's below the amount of energy you burn while off.
2) RAM is expensive; flash not so much. Code space isn't the issue--10% almost certainly not. Correlated: this is why I expect you really won't see 64 bits making a lot of inroads into embedded--doubling RAM consumption is expensive on embedded.
Core advantage? I will let others debate that. Significant: surely.
In other words: not only is it better in terms of royalties and ecosystem, it also better at everything else too. Isn't that terrific?
And here it is compared against a classical CISC platform and a hybrid one highly optimized for code size, and winning. What just makes RISC-V even more awesome than just any non-optimized design beating the incumbents.
REX prefixes really killed the space efficiency of the x86 architecture.
There's some indication that density should have increased somewhat since then, but I haven't looked at it myself.
It gets harder for more complex designs though.
But for cases where you want to replace a Cortex M2, the area increase will be trivial.
It's not the kind of compression you might be thinking of. It's just 16-bit "shortcuts" for some of the common 32-bit instructions. The impact in gate count should be minimal. In a lot of these applications you'll have the code in on-chip non-volatile memory which means reducing code size may also reduce chip area.
I think with relatively little increase in gate count you could also make some sequences of two 16-bit instructions execute simultaneously, which could yield nice performance improvements for micro-controller cores.
Also, you might be surprised at how "big" many micro-controllers are becoming these days.
Decoding the "compressed" instructions is actually pretty straightforward, it doesn't add much complexity to a design. ARM Cortex M0+/M3/M4 implements a similar (but more complex) "compressed" instruction set called Thumb, and comparable RISC-V cores available from SiFive are smaller, faster, and more efficient.
In a very small RISC-V core by the venerable Clifford Wolf called PicoRV32 [0], you can look at the complexity introduced by configuring it with the COMPRESSED_ISA option.
> ...and program memory is at a premium in those places.
Program memory is one thing, but on processors of all sizes, code size has a big impact on performance in common types of program.
If you compare GCC/ARM with GCC/RISCV the difference isn't too great, but even the IAR ARM compiler gives you noticeable improvements over GCC/RISCV. And ARM's compilers are actually quite good with respect to code size; MUCH better than GCC/RISCV (or even GCC/ARM).
That being said, were I to add some custom instructions, I would COMPLETELY prefer to do it with RISC-V than with ARM.
[] Though the gcc/riscv toolchain is getting better pretty quickly.
https://people.eecs.berkeley.edu/~krste/papers/EECS-2016-1.p...
RV32C and ThumbV2 have equal code sizes.