Re: constant_unfolding branch

2010-06-01 Thread Patrick R. Michaud
> The idea (which I may not have conveyed sufficiently well), is that we > eliminate rarely-used or even nonsensical constant variants of ops. > That is, get a constant gain at the expense of a cost to rare use > cases. Works for me, as long as we recognize that we're going to maintain a special-c

Re: constant_unfolding branch

2010-06-01 Thread Peter Lobsinger
On Sun, May 30, 2010 at 10:51:36PM -0700, Peter Lobsinger wrote: >>> An idea that's been batted about a bit lately is that our op-bloat is >>> at least partly caused by all the constant-argument variant forms all >>> of our ops need to support. >>> ... >

Re: constant_unfolding branch

2010-05-31 Thread Allison Randal
On 5/31/10 4:50 PM, Patrick R. Michaud wrote: The above proposal looks to me as though it is reducing the number of opcodes at the expense of increasing the runtime opcode dispatches and the size of the resulting bytecode. That feels very much like a false optimization to me. (Again, I may be

Re: constant_unfolding branch

2010-05-31 Thread kjstol
t forms all >> of our ops need to support. >> ... >> To address this, the constant_unfolding branch adds a step to IMCC >> instruction selection to check for non-const variants of an >> as-of-yet-unfound op. If found, this op is used and constant arguments >> are

Re: constant_unfolding branch

2010-05-31 Thread Patrick R. Michaud
On Sun, May 30, 2010 at 10:51:36PM -0700, Peter Lobsinger wrote: > An idea that's been batted about a bit lately is that our op-bloat is > at least partly caused by all the constant-argument variant forms all > of our ops need to support. > ... > To address this, the constant_u

Re: constant_unfolding branch

2010-05-31 Thread Allison Randal
On 5/31/10 6:51 AM, Peter Lobsinger wrote: To address this, the constant_unfolding branch adds a step to IMCC instruction selection to check for non-const variants of an as-of-yet-unfound op. If found, this op is used and constant arguments are handled by assignments to temporary registers. This

constant_unfolding branch

2010-05-30 Thread Peter Lobsinger
An idea that's been batted about a bit lately is that our op-bloat is at least partly caused by all the constant-argument variant forms all of our ops need to support. To address this, the constant_unfolding branch adds a step to IMCC instruction selection to check for non-const variants of