En, I don't know whether OPT can eliminate such code:
aload_0
getfield 5 aload_0
aload_0 ==> getfield 5
getfield 5 dup
If it can eliminate them; I add tracing code as follows:
aload_0 aload_0
getfield 5 call ObjectRecord
aload_0 ==> getfield 5
getfield 5 aload_0
call ObjectRecord
getfield 5
I am afraid the instrumented "Call ObjectRecord" will cause the redundant
code can't be eliminated.
2007/1/23, Mikhail Fursov <mike.fursov@gmail.com>:
>
> On 1/23/07, zouqiong <ustczz@gmail.com> wrote:
> >
> > Hi, Mikhail:
> > I implement code to trace object access just follow WB's way. But I'm
> > afraid that the instrumented code in ops like getfield would effect the
> > liveness analysis optimize?
>
>
> When we add new commands/types to optimizer we have to teach it how to
> deal
> with them. But I don't think that performance impact of a new 'use'
> operation for a field is critical. In your case the most performance
> impact
> will be due to the additional tracking call.
>
> Have I answered your question?
>
> --
> Mikhail Fursov
>
>
--
Best Regards,
Qiong,Zou
|