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

62 Коммитов

Автор SHA1 Сообщение Дата
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