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

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.


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

Reply via email to