On 1/25/07, zouqiong <[EMAIL PROTECTED]> wrote:

>
> You are right. If the only change you do is a new extra call in
translator
> it will limit optimizations. The best place to add tracing calls could
be
> hir2lir conversion, after all HLO optimizations were finished, but in
this
> case your helper can't be inlined.
>
> If you want your helper to be inlined try to add additional 'getfield'
> instrumentation pass into the middle of optimizer's pipeline: after
> inliner
> and memopt.
>
> --
> Mikhail Fursov
>
> I think I can directly instrument code to trace the object, not by
instrumenting call instruction.

What do you mean by HLO optimization? I instrument at Code Selector Pass
and
now I can trace getfield and aaload.




Jitrino's code generation pipeline can be splitted into 2 parts: HLO and CG
(codegen)
HLO part performs HIR optimizations/transformations
CG part performs LIR optimizations/transformations
LIR optimizations are very limited and very platform specific.
For example, inlining of Java methods is not platform specific, so this is
HLO optimization.

If you put your helper into Code Selector Pass (which is also called
'hir2lir') it's OK.
The only drawback I see here: your tracking call will never be inlined.


--
Mikhail Fursov

Reply via email to