2005-12-12 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index 7267328c939f3d0e2565963dfb6bf000f30f1a88..3dee2e39d0a81cd6d9fca107f060500b2d18da9c 100644 (file)
@@ -1,3 +1,399 @@
+2005-12-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * generics.2.cs: Add valuetype tests.
+
+2005-12-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic-long.cs: Add i4->u8 test.
+
+       * objects.cs: Add tests for JIT intrinsic.
+
+       * mini.c (mini_get_inst_for_method): Resurrect the array Rank/Length
+       optimizations lost by a mistake.
+
+2005-12-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic-long.cs: Remove a test moved to objects.cs.
+
+       * arrays.cs: Add more array tests.
+
+2005-12-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * arrays.cs: Add new tests for multi-dimensional arrays.
+
+2005-12-06  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile.am (test_sources2): Add generics.2.cs.
+       (EXTRA_DIST): Add test_sources2.
+
+2005-12-05  Ben Maurer  <bmaurer@ximian.com>
+
+       Support for boxing and unboxing nullable types as well as the
+       isinst operation on nullables, per the CLI ammendment.
+
+       * inssel.brg (CEE_ISINST): Special case for nullable
+
+       * mini.c (handle_unbox_nullable): new method
+       (handle_box): Special case for nullable types
+       (mono_method_to_ir): Call handle_unbox_nullable in correct
+       places.
+
+       * generics.2.cs: New test suite
+
+       * Makefile.am: Support for regression tests with generics.
+
+2005-12-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (emit_load_volatile_arguments): Add loading of arguments
+       allocated to registers. Fixes #76800.
+
+Thu Dec 1 12:59:40 EST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c, inssel-ppc.brg: fix ABI issue (pinvoke3.cs).
+
+2005-11-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * exceptions.cs: Disable test_0_long_cast () test, since it fails on a lot 
+       of platforms.
+
+2005-11-29  Zoltan Varga  <vargaz@gmail.com>
+
+       * objects.cs basic-calls.cs: Move a test depending on valuetypes to
+       objects.cs.
+
+       * inssel-long32.brg (CEE_CONV_I8): Remove unused labels.
+       
+       * inssel-long32.brg (CEE_CONV_I8): Convert this to a branchless version.
+Tue Nov 29 05:41:34 EST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c, cpu-g4.md: ensure a fp register is converted to
+       single precision before storing to a single precision location.
+
+2005-11-28  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile.am (ILASM): Use profile-dependent location of ilasm.
+
+2005-11-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic-long.cs basic-calls.cs objects.cs: Move some tests to the
+       correct files.
+
+       * basic.cs: Remove test_0_byte_compares test which was moved to
+       objects.cs a long time ago.
+
+2005-11-22  Massimiliano Mantione  <massi@ximian.com>
+
+        * aliasing.c: Fixed aliasing issue on 64 bit archs.
+
+2005-11-20  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-ia64.c exceptions-ia64.c: Simplify the way filters/finally
+       handlers are called.
+
+       * mini-ia64.c (mono_arch_emit_exceptions): Optimize size of exception
+       throwing code.
+
+        * mini-ia64.c: Add support for the throw->branch exception 
+       optimization.   
+
+       * driver.c (DEFAULT_OPTIMIZATIONS): Add MONO_OPT_EXCEPTION.
+
+2005-11-18  Massimiliano Mantione  <massi@ximian.com>
+
+       * mini.c: Enabled "fastpath" deadce :-)
+       
+2005-11-18  Massimiliano Mantione  <massi@ximian.com>
+
+       * mini.c: Added "fastpath" deadce (deadce without SSA), and a simple
+       alias analysis pass to support it.
+       * mini.h: Likewise.
+       * ssa.c: Likewise.
+       * liveness.c: Likewise (liveness computation can use aliasing
+       information to be more accurate).
+       * driver.c: Added an "ssa" option go tell the JIT to use SSA, and
+       moreover made so that "--compile-all" uses the given optimization
+       flags and not the default ones.
+       * aliasing.c: Alias analysis (new file).
+       * aliasing.h: Likewise.
+       * Makefile.am: added "aliasing.c" and "aliasing.h".
+       
+2005-11-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-ops.h: Add missing OP_I opcodes so it is in synch with the
+       OP_L opcodes.
+
+2005-11-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c (mono_handle_exception_internal): Remove the 
+       fp >= end_of_stack exit condition, as it is not needed, and it might
+       become true for fp eliminated frames.
+
+2005-11-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.c (mono_arch_emit_epilog): Use G_STRUCT_OFFSET instead of hard
+       coded offsets.
+
+Tue Nov 8 11:28:20 GMT 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-arm.c: fixed alignment of doubles/longs to match
+       the C ABI (bug #76635).
+
+Mon Nov 7 16:13:21 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * aot.c: fix compilation with --enable-minimal=aot.
+
+Fri Nov 4 12:34:15 GMT 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-arm.c: fixed compatibility with the new
+       floating point emulator package for compares.
+
+2005-11-03  Atsushi Enomoto  <atsushi@ximian.com?
+
+       * mini.c : reverted sig->pinvoke changes (r51396-51397).
+
+2005-11-01  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c (print_stack_frame): Output to stderr.
+       (mono_handle_native_sigsegv): Ditto.
+
+2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_output_basic_block): Remove unused
+       OP_LCONV_TO_OVF_I implementation.
+
+       * mini-amd64.c: Add support for the throw->branch exception 
+       optimization.
+
+       * branch-opts.c (mono_branch_optimize_exception_target): Allow the case
+       when the catch clause catches a more general exception, i.e. Object.
+
+2005-10-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * cpu-ia64.md: Remove unused opcodes.
+
+       * mini.c (GET_CONTEXT): Simplify this somewhat by removing arch
+       specific defines for architectures defining USE_SIGACTION.
+
+       * mini-ia64.c: Fix some warnings.
+
+       * exceptions-ia64.c (mono_arch_ip_from_context): Fix this, the previous
+       version seemed to skip a frame.
+
+2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c: Clean up the usage of sig->pinvoke flag. Now
+       only calls which are made to native code use this flag.
+
+2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_compute_omit_fp): Disable fp elimination for
+       varargs methods as well.
+       
+       * mini-amd64.c exceptions-amd64.c: Allow fp elimination in methods
+       which have save_lmf set. Reorganize methods prologs a bit.
+
+       * mini-amd64.c (mono_arch_compute_omit_fp): Move the check for the
+       debugger to the proper place.
+
+2005-10-29  Martin Baulig  <martin@ximian.com>
+
+       * mini-amd64.c (debug_omit_fp): Temporarily disable fp elimination
+       when running inside the debugger until the debugger has support
+       for it.
+
+2005-10-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h: Fix a warning.
+
+2005-10-24  Miguel de Icaza  <miguel@novell.com>
+
+       * mini.c (mono_pmip): Just a wrapper for get_method_from_ip which
+       we expose publicly, this returns the string.
+
+2005-10-22  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-amd64.c (mono_arch_find_jit_info): Fix some corner cases
+       with fp elimination.
+
+2005-10-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c (mono_handle_native_sigsegv): Try to print a
+       native stacktrace using the glibc 'backtrace' function if available.
+
+2005-10-20  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h (MonoDebugOptions): Remove 'abort_on_sigsegv' option.
+
+       * mini-exceptions.c (mono_handle_native_sigsegv): New function to 
+       handle SIGSEGVs received while in native code.
+
+       * mini.c (sigsegv_signal_handler): If the SIGSEGV happened in native
+       code, call mono_handle_native_sigsegv which will abort the runtime
+       after printing some diagnostics, instead of converting it into a
+       confusing NullReferenceException.
+
+2005-10-18  Zoltan Varga  <vargaz@gmail.com>
+
+       * cpu-pentium.md: Remove unused opcodes.
+
+2005-10-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.h (MonoLMF): Add rsp field.
+
+       * mini-amd64.c exceptions-amd64.c tramp-amd64.c: Save the sp reg into
+       the lmf too.
+
+2005-10-17  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c (get_register_spilling): Fix some warnings.
+
+2005-10-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.h mini-amd64.c exceptions-amd64.c: Add support for fp
+       elimination during exception handling. Enable fp elimination by
+       default.
+
+       * mini-amd64.h mini-amd64.c: Add preliminary support for frame pointer
+       elimination.
+
+2005-10-16  Martin Baulig  <martin@ximian.com>
+
+       * mini-exceptions.c
+       (mono_debugger_run_finally): New public method for the debugger.
+
+2005-10-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * debug-mini.c (mono_debug_init_method): Fix warning.
+
+       * mini.h branch-opts.c (mono_branch_optimize_exception_target): Make
+       the 'exname' parameter const to fix some warnings.
+
+2005-10-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c (mono_handle_exception_internal): Fix another bug
+       introduced by the previous patch.
+
+2005-10-08  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic-float.cs: Add test for precision of float arithmetic.
+
+       * mini-ia64.c (mono_arch_output_basic_block): Convert to/from doubles
+       when loading/storing single values from/to memory.
+
+       * mini.c (mono_jit_compile_method_with_opt): Create the function
+       pointers in the correct domain.
+
+2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c (mono_handle_exception_internal): Fix bug 
+       introduced by previous patch.
+       
+       * mini-exceptions.c (mono_handle_exception_internal): Handle the case
+       when out_filter_idx is NULL.
+
+       * mini-exceptions.c: Don't run filter clauses twice during exception
+       handling. Fixes #75755.
+
+2005-10-07  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot.c: Add support for ldflda wrappers.
+
+       * mini.c (mono_method_to_ir): Use ldflda wrappers for CEE_LDFLDA. Fixes
+       #75902.
+
+Tue Oct 4 20:23:25 CEST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, mini.h: do not consider exception handlers blocks when
+       setting up interface variables.
+
+2005-10-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * aot.c (emit_section_change): Fix emitting of sections on win32. Fixes #76322.
+
+2005-10-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * liveness.c (mono_analyze_liveness): Revert parts of r51051 since it
+       causes a regression.
+
+       * mini.c (mini_thread_cleanup): Fix reading of freed memory.
+
+2005-10-02  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.h (OP_PCONST): Move the definition of OP_PCONST into the rest
+       of the OP_P definitions.
+
+       * TODO: Add a proposal for dealing with the CEE/OP mess.
+
+       * mini-amd64.c (mono_arch_output_basic_block): Merge mul_imm 
+       optimizations from the x86 port.
+
+       * cpu-amd64.md: Ditto.
+
+       * basic.cs basic-long.cs: Add tests.
+
+Fri Sep 30 20:07:20 CEST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am, driver.c, mini-x86.c, mini.c, mini.h, branch-opts.c:
+       Patrik Torstensson's implementation of my exception-handling
+       optimization idea, when the exception object is not used
+       (bug #62150).
+
+Fri Sep 30 19:10:29 CEST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, cpu-pentium.md: Patrik Torstensson's port
+       of the mul_imm optimizations from the old jit.
+
+Fri Sep 30 11:37:51 EDT 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, liveness.c: patch by Patrik Torstensson and
+       Zoltan Varga to improve performance in methods with
+       exception clauses.
+
+2005-09-30  Zoltan Varga  <vargaz@gmail.com>
+
+       * driver.c: Remove 'Globalization' entry from --version.
+
+2005-09-28  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_jit_compile_method_inner): Do not load AOT code when
+       there is a profiler interested in JIT events.
+
+       * aot.c: Load profile files produced by the AOT profiling module, and
+       reorder methods based on the profiling info. Add a 'method_order' table
+       to the AOT file to make mono_aot_find_jit_info work with the reordered
+       methods.
+
+       * mini.h: Bump AOT file version info.
+
+Wed Sep 28 17:12:48 CEST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-arm.h: work around what looks like a gcc bug when optimizations
+       are enabled.
+
+2005-09-28  Raja R Harinath  <rharinath@novell.com>
+
+       * Makefile.am (AM_CFLAGS): Don't use += to append inside
+       conditionals.  Use ...
+       (PLATFORM_CFLAGS, ARCH_CFLAGS): ... these.
+
+2005-09-27  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_call_opcode): Use mono_class_value_size ()
+       to determine the amount of memory to copy when passing valuetypes.
+
+       * inssel-amd64.brg: Remove PUSH(LDIND4) rules since they convert an
+       4 byte load into a 8 byte load. Fix aligning of size in OP_OUTARG_VT.
+
+2005-09-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h mini.c aot.c: Add infrastructure to collect pagefault 
+       information about aot.
+
+2005-09-27  Ben Maurer  <bmaurer@ximian.com>
+
+       * *.c: Replace the use of {Enter,Leave}CriticalSection with
+        macros. This will allow a deadlock debugger to easily be plugged
+        in.
 
 Tue Sep 27 09:32:11 EDT 2005 Paolo Molaro <lupus@ximian.com>