[self-interest] Re: Self on Linux

Douglas Atique datique at pcs.usp.br
Thu Feb 4 18:47:11 UTC 1999

I have been recalling my notes (I didn't have them around when I last
answered your mail) and came to the conclusion that maybe a recompilation
can take place without the SIC. I think it is so because of customization.
When you call a method, it is compiled and the nmethod is attached to a
PIC for that method. If you call a method with the same name for a
receiver of a different type (map) that cached code is not adequate for
simply running. Then, a new nmethod must be compiled. What I don't know is
whether this situation is what you call a recompilation. As far as I
understand it right now, a recompilation is both 
1) the polymorphic situation I described and 
2) when a method has been called 
(with the same receiver) frequently enough so that it deserves to be
optimized. Then SIC comes into scene. I guess Jecel (or someone else) can
help. About conversions, I still don't understand conversions to tell you
anything useful. I'd rather listen.
I've been looking in the VM code and thought of the following idea: to
turn off the SIC, I would make the VM think that even when some code is
recompiled, it doesn't want to optimize. Though this may seem strange (I
mean, recompiling the same method with the NIC), it is a way to put the
SIC aside for now. Exactly, what I would do is modify the method
SendDesc::isOptimized to always return false. I think that may work (at a
first glance, at least). Another thing I was thinking about is
deoptimization when one invokes the debugger on an optimized method. Maybe
that should be turned off, too.
One thing I didn't understand in your port is that there is a lot of SPARC
assembly code bundled in the VM code. Did you change all that or it
compiles on i386 unchanged?


eGroup home: http://www.eGroups.com/list/self-interest
Free Web-based e-mail groups by eGroups.com

More information about the Self-interest mailing list