On Sat Aug 16 02:36:27 2008, [EMAIL PROTECTED] wrote: > chromatic wrote: > > On Thursday 07 August 2008 08:26:19 Bob Rogers wrote: > > > >> I once suggested a "null register allocator" that would do this > >> globally, but this is a better idea. The only use case I can think > of > >> is debugging, particularly of the register allocator, but that's > still > >> important. > > > > In theory, that's what the vanilla register allocator does. In > practice, > > somehow something sometimes turns on the graph-based allocator, > which has a > > couple of bugs. PGE trips this occasionally. > > The graph-based allocator is currently completely disabled, and may be > ripped out. > > :unique_reg is a useful feature. For one thing, it's a compiler > optimization to skip the allocation code on certain variables. And, > we're likely to run through multiple register allocator algorithms > over > the years, so the ability to protect certain variables from register > alligators is likely to find future use. > > When disabling optimizations, you generally want to do it for the > smallest area possible, so turning off allocation for particular > variables is better than turning it off for an entire subroutine. But, > if we find that supporting :unique_reg for particular variables makes > it > overly difficult to implement future register allocators, we can > deprecate it then and switch to a per-subroutine selector. > > Allison
I committed a small update to the :unique_reg documentation in PDD19 in r31995. This should satisfy the original purpose of this ticket (documenting the directive), so I'm going to mark it resolved. There was a lot of good information discussed here though, about register allocators and other stuff, so forgetting about this ticket entirely is probably not a good idea. I'll try to merge some more of these ideas into documentation in various files throughout /docs/ http://rt.perl.org/rt3/Ticket/Display.html?id=57636 -- Andrew Whitworth a.k.a Whiteknight