2006-03-19 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index 7ac56cf401989c6c0450115e869e64ad2230ddd9..78cb7f97e0f7153fcb0e58ea22d6007f2fb742c3 100644 (file)
@@ -1,3 +1,449 @@
+2006-03-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_print_method_from_ip): Recognize JIT trampolines as well.
+       (can_access_internals): Fix a warning.
+
+       * mini.c (print_method_from_ip): Rename this to 
+       mono_print_method_from_ip so it gets exported.
+
+       * trace.c: Deal with strings inside StringBuilder's containing garbage
+       and fix memory leaks. Fixes #77848.
+
+2006-03-19  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mini_init): Disable the setting of GC_stackbottom on ia64. Hopefully
+       fixes #77787.
+
+2006-03-16 Neale Ferguson <neale@sinenomine.net>
+       
+       * mini-s390.c: Remove OP_X86_TEST_NULL.
+
+Thu Mar 16 17:19:04 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: use the correct GetHashCode() for the moving collector.
+
+2006-03-16  Massimiliano Mantione  <massi@ximian.com>
+
+        * liveness.c: Regalloc spill cost tuning.
+
+2006-03-15 Neale Ferguson <neale@sinenomine.net>
+       
+       * mini-s390x.h: Correct S390_LONG macro.
+
+       * mini-s390x.c: Cleanup unused code.
+
+2006-03-15  Zoltan Varga  <vargaz@gmail.com>
+
+       * jit-icalls.h: New file.
+
+       * Makefile.am mini.c jit-icalls.c: Use a proper include file for the jit
+       icalls and include that instead of including jit-icalls.c.
+
+       * mini-ppc.c (mono_arch_output_basic_block): Remove references to
+       OP_X86 opcodes.
+
+Tue Mar 14 20:23:53 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: when checking for member accessibility, also check for
+       friend assemblies and for explicit interface implementations.
+
+2006-03-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c (mono_local_regalloc): Remove incorrect g_free () calls.
+
+       * cpu-arm.md cpu-g4.md: Remove x86_ opcodes.
+
+       * mini-x86.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
+       common cases are done first.    
+
+       * mini-ops.h: Only define platform specific opcodes on the given platform.
+
+       * mini.h regalloc.h mini-codegen.c: Merge optimizations from the linear-il
+       branch.
+       
+2006-03-14  Martin Baulig  <martin@ximian.com>
+
+       Revert Paolo's change from r57348:
+
+       * mini.h: don't use gboolean for bitfields.
+       * mini.c: verifier changes for fields and methods accessibility.
+
+2006-03-13  Neale Ferguson <neale@sinenomine.net>
+
+       * mini-s390.h, mini-s390x.h: Fix calls to mono_call_inst_add_outarg_reg.
+
+       * mini-s390x.c: Fix conv_r_un.
+
+       * cpu-s390, cpu-s390x.md: Fix lengths.
+
+Sun Mar 12 17:31:22 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: nested types have access to all the nesting
+       levels, not just the enclosing types.
+
+Sun Mar 12 16:23:11 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: added a few more verification checks.
+
+2006-03-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * liveness.c: Merge optimizations from the linear-il branch.
+
+2006-03-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-ia64.c (emit_call): Add a comment.
+
+       * tramp-ia64.c (mono_arch_patch_callsite): Handle indirect calls as well.
+
+       * tramp-ia64.c: Fix some warnings.
+
+Sat Mar 11 20:15:59 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h: don't use gboolean for bitfields.
+       * mini.c: verifier changes for fields and methods accessibility.
+
+2006-03-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_icall_get_wrapper): Fix an ia64 bug introduced by the
+       lazy icall wrapper changes.
+
+       * dominators.c: Replace all the dominator algorithms with faster
+       ones from the linear-il branch.
+
+       * inssel-*.brg: Allocate call->out_ireg_args and call->out_freg_args from
+       the mempool.
+
+       * mini-amd64.h (MONO_ARCH_INST_FIXED_REG): Reorganize the comparisons so
+       common cases are done first.
+
+       * mini-amd64.c: Fix some warnings.
+
+       * mini-codegen.c mini-*.c: Allocate call->out_ireg_args and call->out_freg_args
+       from the mempool.
+
+       * mini.c (mono_jit_compile_method_with_opt): Fix a race in the newly
+       added code.
+
+       * mini.h: Add a missing prototype.
+
+2006-03-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c: Compile icall wrappers lazily.
+
+       * mini-codegen.c: Use printf instead of g_print since its much faster.
+
+       * mini.h (mono_bitset_foreach_bit): Use the faster mono_bitset_find_start ()
+       function.
+
+       * mini.c (optimize_branches): Cache the negative result from 
+       remove_block_if_useless ().
+
+       * mini.c (optimize_branches): Avoid restarting the iteration after each change. 
+       Also fix some bblock linking issues.
+
+       * helpers.c (mono_disassemble_code): Reduce the size of the temporary
+       assembly files.
+
+       * mini.h: Define G_LIKELY/G_UNLIKELY macros for older glib versions.
+
+       * mini.h (MonoBasicBlock): Reorganize the fields, putting more frequently
+       accessed fields first, for better cache behavior.
+       
+Fri Mar 10 18:21:41 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: speedup IList<T> array accesses.
+
+2006-03-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_method_to_ir): Handle large methods overflowing the 
+       inline_costs counter. Fixes #77190.
+
+2006-03-06  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c: Call mono_trace_is_enabled () before printing
+       trace messages. Fixes #77706.
+
+2006-03-04  Martin Baulig  <martin@ximian.com>
+
+       * tramp-amd64.c, tramp-x86.c
+       (mono_debugger_create_notification_function): Use
+       mono_global_codeman_reserve() to allocate a buffer at runtime and
+       return it.
+
+       * debug-debugger.h (MonoDebuggerInfo): Added `initialize'.
+
+       * debug-debugger.c (mono_debugger_init): Dynamically allocate the
+       notification function at runtime and then call `initialize' in the
+       `MONO_DEBUGGER__debugger_info' vtable.
+
+2006-03-04  Zoltan Varga  <vargaz@gmail.com>
+
+       * iltests.il: Fix a visibility problem.
+
+Wed Mar 1 15:55:25 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c, mini.c: add hooks for the counters API.
+
+Wed Mar 1 12:28:04 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: show disabled options.
+
+Wed Mar 1 12:18:51 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * linear-scan.c: always use cost-driven selection.
+
+2006-02-28  Raja R Harinath  <rharinath@novell.com>
+
+       * jit-icalls.c (helper_compile_generic_method): Revert change from
+       2006-02-24.
+
+Mon Feb 27 18:58:19 GMT 2006 Paolo Molaro <lupus@ximian.com>
+
+       * cpu-arm.md, mini-arm.c: implemented MemoryBarrier.
+
+Sat Feb 25 17:39:21 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg: style fixes, mostly to force the updated monoburg
+       to run for people using svn.
+
+Sat Feb 25 17:07:42 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: match monoburg changes.
+
+Sat Feb 25 16:04:33 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini.c, abcremoval.c, aliasing.c, liveness.c,
+       ssapre.c, graph.c, ssa.c: put the mono_burg_arity[]
+       declaration in the header file.
+
+Sat Feb 25 14:19:31 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * helpers.c: reduce relocations and mem usage.
+
+Sat Feb 25 11:58:16 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini-codegen.c: disable logging features if
+       requested by configure.
+
+Sat Feb 25 11:54:49 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: tiny verifier changes.
+
+Fri Feb 24 18:17:52 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ops.h, inssel-x86.brg, tramp-x86.c, mini-x86.c,
+       cpu-pentium.md: stack alignment changes for osx/x86,
+       partially from Geoff Norton <gnorton@customerdna.com>.
+
+2006-02-24  Raja R Harinath  <harinath@gmail.com>
+
+       * jit-icalls.c (helper_compile_generic_method): Update to changes
+       in metadata/class.c.
+
+2006-02-24  Zoltan Varga  <vargaz@gmail.com>
+       
+       * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add a missing check.
+       
+       * mini-amd64.c (mono_arch_get_vcall_slot_addr): Add support for
+       interface calls with large offsets.
+
+2006-02-23  Raja R Harinath  <rharinath@novell.com>
+
+       * jit-icalls.c (helper_compile_generic_method): Document the
+       special-case we depend on so that we can inflate the method twice
+       with the same context with no bad side-effects.
+
+Thu Feb 23 13:45:46 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, mini-amd64.c: fix for case when xen support
+       is disabled.
+
+Wed Feb 22 19:38:40 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, mini-amd64.c: generate code to access tls items
+       in a faster way for Xen systems.
+
+Wed Feb 22 10:31:25 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * exceptions-x86.c, mini-x86.h, driver.c, mini-codegen.c:
+       updates and compilation fixes for the OSX/x86 port, mostly from
+       Geoff Norton <gnorton@customerdna.com>.
+
+Tue Feb 21 19:56:55 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg: faster interface call implementation
+       to sync with the interface_offsets MonoVTable changes.
+
+Mon Feb 20 10:37:57 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: more verification checks.
+
+Fri Feb 17 19:47:29 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: added a few more verification checks.
+
+2006-02-17     Neale Ferguson <neale@sinenomine.net>
+
+       * mini-s390x.c, mini-s390x.h: Check for presence of long displacement
+       facility on the processor and use it if available.
+
+Fri Feb 17 16:12:52 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c, aot.c, mini.c: throw exception if the IL code is
+       invalid or unverifiable.
+
+2006-02-17  Raja R Harinath  <rharinath@novell.com>
+
+       * generics.2.cs (test_0_ldfld_stfld_mro): Use m.struct_field, not
+       m.StructField.
+
+2006-02-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * generics.2.cs: Add some tests for generics ldfld/stfld wrappers.
+
+Wed Feb 15 16:23:17 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-s390x.c, mini-s390.c, mini.c, mini-amd64.c, mini-arm.c,
+       mini-ia64.c, mini-sparc.c, mini-x86.c, mini-ppc.c: fixed
+       handling of instantiated generic valuetypes.
+
+2006-02-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c mini-x86.h mini-x86.c: Get rid of 
+       MONO_INIT_CONTEXT_FROM_CALLER, and use MONO_INIT_CONTEXT_FROM_FUNC
+       instead.
+
+       * generics.2.cs: Revert the nullable reftypes tests.
+
+2006-02-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-exceptions.c (MONO_INIT_CONTEXT_FROM_CALLER): Avoid
+       using __builtin_frame_address (1) as it doesn't work in the presence
+       of optimizations. Hopefully fixes #77273.
+
+       * Makefile.am generics.cs generics.2.cs: Revert the generics.2.cs
+       -> generics.cs change as it doesn't work with some automake versions.
+
+Thu Feb 9 16:24:44 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: handle systems that sue a different way to
+       retrieve the stack address of the current thread.
+
+2006-02-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * Makefile.am generics.2.cs: Rename this to generics.cs and handle
+       it specially in the makefile.
+
+       * generics.2.cs: Add tests for nullable reference types.
+
+Wed Feb 8 19:33:17 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: always handle the case when mono_jit_init()
+       is called in a thread different from the main thread,
+       confusing libgc (bug #77309).
+
+Mon Feb 6 09:01:24 EST 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c: fix handling of exceptions in large methods (bug #74932).
+
+Fri Feb 3 18:51:35 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: change optimize_branches () to use a single loop
+       and introduce a new optimization to simplify some range checks.
+
+2006-02-03  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.c (debugger_thread_manager_thread_created): Removed
+       and merged with debugger_thread_manager_add_thread().
+       (mono_debugger_main): Call debugger_thread_manager_add_thread() to
+       inform the debugger about the main thread.
+
+2006-02-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * basic.cs: Add test for div.un/rem.un constant folding.
+
+2006-02-03  Neale Ferguson <neale@sinenomine.net>
+
+       * cpu-s390x.md: correct int_xor_imm length
+
+2006-02-03  Zoltan Varga  <vargaz@gmail.com>
+
+       * generics.2.cs: New test for #77442.
+
+       * jit-icalls.c (helper_compile_generic_method): Check for null. Fixes
+       #77442.
+
+2006-02-02  Martin Baulig  <martin@ximian.com>
+
+       * tramp-x86.c, tramp-amd64.c: It's now safe to #include
+       <mono/metadata/mono-debug-debugger.h>   
+
+       * debug-mini.c: Don't #define _IN_THE_MONO_DEBUGGER.
+
+2006-02-02  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.h: New header file for debug-debugger.c.
+
+       * debug-debugger.c: Big API cleanup; don't run the managed Main()
+       function is a separate thread anymore; add support for attaching.
+
+2006-02-01  Zoltan Varga  <vargaz@gmail.com>
+
+       * tramp-x86.c: Fix a warning.
+
+2006-01-31  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-amd64.c (mono_arch_compute_omit_fp): Avoid hitting an assertion
+       on very large methods.
+
+       * aot.c (load_patch_info): Fix a warning.
+
+Mon Jan 30 12:51:10 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * cpu-pentium.md, mini-x86.c, inssel.brg, inssel-x86.brg,
+       mini-ops.h: alu membase optimizations.
+
+Fri Jan 27 21:11:08 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ops.h, mini.c, inssel.brg, inssel-x86.brg: opcode
+       to speedup StringBuilder.
+
+2006-01-27  Zoltan Varga  <vargaz@gmail.com>
+
+       * dominators.c (mono_compute_natural_loops): Fix detection of
+       loop body start blocks.
+
+       * mini-exceptions.c (mono_print_thread_dump): Fix non x86 builds.
+
+2006-01-26  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h mini.c mini-exceptions.c: Add thread dump support. Fixes
+       #75145.
+
+2006-01-25  Massimiliano Mantione  <massi@ximian.com>
+
+        * aliasing.c: Fixed aliasing issue on 64 bit archs.
+
+2006-01-25  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.c: Moved the `MonoDebuggerManager' and
+       `MonoDebuggerThread' typedefs here from mono-debug-debugger.h and
+       started to cleanup this file a little bit.
+
+Tue Jan 24 18:20:48 CET 2006 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: optimize a codepath frequently happening in generics code.
+
+2006-01-23  Martin Baulig  <martin@ximian.com>
+
+       * Makefile.am: Only compile debug-debugger.c on supported platforms.
+
+       * debug-debugger.c: Kill the IO_LAYER() hack and use the io-layer
+       functions directly.
+
+       * driver.c: debug-debugger.c is only available if
+       `MONO_DEBUGGER_SUPPORTED' is defined.   
+
 2006-01-23  Martin Baulig  <martin@ximian.com>
 
        * debug-debugger.c: Only enable this on platforms where the Mono