jfrijters
fb4fcb8cc8
EmitWriteLine isn't used anymore.
2010-10-07 06:04:35 +00:00
jfrijters
4f5835934f
Made OpCodeWrapper data member private and added type safe accessors.
2010-10-01 09:22:47 +00:00
jfrijters
cec4f20c29
- Removed unnecessary methods from CodeEmitter.
...
- Removed "Lazy" prefixes in CodeEmitter.
2010-10-01 08:11:49 +00:00
jfrijters
17255f13ed
- Moved boxing/unboxing optimizationn to new model.
...
- Removed stack tracking / LazyGen remnants.
- Fixed comparison optimization to require the release of temporary local variables.
2010-10-01 06:40:49 +00:00
jfrijters
2bc060e265
Moved ldiv/idiv optimization to new model.
2010-10-01 04:41:06 +00:00
jfrijters
00136506eb
Moved long/float/double comparison optimization to new model.
2010-09-30 15:15:34 +00:00
jfrijters
902ce5539e
- Moved ldc_i4 and ldc_i8 encoding optimizations to the end of the pipeline.
...
- Added more side effect free load operations.
2010-09-30 10:04:54 +00:00
jfrijters
24e797fc2f
Moved over instanceof/byte array load to new optimization.
2010-09-30 08:56:59 +00:00
jfrijters
74d9cf55f7
Remove PopLazyLdstr and PeekLazyClassLiteral.
2010-09-30 08:05:30 +00:00
jfrijters
8f28fe1e63
Annihilate some common push/pop combinations.
2010-09-30 07:31:27 +00:00
jfrijters
6a61216e4f
Implemented branch optimization.
2010-09-30 06:00:40 +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
cda96b33f0
Remove unused property.
2010-09-29 05:38:12 +00:00
jfrijters
ce884000ce
Moved line number / sequence point handling into CodeEmitter and made things more consistent.
2010-09-28 08:02:07 +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
6dccbf20d5
Removed unused methods.
2009-11-06 07:46:39 +00:00
jfrijters
95cdfd8edd
Renamed ILGenerator.__GetILOffset() to ILGenerator.ILOffset to match with .NET 4.0.
2009-11-06 05:13:37 +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
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
db9c796794
Removed vestigial compact framework support.
2009-08-28 06:47:16 +00:00
jfrijters
52ec137518
Use ILGenerator's new "clever" mode in CodeEmitter to produce smaller code.
2009-08-14 13:36:53 +00:00
jfrijters
11edf7a73f
If IKVM_REF_EMIT is defined, we don't need to track the IL offset, we can use ILGenerator.__GetILOffset() instead.
2009-08-13 07:16:19 +00:00
jfrijters
213965367e
Optimized the reading of unsigned bytes from a byte array (buf[i] & 0xFF or buf[i] 0x0FFL).
2009-07-14 07:25:46 +00:00
jfrijters
04ca4a71f9
Moved class literal emit code to TypeWrapper and added checks to prevent types that are illegal in type instantations from being used with ClassLiteral<T>.
2009-07-13 08:34:37 +00:00
jfrijters
d3fbd5588d
Store our CodeEmitterLabel object in label check dictionary, instead of the underlying Label.
2009-04-06 10:14:47 +00:00
jfrijters
d20098ec2a
Renamed CodeEmitter.Finish() to CheckLabels() and moved invocation to the right place.
2009-04-06 10:10:17 +00:00
jfrijters
3ebf554517
Implemented ikvm.internal.ClassLiteral<T> to allow for more efficient class literals.
2009-03-04 05:47:18 +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
05d0c7a5c6
Fixed bug introduced in recent changes. When the first entry on the stack contains a partial expression, it cannot be popped.
2009-03-02 04:52:05 +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
faffcc628c
Integrated IKVM.Reflection.Emit in ikvmc.
2008-11-14 08:42:07 +00:00
jfrijters
684cdf651e
Generified all collections.
2008-08-15 12:01:06 +00:00
jfrijters
72b109c924
Removed our own tracking of LocalBuilders, because on .NET 2.0 LocalBuilder has a LocalIndex property.
2008-08-13 13:05:43 +00:00
jfrijters
a9e9235f3b
DynamicMethod support isn't needed in ikvmc.
2008-08-12 14:57:04 +00:00
jfrijters
b1b3f8b4f5
- Renamed CountingILGenerator to CodeEmitter.
...
- Renamed CountingLabel to CodeEmitterLabel.
2008-06-03 12:10:07 +00:00
jfrijters
f238214cfa
- Optimized codegen for lcmp, fcmp<x>, dcmp<x> and shift opcodes.
...
- Moved temp local handling to CodeEmitter.
2008-02-15 15:32:51 +00:00
jfrijters
b6ee3e2ec4
Added support for lazy string literals.
2007-06-12 09:47:40 +00:00
jfrijters
b78073fa54
*** empty log message ***
2006-11-27 07:39:30 +00:00
jfrijters
7f0d951c64
*** empty log message ***
2006-08-29 06:28:34 +00:00
jfrijters
323fa284ca
*** empty log message ***
2006-05-04 08:09:56 +00:00
jfrijters
c2b05c55fd
*** empty log message ***
2006-04-10 10:18:49 +00:00
jfrijters
69be416b18
*** empty log message ***
2006-04-10 09:09:09 +00:00
jfrijters
c44078fa27
*** empty log message ***
2006-01-02 10:59:51 +00:00
jfrijters
0bda6e85d9
*** empty log message ***
2005-12-29 15:48:32 +00:00
jfrijters
ba78911cf7
*** empty log message ***
2005-12-20 12:44:29 +00:00
jfrijters
5e4bb4f5cf
*** empty log message ***
2005-12-19 15:12:49 +00:00
jfrijters
7fb5bb4b47
*** empty log message ***
2005-12-07 09:06:32 +00:00