Could anybody of you probably help with that? I am unfortunately not at
all familiar with the around weaving architecture.
Cheers,
Eric
> -----Original Message-----
> From: Eduardo S. Cordeiro [mailto:cordeiro@dcc.ufmg.br]
> Sent: Tuesday, October 10, 2006 2:32 PM
> To: Eric Bodden
> Subject: An optimization for abc
>
> Hello Eric,
>
> a while ago we had a conversation regarding implementing a small
> optimization on abc, which we figured out had already been
implemented,
> though not yet released. I've continued my research and found another
> small optimization niche that occurs on around advice weaving. When
the
> advice method is inlined, context variables are added to the inline
> method's signature. These context variables may be available because
> they're needed for the correct shadow execution after it's been
> extracted, or because the programmer has captured them explicitly
using
> the args, this and target clauses.
>
> The thing is, if a variable is available for both reasons (which
> actually happens for every variable explicitly captured by the
> programmer), this variable appears twice in the inlined method's
> signature. This has the following impacts on the generated code:
> - it is larger, because signatures for inlined advice methods include
> two parameters for the same thing
> - it is more memory-greedy, because frames for inlined advice methods
> are bigger
> - it is slower, because calls to the inlined advice methods need to
> load some arguments twice
>
> I've implemented this optimization on ajc and now I'm looking to
> implementing it also on abc, though I'll really need some help from
you
> understanding the abc source-code. What's a good place to start? What
> portions of org.abc.weaving.weaver.AdviceInliner should I concern
> myself with? Where are the inline methods and their signatures
actually
> generated?
>
> Thanks a bunch,
> Eduardo Cordeiro
Received on Tue Oct 10 19:37:01 2006
This archive was generated by hypermail 2.1.8 : Tue Mar 06 2007 - 16:13:30 GMT