2010-01-18 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
old mode 100644 (file)
new mode 100755 (executable)
index 20da30b..1eb816a
@@ -1,3 +1,259 @@
+2010-01-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_jit_compile_method_inner): Avoid reading cfg->prof_options
+       after cfg has been freed.
+
+2010-01-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * branch-opts.c (mono_branch_optimize_exception_target): Stop the optimization
+       if a clause is skipped because it uses the exception object, since it could
+       have caught the exception.
+
+       * exceptions.cs: Add a test.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c (mono_create_static_rgctx_trampoline): Add an assert.
+
+        * aot-runtime.c (mono_aot_get_method): Handle ftnptr's correctly for the
+        ICollection<T> wrappers.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (decode_value): Fix the decoding of I/U/PTR.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (emit_call_body): Always use near calls when AOTing even if
+       NOMAP32BIT or optimize_for_xen is set.
+
+2010-01-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c aot-runtime.c: Get rid of mono_aot_str_hash (), use
+       mono_metadata_str_hash () instead.
+
+2010-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * ir-emit.h (MONO_EMIT_NEW_ICOMPARE_IMM): Use sizeof (mgreg_t) instead of
+       sizeof (void*).
+
+        * unwind.c (mono_unwind_frame): Use mgreg_t instead of gssize.
+
+2010-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * ir-emit.h (MONO_EMIT_NEW_CHECK_THIS): Emit an explicit null check if the
+       flag is set.
+
+       * mini-ppc.c (mono_arch_emit_exceptions): Compute the size of the exception
+       throwing code correctly.
+
+       * mini.h (MONO_AOT_FILE_VERSION): Bump this because of the IMT hashing changes.
+
+2010-01-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (mono_aot_plt_resolve): Reenable the previous assert for
+       ftnptrs created by us, handle RGCTX_FETCH correctly.
+       (mono_aot_get_lazy_fetch_trampoline): Add an ftnptr.
+
+       * mini-trampolines.c (mono_create_generic_class_init_trampoline): Remove the
+       ftnptr added by mono_aot_get_named_code ().
+
+2010-01-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.c: Fix a few LLVM problems.
+
+       * mini-llvm.c (simd_class_to_llvm_type): Fix compilation on !x86/amd64.
+
+2010-01-13  Mark Probst  <mark.probst@gmail.com>
+
+       * method-to-ir.c (mini_emit_stobj): Use EMIT_NEW_CLASSCONST when
+       AOT compiling.
+
+Wed Jan 13 15:54:53 CET 2010 Paolo Molaro <lupus@ximian.com>
+
+       * jit.h, method-to-ir.c: added ability to set the policy for
+       inserting breakpoints from the break IL instruction or the
+       Debugger.Break () API call.
+
+2010-01-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (load_aot_module): Add more comments to explain why referenced
+       assemblies need to be eagerly loaded.
+
+2010-01-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * dwarfwriter.c (emit_line_number_info): Fix the eglib case so it doesn't crash.
+
+2010-01-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (mono_debugger_agent_parse_options): Allow onthrow without
+       an argument which matches any exception.
+
+2010-01-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_emit_method_call_full): Avoid the virt->nonvirt
+       optimization if the called method is gshared and marshalbyref, since gshared
+       methods can' have wrappers. Fixes #569390.
+
+       * generics.cs: Add a test.
+
+2010-01-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c (mono_print_thread_dump_from_ctx): New helper function
+       callable from gdb.
+
+2010-01-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_print_method_from_ip): Fix the lookup of trampolines.
+
+2010-01-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * debugger-agent.c (transport_connect): comment out freeaddrinfo calls under win32,
+       since it is not supported in win2000.
+
+2010-01-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-runtime.c (load_image): Add a SET_ERROR argument to set the loader
+       error if loading an assembly fails.
+       (mono_aot_plt_resolve): Return NULL instead of asserting if loading fails.
+
+       * mini-trampolines.c (mono_aot_plt_trampoline): Throw a pending loader error
+       if exists.
+
+       * aot-runtime.c (decode_exception_debug_info): Set jinfo->from_llvm for LLVM
+       compiled methods.
+
+       * mini-llvm-cpp.cpp: Remove the unused ctx variable.
+
+       * mini-llvm.c (mono_llvm_emit_method): Add some comments about why aot+clauses
+       is not supported yet.
+
+       * unwind.c (DW_EH_PE_absptr): Add more DW_EH_PE_ constants.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c: All types with variant arguments must fallback to the
+       slow path. This makes cast of variant delegates work.
+
+       * mini-trampolines.c (mono_get_vcall_slot_addr): Add new variance_used out
+       argument that is set to TRUE is the returned vtable slot is for a variant
+       interface. Changed a g_print + g_assert_not_reached to a g_error.
+
+       * mini-trampilines.c (common_call_trampoline): Handle variant interfaces in
+       a similar fashion of generic virtual methods.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * helpers.c (mono_disassemble_code): Fix a g_hash_table warning
+       when cfg is null.
+
+       * mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Convert a given
+       method using a variance aware function.
+
+       * mini-x86.c: Add support for dumping IMT thunks if DEBUG_IMT is defined.
+
+2010-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * method-to-ir.c (mono_method_to_ir): Casts to variant interfaces
+       do an icall for now.
+
+2010-01-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-llvm-cpp.cpp (mono_llvm_create_ee): Add an ugly hack to fix #564695.
+       If LLVM decides to set the code model to Large, reset it to Default.
+
+2010-01-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (mono_xdebug_flush): Export it so it is present in
+       stripped binaries as well.
+
+2010-01-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c (common_call_trampoline): Add an rgctx trampoline if a shared
+       method is called from LLVM compiled code, as that code can't pass an rgctx arg.
+
+       * mini-llvm.c (mono_llvm_emit_method): Enable calls to methods needing an rgctx
+       reg.
+
+2010-01-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_method_compile): Extract the JIT info creation code into a
+       separate function.
+
+       * mini-llvm.c (mono_llvm_emit_method): Pass the info in MonoExceptionClause
+       as the type info to llvm.eh.selector.
+       (exception_cb): Use the type info for filling out some fields of
+       MonoJitExceptionInfo like the flags and the exception class. This is needed
+       because the LLVM produced exception handling clauses might not match the original
+       IL clauses, i.e. there might be more than one LLVM clause for one IL clause.
+
+       * unwind.c (mono_unwind_decode_fde): Extract the LSDA decoding code into a
+       separate function. Add an extra argument which returns the type infos
+       corresponding to the exception clauses.
+
+       * mini.c (mini_method_compile): Enable LLVM compilation of methods having
+       exception handling clauses.
+
+2010-01-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Call
+       mono_method_get_vtable_slot () instead of accessing imt_method->slot directly,
+       to fix an AOT case.
+
+2010-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c (mono_compile_is_broken): Skip methods from serialization's
+       internal assembly.
+
+2010-01-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_method_compile): Fix a few memory leaks introduced by the
+       llvm code.
+
+2009-01-04  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c (mini_method_compile): Verify the method before calling
+       mono_compile_create_vars as this might crash since it uses method
+       information.
+
+       Fixes #560196.
+
+2010-01-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Avoid calling mono_class_vtable () in
+       one case if AOTing, since the class might not be a concrete class.
+
+2010-01-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c abcremoval.c: Remove the duplicate g_slist_append_mempool
+       functions which are now defined in mempool-internals.h.
+
+       * mini.c (mini_free_jit_domain_info): Free the seq point hash tables.
+
+       * mini-llvm.c (mono_llvm_emit_method): Handle OP_ABS.
+
+2009-12-30  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c:
+       * method-to.ir.c:
+       * mini-*.c: Properly handle generic enums.
+
+       Fixes #566294
+
+2009-12-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * method-to-ir.c (mono_method_to_ir): Handle the failure of mono_class_vtable ()
+       in a few more places.
+
+2009-12-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (add_wrappers): Don't use dyn runtime invoke for methods with
+       nullable parameters. Fixes #567351.
+
+2009-12-26  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini-trampolines.c (common_call_trampoline): Add assert for NULL resolved generic method.
+
 2009-12-26  Zoltan Varga  <vargaz@gmail.com>
 
        * mini-trampolines.c: Use mono_arch_get_this_arg_from_call () to avoid the slow