Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Massimiliano Mantione
I know finding a spare bit in MonoMethod is impossible :-) On Tue, 2008-07-29 at 20:48 -0300, Rodrigo Kumpera wrote:  Other option is to kill the inline_info bit in MonoMethod and use the space for a force_inline bit. inline_info can easily be replaced by a hash table in mini.c. This would

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Kornél Pál
Hi, Massimiliano Mantione wrote: IMHO, it is just easier to force inlining according to wrapper type: IIRC we already force inlining of certain wrappers, so we would not change the code logic that much. And if there are two kinds of managed to managed wrappers, one that must be forced

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Massimiliano Mantione
On Wed, 2008-07-30 at 09:19 +0200, Kornél Pál wrote: I believe that there is no use to force managed-to-managed wrappers to be inlined. I just would like to elminiate the code that prevents them being inlined. If inlining is considered carefully (this should be the case) then I don't think

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Kornél Pál
Hi, Massimiliano Mantione wrote: The good news is that the current commit of the linear IR work is the first step in getting a better JIT infrastructure so that we can handle these things properly. Thanks for the explanation about inlining. Now I understand that it's even more complicated

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Zoltan Varga
Hi, This patch replaces a small, fast, simple piece of code in mono_emit_inst_for_method () with something far more complex. Also, about replacing icalls with generated IL code: - the code to generate the icalls is usually much bigger and more complex than the icall itself. - it replaces code

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Rodrigo Kumpera
On Wed, Jul 30, 2008 at 4:08 AM, Massimiliano Mantione [EMAIL PROTECTED]wrote: I know finding a spare bit in MonoMethod is impossible :-) On Tue, 2008-07-29 at 20:48 -0300, Rodrigo Kumpera wrote:  Other option is to kill the inline_info bit in MonoMethod and use the space for a

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Rodrigo Kumpera
Hi Zoltan, It's only doable to encode some very simple icalls with IL. I have the feeling that we get an order of magnitude code increase for going from C/C# to emitting IL. OTOH, for things like UnsafeAddrOfPinnedArrayElement, the code is so straight forward that gcc will hardly do much better

Re: [Mono-dev] [Mono-patches] r109263 - trunk/mcs/class/System.Data/System.Data

2008-07-30 Thread Rodrigo Kumpera
Varadhan, Depending on exception on regular paths might lead to disastrous performance. Is this just a corner case for compatibility or this kind of situation might happen often? We might need to document this shortcoming of our stack. Thanks, Rodrigo On Wed, Jul 30, 2008 at 10:56 AM,

Re: [Mono-dev] [Mono-patches] r109263 - trunk/mcs/class/System.Data/System.Data

2008-07-30 Thread Atsushi Eno
Hey, I tried the repro case on that bug and verified it works under .NET. Then I removed the parameterless constructor. .NET borked. That means, instead of using XmlReader.ReadContentAsObject(), you would simply write like below. IXmlSerializable x = (IXmlSerializable)

[Mono-dev] Mono port for AIX and PASE on IBM i

2008-07-30 Thread Bill Seurer
I've been getting a LOT of questions about this lately so I thought I should let people know what's up. I was part of a group that in the summer of 2006 ported Mono to run on PASE on IBM i (aka AS/400 and i5/OS). PASE is a runtime environment which is really AIX so AIX programs can usually

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Kornél Pál
Hi, Zoltan Varga wrote: This patch replaces a small, fast, simple piece of code in mono_emit_inst_for_method () with something far more complex. Also, The three icall builders are reference implementations for demonstrating what icall builders can do. I don't insist on OffsetToStringData

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Paolo Molaro
On 07/30/08 Kornél Pál wrote: Zoltan Varga wrote: This patch replaces a small, fast, simple piece of code in mono_emit_inst_for_method () with something far more complex. Also, The three icall builders are reference implementations for demonstrating what icall builders can do. I don't

Re: [Mono-dev] Ping on nternal call builders

2008-07-30 Thread Kornél Pál
Paolo Molaro wrote: If you propose a considerable amount of increased complexity and your reference 'improvements' are actually a lot worse you should at least choose better references to show. My goal would be to make some icalls execute faster. Of course I don't want to cripple the JIT. (I

[Mono-dev] Questions about the linear IR

2008-07-30 Thread Rasmus Halland
Hello, I'm curious about the new linear IR versus the old tree IR. I have read http://www.mono-project.com/Linear_IL, but I would like some more background information, if someone would be so kind to enlighten me: http://www.mono-project.com/Linear_IL contains some information about data

[Mono-dev] Questions about the linear IR

2008-07-30 Thread Rasmus Halland
Hello, I'm curious about the new linear IR versus the old tree IR. I have read http://www.mono-project.com/Linear_IL, but I would like some more background information, if someone would be so kind to enlighten me: http://www.mono-project.com/Linear_IL contains some information about data

Re: [Mono-dev] Questions about the linear IR

2008-07-30 Thread Zoltan Varga
Hi, The old JIT used trees as its internal representation, and the only things which is easy with trees is code generation, everything else is hard. With the linear IR, most things are easy, and only a few things are hard, like optimizations which transform multiple operations into one, like