Wed Jun 30 12:10:57 CEST 2010 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / mini / ChangeLog
index c45a20137affba328f7d2370e54be1fe2cdf4ae6..1f523c45fcd122e9edd63ea0fbf80a969c3b69a2 100755 (executable)
@@ -1,5 +1,179 @@
+
+Wed Jun 30 12:10:57 CEST 2010 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am, mini-llvm.h, mini-unwind.h, mini.c, mini.h, xdebug.c:
+       implemt the option of loading the llvm backend from a module so
+       that we can have a single binary and the bloat from llvm is
+       only experienced when it is actually loaded.
+
+Wed Jun 30 12:02:39 CEST 2010 Paolo Molaro <lupus@ximian.com>
+
+       * mini-llvm.c: remove direct access to mono_defaults.
+
+2010-06-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c (mono_arch_get_vcall_slot): This is no longer used on ARM, so make it
+       a no-op.
+
+       * mini-trampolines.c (mono_vcall_trampoline): Fix a warning.
+
+       * mini-x86.c (mono_arch_get_vcall_slot): Remove most cases as the only caller
+       is now mono_arch_nullify_class_init_trampoline ().
+       (mono_arch_output_basic_block): Remove the special casing from the CALL_MEMBASE
+       opcodes, they are no longer needed.
+
+       * mini-amd64.c (mono_arch_get_vcall_slot): Remove most cases as the only caller is
+       now mono_arch_nullify_class_init_trampoline ().
+       (mono_arch_output_basic_block): Remove the special casing from the CALL_MEMBASE
+       opcodes, they are no longer needed.
+
+       * mini-trampolines.c (mono_vcall_trampoline): Use the LLVM method of obtaining the
+       vtable on platforms which support it.
+
+       * driver.c: Print the full LLVM version we are compiled against in --version.
+
+       * aot-runtime.c (decode_exception_debug_info): Separate the LLVM and non-LLVM code
+       a bit better. Decode nesting information to fix eh support for llvm+aot.
+
+       * aot-compiler.c (emit_exception_debug_info): Encode nesting information for LLVM
+       methods.
+
+       * mini-llvm.c (mono_llvm_cleanup): Dispose the aot module too.
+
+       * mini-arm.c (get_call_info): Change the managed calling convention so 'this'
+       is always passed as the first argument, before the vtype ret arg. This simplifies
+       get_this_arg_reg () and LLVM integration.
+
+2010-06-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c mini.c: Rework the virtual call handling code by using a separate
+       vtable trampoline for each vtable slot for both the LLVM and non-LLVM cases. Move
+       most of the vcall specific code to mono_vcall_trampoline () from
+       common_call_trampoline ().
+
+2010-06-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c (common_call_trampoline): Remove the code which created static
+       rgctx trampolines when called from LLVM, they won't work for dynamic rgctx arguments
+       if the callsite is patched.
+
+       * mini-llvm.c (process_call): Disable calls which need an rgctx arg if not using
+       the llvm branch.
+
+       * tramp-amd64.c (mono_arch_create_rgctx_lazy_fetch_trampoline): Fix the name of
+       the trampoline in the xdebug info.
+
+       * mini-trampolines.c (common_call_trampoline): Make the last change work for LLVM
+       as well.
+
+2010-06-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm.c: Fix a few problems exposed by make check.
+
+2010-06-25  Mark Probst  <mark.probst@gmail.com>
+
+       * mini-trampolines.c (common_call_trampoline): An ugly hack to
+       work around a potentially very hard to fix problem with inflating
+       generic methods.
+
+2010-06-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_emit_wb_aware_memcpy): Remove the workaround as the core
+       problem has been fixes.
+
+2010-06-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * Makefile.am: Add an 'SGEN' make variable to allow tests to be run with SGEN.
+
+       * mini-gc.c (mini_gc_init_cfg): Use mono_gc_is_moving () instead of HAVE_SGEN_GC.
+       It might be be better to define a MonoGCJitOptions structure later and have the
+       GC return that.
+
+       * mini-darwin.c: Don't undefine pthread_ calls for SGEN, they are no longer defined.
+
+       * Makefile.am: Use libwapi.la for both sgen and non-sgen builds.
+
+       * debugger-agent.c (get_objref): Implement support for sgen.
+
+       * driver.c: Remove the unused gc_wrapper.h include.
+
+       * driver.c (mono_main): Delegate the --desktop mode optimizations to the GC
+       implementation.
+
+2010-06-25  Zoltan Varga  <vargaz@gmail.com>
+
+       * driver.c (mono_main): Use mono_gc_get_description () to print the GC name.
+
+       * mini-gc.c (mini_gc_init_cfg): New function to initialize GC specific flags
+       in MonoCompile.
+
+       * method-to-ir.c mini.c: Remove usage of HAVE_SGEN_GC and use runtime checks
+       instead.
+
+2010-06-23  Miguel de Icaza  <miguel@novell.com>
+
+       * Makefile.am: Build the mono-sgen binary a Mono VM with the Sgen
+       GC enabled as well as libmono-sgen-2.0 and libomonosgen-static
+
+       * driver.c: Do not depend on the USED_GC_NAME when using SGen, use
+       it only for Boehm diagnostics.
+
+       * Makefile.am: Make the file a bit more consistent.
+
+       * debug-debugger.c: Wrap the entire file with an #ifdef
+       MONO_DEBUGGER_SUPPORTED to simplify the build.
+
+       * Makefile.am: Fix the opcodes build issue by including the
+       source, not by including the .lo file directly
+
+       Always bring the MDB sources into the build, to drop the
+       dependency on the AM_CONDITIONAL from configure.in as the hard
+       debugger supports Boehm, but not Sgen, this simplifies the build. 
+
+       * Renamed the *.s files into *.S
+
+2010-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c (mono_emit_wb_aware_memcpy): Don't emit bitmap
+       wb for now on 64bits systems while issues with valuetype returns
+       are not fixed.
+
+2010-06-24  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm-cpp.cpp (mono_llvm_create_ee): Add support for using a standard set of
+       passes by calling createStandardFunctionPasses ().
+
+2010-06-23  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h (MONO_INS_HAS_NO_SIDE_EFFECT): Add OP_LDADDR.
+
+2010-06-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Don't mark loads from OP_LDADDR with
+       MONO_INST_FAULT.
+
+       * mini-llvm.c (mono_llvm_emit_method): Recalculate MONO_INST_INDIRECT flags to
+       allow better optimization if the OP_LDADDR which caused the flag to be set was
+       optimized away.
+
+       * exceptions-amd64.c (get_throw_trampoline): Align the stack properly.
+
+       * mini-amd64.c (mono_arch_emit_exceptions): Pass only the type token index, not
+       the type token.
+
+       * mini-llvm.c (emit_entry_bb): Save the this argument only in gshared methods.
+
+       * mini-llvm.c: Fix a couple memory leaks. Get rid of a few #ifdefs.
+
+2010-06-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * tramp-amd64.c (mono_arch_nullify_class_init_trampoline): Call patch_callsite ()
+       to handle the code sequence generated for non-near calls. Fixes #616056.
+
 2010-06-21  Zoltan Varga  <vargaz@gmail.com>
 
+       * exceptions-x86.c (mono_arch_find_jit_info_ext): Adjust eip in the lmf case too.
+
        * exceptions-x86.c: Add a resume_unwind trampoline for LLVM.
 
        * mini-llvm.c (exception_cb): For nested clauses, add the same try range to the