On Mon, Jul 15, 2013 at 6:17 PM, Jonathan S. Shapiro <[email protected]> wrote:
> On Mon, Jul 15, 2013 at 3:03 PM, Jon Zeppieri <[email protected]> wrote:
>>
>
> That's what I thought. Basically, they've integrated the technique that
> Fergus Henderson proposed. It's actually not as bad as it sounds, since
> those registers tend to get spilled anyway.
>
> The issue isn't spilling the registers, so much as it is ensuring that the
> registers get reloaded.
>
> The essential requirement on the optimizer is to know the types of values in
> registers. LLVM doesn't do that. Implementors of managed languages have been
> complaining about that for years, but it isn't a priority at Apple.
>

I'm not sure I follow. By "register," I'm referring to an LLVM virtual
register, or an SSA value. As far as I know, most optimizations in
LLVM only pertain to SSA values, so the effect of keeping these on the
stack is to disable most optimizations.

The downside of this might not be so bad in a language like BitC,
where the type system plus escape analysis may be able to prevent many
variables from being tagged as GC roots. (My own investigation was in
the context of a language where most values would need to be GC
roots.)
_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to