On 09/27/2012 04:20 PM, Aurelien Jarno wrote: > I understand that we can't easily insert an instruction, so the > limitation comes from here, but is it really something happening often?
It will certainly appear sometimes. E.g. s390x has an add immediate instruction that does exactly: r1 += imm16 << 32. Or did you mean specifically the full constant being folded? That would happen quite a bit more often. That you can see with most any 64-bit RISC guest when they attempt to generate a constant from addition primitives instead of logical primitives. For a 32-bit host, we've already decomposed logical primitives to 32-bit operations. And we can constant-fold through all of those. But when addition comes into play, we can't constant-fold through add2. r~