atom feed30 messages in org.python.python-dev[Python-Dev] Optimization targets
FromSent OnAttachments
Raymond HettingerApr 13, 2004 8:00 pm 
Jeff EplerApr 13, 2004 9:10 pm 
Bob IppolitoApr 13, 2004 9:26 pm 
Jeff EplerApr 13, 2004 10:04 pm 
Raymond HettingerApr 13, 2004 10:17 pm 
Jeff EplerApr 13, 2004 11:10 pm 
Guido van RossumApr 13, 2004 11:26 pm 
Tim PetersApr 13, 2004 11:56 pm 
Jeff EplerApr 14, 2004 9:08 am 
Raymond HettingerApr 14, 2004 12:06 pm 
Andrew MacIntyreApr 14, 2004 3:23 pm 
Jeff EplerApr 14, 2004 3:35 pm 
Mike PallApr 14, 2004 5:50 pm 
Tim PetersApr 14, 2004 11:14 pm 
Michael HudsonApr 15, 2004 7:05 am 
Mike PallApr 15, 2004 9:36 am 
Guido van RossumApr 15, 2004 10:27 am 
Jeremy HyltonApr 15, 2004 10:38 am 
Guido van RossumApr 15, 2004 10:42 am 
Mike PallApr 15, 2004 11:56 am 
Mike PallApr 15, 2004 11:56 am 
Skip MontanaroApr 15, 2004 11:59 am 
Michael HudsonApr 15, 2004 1:27 pm 
Raymond HettingerApr 15, 2004 2:22 pm 
Thomas HellerApr 15, 2004 2:31 pm 
"Martin v. Löwis"Apr 15, 2004 3:07 pm 
Jeremy HyltonApr 15, 2004 11:26 pm 
Tim PetersApr 16, 2004 12:18 am 
"Martin v. Löwis"Apr 16, 2004 2:00 am 
Andrew MacIntyreApr 16, 2004 9:14 pm 
Subject:[Python-Dev] Optimization targets
From:"Martin v. Löwis" (mar@v.loewis.de)
Date:Apr 16, 2004 2:00:42 am
List:org.python.python-dev

Jeremy Hylton wrote:

I'm not sure what you mean by the changes over standard JIT. Do you mean the difference between Hotspot and "standard JIT"? Your descriptions sounds a bit like the Deutsch and Schiffman inline method cache, which doesn't inline the method body but does inline the method lookup. Or does Hotspot actually inline methods?

I lost the link, but on some page describing it, they actually claimed they do inline methods. They went on explaining that you need "deoptimization" in case a different method should be called; I assume they generate a type check just before the inlined method body. I might be that they keep collecting statistics on how often the type guess was wrong to discard the inlining, and come up with a new one.

Hotspot operates by only compiling functions selectively, which have been invoked a number of times, and they claim they collect data on where virtual calls go to. So when they eventually do generate machine code, they have the data to do the inlining.

A "standard" JIT might chose to compile everything the first time it is invoked, and would then just replace the virtual-call bytecode with the necessary memory fetches and an indirect call.

Regards, Martin