[Mono-list] ikvm and Mono 0.20

Paolo Molaro lupus@ximian.com
Wed, 26 Feb 2003 17:16:22 +0100


On 02/26/03 Varga Zoltan wrote:
> The problem is with the if (!cfg->share_code) statements in
> the JIT,
> which create some vtables at JIT compile time, instead of
> creating it
> the first time a static variable/method is accessed. 

Oh, ok, I guess we'll have to add calls to init the vtable
any time a static variable is used, possibly doing some of the same
tricks we use with method calls to reduce to the minimum the overhead
after the first call. I'll have to think about how best to integrate
this in the JIT, since I'd like to have an optimization pass remove the
calls if they are redundand.

> The --noinline flag
> is only needed because of a bug at x86.brg:1699: this code
> pushes the 
> currently compiling method's image to the stack, instead of
> the method 
> to which the LDSTR belongs (the two are not necessarily
> equal due to inlining).

Ok, this bug doesn't seem to be there in the new JIT.

> BTW, here is a testcase for the type initialization problem:

Thanks, I added it to the test suite.

lupus

-- 
-----------------------------------------------------------------
lupus@debian.org                                     debian/rules
lupus@ximian.com                             Monkeys do it better