harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mikhail Fursov" <mike.fur...@gmail.com>
Subject Re: [drlvm] Jitrino.OPT performs incorrect GC enumeration in nested loop with array accesses
Date Thu, 05 Oct 2006 10:47:49 GMT
Egor,
You are right that log contains only (mptr,base) pairs. The offset ==
MAX_INT is interpreted as unknown. In this case the correct base for a
managed pointer is chosen in runtime: the algorithm searches for the nearest
known base.

In the log for the GCMap codegenerator's stage base is always '-1' and this
is correct (I can explain why if needed). So once managed pointer has no
known static offset (the offset is MAX_INT) the base is searched in runtime
as I described above.

+ Yes, I watched GC enumeration results from my debugger. The logs has only
compile-time information.
Right now I'm finishing magic support patch for JET and after it's finished
(1-2 hours) I going to switch to this problem. I hope I will help.

AFAIU the optimizer's path should be
-Djit.CS_OPT.path.optimizer=ssa
,purge,simplify,uce,dce,lazyexc,memopt,simplify,uce,dce,lower,dessa,statprof,markglobals
?
I ask it because I want to have the same IR numbers as you have

On 05 Oct 2006 17:09:35 +0700, Egor Pasko <egor.pasko@gmail.com> wrote:
>
> Mikhail,
> a small offtopic: do you use debugger to detect that one object is
> reported? I cannot see it in the logs. I can see only "pairs dump":
>

-- 
Mikhail Fursov

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message