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 may have tried but I was convinced not to do that each time.:) > There are not many cases like UnsafeAddrOfPinnedArrayElement (the > implementation also likely needs security checks, so in the end the > implementation will be more complex and the transition overhead will be > less significant). This one needs no security checks because this is intended to be fast but unsafe (unpinned, unchecked) pointer access. Note that I've chosen those three methods as reference implementatios because they are different and require really few opcodes to implement so that I don't waste time on implementing them if the patch don't get approved. I've created a list about methods that could be implemented using managed code. Also note that there are methods that probably should be implemented in C# with some inlined helpers. Some of these may not be used in real world applications but Array, Buffer, MonoType and Marshal methods are in use for sure. System.Array: - GetLength - GetLongLength - GetLowerBound System.Buffer - all methods System.MonoType - GetArrayRank - IsByRefImpl - IsCOMObjectImpl - IsPointerImpl - IsPrimitiveImpl - get_IsGenericParameter - get_attributes System.Object - obj_address System.Reflection.Emit.TypeBuilder - get_IsGenericParameter System.Reflection.Module - GetGuidInternal - GetHINSTANCE - GetMDStreamVersion - GetPEKind System.Reflection.MonoField - GetFieldOffset System.Runtime.InteropServices.Marshal - ReadByte - ReadInt16 - ReadInt32 - ReadInt64 - ReadIntPtr - UnsafeAddrOfPinnedArrayElement - WriteByte - WriteInt16 - WriteInt32 - WriteInt64 - WriteIntPtr - copy_from_unmanaged (overloads lead there) - copy_to_unmanaged (overloads lead there) System.Threading.Thread - VolatileRead (overloaded) - VolatileWrite (overloaded) _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list