At 08:59 PM 2/14/2001 +0000, Graham Barr wrote:
>On Wed, Feb 14, 2001 at 03:38:55PM -0500, Dan Sugalski wrote:
> > At 08:29 PM 2/14/2001 +0000, Graham Barr wrote:
> > >On Wed, Feb 14, 2001 at 03:04:40PM -0500, Dan Sugalski wrote:
> > > > At 05:57 PM 2/14/2001 -0300, Branden wrote:
> > > > >Simon Cozens wrote:
> > > > > > On Wed, Feb 14, 2001 at 11:38:58AM -0800, Damien Neil wrote:
> > > > > > >   sub do_stuff { ... }
> > > > > > >
> > > > > > >   {
> > > > > > >     my $fh = IO::File->new("file");
> > > > > > >     do_stuff($fh);
> > > > > > >   }
> > > > > > >
> > > > > > > In this code, the compiler can determine that $fh has no active
> > > > > > > references at the end of the block
> > > > > >
> > > > > > No, it can't, but it can certainly put a *test* for not having
> > > references
> > > > > > there.
> > > >
> > > > Yes it can tell, actually--we do have the full bytecode to the sub
> > > > available to us, along with whatever metainfo we choose to remember
> > > > generally about the sub. Whether we use the info is a separate 
> matter, of
> > > > course.
> > >
> > >Not if the sub is AUTOLOADed
> >
> > Yeah, there is that. AUTOLOAD (and eval, and do, and require) throw a
> > high-entropy monkey wrench into things. Skipping them where possible will
> > be one of the tickets to more optimized code.
>
>Actually its not just those. The sub could just be defined later in the
>same file. Or even redefined at some point in time during runtime.

Defined later in the file's not a problem, as the optimizer would have the 
information about the sub handy. Redefining the sub at runtime is a 
problem, though, and we might not get great optimization if it can't be 
determined if a sub is stable. Getting good optimization would mean either 
you told the optimizer that it can assume subs are stable, or that 
eval/do/require weren't seen in the entire program after initial loading 
and parsing and we didn't see any constructs that redefine subs.

                                        Dan

--------------------------------------"it's like this"-------------------
Dan Sugalski                          even samurai
[EMAIL PROTECTED]                         have teddy bears and even
                                      teddy bears get drunk

Reply via email to