Sorry for being unclear. I am working in the context of adaptive
optimization. Maybe I would use a small example:

Method mthA {
    
     // Call some method B here
}

What I want to do is have the JIT patch the code of mthA as it is compiling
it such that it becomes:

Method mthA {
    
     if (condition) {
         // Call some method C
     }
     else {
         // Call some method B here
     }
}

Now there are some requirement:
1. "condition" is a reference to internal data of the runtime, e.g. the
execution count of a method, or some info that is collected from the
profiler.
2. The condition check is done as "mthA" is actually executing.

Basically, the runtime passed a reference of some data, to a piece of user
code. And the user code checked that data for some condition.

I can certainly do the patching in "mono_method_to_ir()". But the problem is
how I can enable such condition check from user code to internal data
structure of the runtime. And do it quickly.

Thanks.

Derek


> Hello,
> 
> > I am experimenting with some ideas using mono. I hope this is not 
> > off-topic.
> > 
> > I want to modify the JIT of mono to insert some code to 
> > methods when they are being JIT -ted. Specifically, I need to insert a 
> > check to some internal variables declared in the mono runtime (e.g. 
> > an int, a  single bit, etc). The problem is that these are "unmanaged"
stuff 
> > existing in the runtime's address space. And I must insert  the check 
> > to User's code that are "managed".
> > 
> > I need a way to insert this check crossing the "managed" / 
> > "unmanaged" boundary. I know the "Marshal" class would do that for me. 
> > But I am guess it might be too slow. Are there other ways to do it?
Maybe the 
> > only better way is to patch up the native code after the code gen
process? 
> > Any insight is appreciated. Thanks.
> 
> You should describe in more detail what you are after.  There 
> is a pluggable profiling interface that you might want to 
> look into (code coverage and profiling are implemented this way).
> 
> For more technical stuff, you might want to patch directly 
> the code generation engine.
> 
> Miguel.
> _______________________________________________
> Mono-list maillist  -  [EMAIL PROTECTED] 
> http://lists.ximian.com/mailman/listinfo/mono-list
> 

_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to