Граф коммитов

32 Коммитов

Автор SHA1 Сообщение Дата
jfrijters cec4f20c29 - Removed unnecessary methods from CodeEmitter.
- Removed "Lazy" prefixes in CodeEmitter.
2010-10-01 08:11:49 +00:00
jfrijters a37fec0af6 Remove usage of emitter stack peek methods (PeekLazyClassLiteral and PopLazyLdstr). 2010-09-30 08:04:46 +00:00
jfrijters 390446e4c5 Build intermediate store of MSIL code in CodeEmitter to allow post-processing optimization steps. 2010-09-30 04:03:32 +00:00
jfrijters 3888406d95 Wrapped LocalBuilder in new CodeEmitterLocal class to allow CodeEmitter to encapsulate the ILGenerator fully. 2010-09-29 07:21:51 +00:00
jfrijters 7f3b28c129 Restructured method analyzer/verifier to make data flow more obvious and keep less data alive during compilation. 2010-09-22 04:01:36 +00:00
jfrijters f77b2d0291 Move construction of EmitIntrinsicContext to compiler. 2010-09-14 14:15:07 +00:00
jfrijters 8f02df10b8 Added wrapper class for intrinsic emitter method arguments to make things more manageable and to have a place to stick helper methods. 2010-09-14 13:40:17 +00:00
jfrijters 7dfb0107c4 Removed mutable flags field from Instruction. 2010-06-07 06:13:05 +00:00
jfrijters b3f4be7dea If class GC is enabled, don't intrinsify thread locals, because the CLR doesn't support ThreadStaticAttribute in RunAndCollect assemblies. 2010-04-12 06:44:29 +00:00
jfrijters 0751ab4d76 Intrinsified ThreadLocal (under specific circumstances). 2010-02-11 10:36:01 +00:00
jfrijters d1e163408f Removed IKVM_REF_EMIT, as STATIC_COMPILER or STUB_GENERATOR now always implies IKVM.Reflection. 2010-01-28 09:18:33 +00:00
jfrijters dbd6df02ae Integrated new IKVM.Reflection implementation. 2010-01-25 07:52:27 +00:00
jfrijters 33f074087f Simplified the obj1.getClass() == obj2.getClass() intrinsic to avoid RuntimeTypeHandle. It turns out that on .NET 4.0 RuntimeTypeHandle.Value requires full trust and using RuntimeTypeHandle.Equals is actually slower than simply comparing the types (on .NET 4.0 beta 2, on .NET 2.0 this new approach is actually a bit slower, but the fact that the code is simpler and smaller is also worth something). 2009-10-23 05:58:41 +00:00
jfrijters 5166b04d4a More ikvmc assembly/type refactoring. 2009-10-21 04:54:39 +00:00
jfrijters dac3109b6b Replaced most type literals with static field access (in Types class) or warpped JVM.Import() around them. 2009-10-14 14:58:41 +00:00
jfrijters b9ceecc098 Removed EmitHelper class and moved its methods into CodeEmitter. 2009-08-31 05:02:34 +00:00
jfrijters 88729b4059 Optimized primitive class literals. 2009-07-16 06:29:32 +00:00
jfrijters 4e3c9e505f Made ikvm.runtime.Util.getInstanceTypeFromClass() into an instrinsic, when used with a class literal. 2009-07-14 06:20:23 +00:00
jfrijters e417a92a37 - Moved class literal TypeWrapper -> Type step into expression emitter.
- Fixed Class.desiredAssertionStatus() instrinsic to use the RemoveAsserts flag from the right class loader.
2009-03-02 06:31:55 +00:00
jfrijters 4291ce372d - Added support for multi level stack tracking to CodeEmitter.
- Made most Pop emitting lazy to enable optimizing them away (together with corresponding push).
- Made loading class literal lazy, to enable optimizing them away when they aren't used (e.g. because an atomic intrinsic).
- Made Class.desiredAssertionStatus() into an intrinsic, to be able to optimize it away when -removeassertions is used.
2009-02-27 06:17:06 +00:00
jfrijters 95c07f04c3 Added explicit null check (to avoid Type.GetTypeHandle form showing up in the stack trace) and don't do the optimization if we can't prove that either object isn't a ghost array. 2009-02-23 05:18:44 +00:00
jfrijters 8ffc7143ee Intrisified two uses of Object.getClass(). 2009-02-22 08:19:30 +00:00
jfrijters 142e5e9726 Disable String.toCharArray() intrinsic, because it relies on globals. 2009-02-10 05:53:57 +00:00
jfrijters be63d3d792 Workaround for Mono bug 467229. 2009-01-20 05:13:49 +00:00
jfrijters b5b83fa2f2 Added critical failure for, what should be, an impossible code path. 2009-01-05 06:30:13 +00:00
jfrijters faffcc628c Integrated IKVM.Reflection.Emit in ikvmc. 2008-11-14 08:42:07 +00:00
jfrijters d439d5b1f4 Removed GNU Classpath specific code that I missed. 2008-08-25 05:12:08 +00:00
jfrijters b1b3f8b4f5 - Renamed CountingILGenerator to CodeEmitter.
- Renamed CountingLabel to CodeEmitterLabel.
2008-06-03 12:10:07 +00:00
jfrijters c5dcd8dc53 Refactored finish state/methods from JavaTypeImpl into FinishContext. 2008-06-03 06:52:30 +00:00
jfrijters 5e4182edb5 - Implemented CallerID infrastructure.
- Marked various methods with HasCallerID annotation.
- Rewrote some methods to explicitly use CallerID.
2008-05-31 15:20:29 +00:00
jfrijters aa0bdc2280 Pass caller method instead of type to intrinsic infrastructure. 2008-05-31 10:22:37 +00:00
jfrijters 29f84a8850 - added more efficient float/double to/from int/long bits converters
- made Double.doubleToRawLongBits/longBitsToDouble and Float.floatToRawIntBits/intBitsToFloat intrinsics
- generalized the intrinsics support
2008-05-09 05:57:55 +00:00