Straight-line single assignment in C--

Simon Marlow marlowsd at gmail.com
Mon Jan 23 11:01:47 CET 2012


On 21/01/2012 20:39, Edward Z. Yang wrote:
> Excerpts from Edward Z. Yang's message of Fri Jan 20 23:44:02 -0500 2012:
>> If multiple assignment is rare enough in straight line code, I might
>> be able to take the conservative approach and just say
>>
>>      a ->  used multiple times
>>
>> Which I don't think will cause any problems in the inlining step later.
>> But I don't have a good sense for this.
>
> I realized the answer to my question, which is YES.  In particular, the
> spill-reload step will result in this happening. Back to the drawing board...

In the old code generator we generated SSA code, by virtue of (a) never 
having loops and (b) never reusing LocalRegs.  In fact I think the 
mini-inliner in CmmOpt relies on this property.

It's a useful property to have - perhaps we should have it in the new 
codegen too?  (modulo loops of course, I'm not suggesting we introduce 
Phi nodes)

Cheers,
	Simon



More information about the Glasgow-haskell-users mailing list