On 05 Oct 2006 18:35:23 +0700, Egor Pasko <[EMAIL PROTECTED]> wrote:
> So once managed pointer has no known static offset (the offset is > MAX_INT) the base is searched in runtime as I described above. should we document this? :)
I think we should document the whole JIT. The question is when :) ? I hope the internal testing framework for Jitrino.OPT compiler will quicken it. I don't quite well understand how an object reference is not reported
at compile-time, but found at runtime.. Sniffing refs on a stack frame? Hm, is there any reason I thought Jitrino is not like that?...
The log you pointed to is the log from MPTR resolving algorithm. This algorithms is not interested in bases. If you want to know all items that are reported to GC you should look for GCInfoPseudoInst that are interested by GCMap pass. GCMap pass inserts these insts after each call only for the logging purpose. The same GCInfoPseudoInst is inserted by 'gcpoints' pass on the beginning of code generation to extend bases life range for managed pointers with unknown offsets. Doing this we can guarantee that for every managed pointer with unknown offset we have valid base pointer at every call. So, the only way to detect all reported objects on a call-site is to
stop on the call-site at runtime during enumeration? Not impressed. Does it log to the runtime log (rt.log) currently? I tried "-Djit.log=rt", but it produced no result. Is that a bug?
No, try -Djit.arg.log=rt or -Djit.CS_OPT.arg.log=rt to enable runtime logging category. -- Mikhail Fursov
