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