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
|