2003-05-26 Dietmar Maurer <dietmar@ximian.com>
[mono.git] / mono / mini / ChangeLog
index 0c9324d9c2602c0fba633b5525e8b6f9f34a3991..0c7b1244fb0784f63f28d4450c2e606758bde38d 100644 (file)
@@ -1,3 +1,432 @@
+Mon May 26 15:21:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ops.h, mini.c, inssel.brg, exceptions.cs: validate arguments passed
+       to a method (including results of ldelema, bug#43207).
+
+2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
+
+       * graph.c (cfg_emit_one_loop_level): loop over all blocks. use
+       colors to show exception handler blocks.
+
+       * inssel-x86.brg (OP_OUTARG_VT): dont push zero sized structures
+       (fix for pinvoke7.cs).
+
+Mon May 26 12:11:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini.c: ensure correct initialization order for types that
+       require it. Prepare for lazy compilation of jit icall wrappers.
+       Provide a name for opcode emulation to reduce unneeded mallocing.
+
+Fri May 23 16:08:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c: better register restoring code and profiling
+       support for tail calls.
+
+Fri May 23 15:30:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, driver.c: prepare for leaf methods optimization.
+
+Fri May 23 15:28:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: get targets of branches before converting a method.
+
+2003-05-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (optimize_branches): added some experimental code (disbaled) 
+
+2003-05-22  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (optimize_branches): fix branch to branch optimization 
+
+       * exceptions-x86.c (mono_arch_handle_exception): bug fix.
+
+       * mini-x86.c (mono_arch_output_basic_block): cleanup up exception code
+
+       * inssel-x86.brg: added OP_START_HANDLER, CEE_ENDFINALLY, OP_ENDFILTER
+
+       * mini-x86.c (mono_arch_allocate_vars): only reserve space for lmf
+       if needed.
+
+2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): call handle_loaded_temps before inlining.
+       enable use of interface variables again.
+
+       * mini-x86.c (mono_arch_get_allocatable_int_vars): dont allocate
+       I1 to registers because there is no simply way to sign extend 8bit
+       quantities in caller saved registers on x86.
+
+       * inssel-float.brg: set costs of some rules to 2 so
+       that monobure always select the arch. specific ones if supplied,
+       regardless of the order we pass the files to monoburg.
+
+Tue May 20 17:19:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, mini-x86.c: since the magic trampoline for jumps
+       can't patch the code directly, we do it as soon as the
+       method gets compiled.
+
+Tue May 20 16:02:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, mini.h: introduce a new patching method
+       to support CEE_JMP and tail calls.
+       * mini.c: obey tail.call. Don't precompile methods target
+       of CEE_JMP.
+       * tramp-x86.c: new trampoline code to handle methods
+       reached through a jump.
+
+2003-05-20  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini-x86.c (mono_arch_get_allocatable_int_vars): allocate 8/16
+       bit values to registers
+
+2003-05-19  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_compile_get_interface_var): share interface
+       variables if possible.
+
+2003-05-16  Martin Baulig  <martin@ximian.com>
+
+       * debug-mini.c (mono_init_debugger): New function to initialize
+       the debugger.  This is not in the debugger since it needs to
+       access some of mini's internals.
+
+2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): inlining fixes/cleanups
+
+Fri May 16 13:27:23 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, mini-opts.h, inssel.brg: inline small memcpy
+       for value type handling.
+
+2003-05-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): inline LDFLD/STFLD wrappers
+       (mono_method_check_inlining): enable inlining of all kinds of wrappers
+
+2003-05-15  Lluis Sanchez Gual  <lluis@ideary.com>
+
+       * mini.c: fixed little bug in CEE_NEWOBJ case when calling
+         the constructor through a proxy.
+
+Thu May 15 17:17:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * jit-icalls.c, inssel.brg: fixes to array element address
+       calculations.
+
+2003-05-15  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini-x86.c (is_regsize_var): allocate pointer to registers
+
+Thu May 15 13:04:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: fixed typo, added intrins to the set of optimizations
+       tested with regressions.
+
+Thu May 15 11:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ops.h, mini.c, inssel.brg: optimize access to 2D arrays.
+       * jit-icalls.c, exceptions.cs: fixed index out of range checks, added
+       test case.
+
+2003-05-14  Dietmar Maurer  <dietmar@ximian.com>
+
+       * inssel.brg: remove some common pop instructions without side effects
+
+Wed May 14 12:40:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-x86.brg: fixed thinko in int to double conversions.
+
+Wed May 14 12:01:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, jit-icalls.c: added runtime thread-static variable support.
+
+Tue May 13 22:02:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-long32.brg: two more missing instructions.
+
+2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_emit_call_args): set the cil_code for all arguments
+       if not already set.
+
+2003-05-12  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (mono_arch_output_basic_block): Handle negative zero
+       correctly.
+
+       * basic-float.cs: Added tests for negative zero.
+
+Sun May 11 14:56:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-long32.brg, basic-long.cs, exceptions.cs: handle
+       a couple of missing operations for long casts, with test cases.
+
+2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * exceptions-x86.c: fixed small leaks in mono_arch_handle_exception.
+
+2003-05-09  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini-x86.c (mono_arch_emit_prolog): avoid reallocs with better
+       code size estimation.
+
+2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_jit_create_remoting_trampoline): make it work with
+       abstract methods (fix bug 42542)
+
+       * aot.c: add ability to handle array types
+       
+2003-05-08  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c: Call the _specific versions of the object allocation
+       functions if possible.
+
+Tue May 6 17:18:33 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: call setlocale ().
+
+Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini.c, aot.c, debug-mini.c, exceptions.c: build fixes for
+       windows build.
+
+2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (optimize_branches): dont touch code inside exception clauses (fix bug 38136)
+
+       * exceptions-x86.c (ves_icall_get_frame_info): also skip remoting
+       wrappers (fix bug 42122)
+
+2003-05-04  Martin Baulig  <martin@ximian.com>
+
+       * mini.h (mono_jit_init, mono_jit_cleanup): Added prototypes.
+
+       * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
+       s/mini_set_defaults/mono_set_defaults/g.
+
+2003-05-04  Martin Baulig  <martin@ximian.com>
+
+       * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.
+
+Sun May 4 11:48:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-long32.brg: add missing lreg: OP_LCONV_TO_U8 (lreg) rule
+       (reported by Don Roberts).
+
+Fri May 2 18:36:45 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: temporarily work around two bugs for this release.
+
+Fri May 2 17:37:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am: avoid linking libmono with GMODULE_LIBS, because
+       that contains -export-dynamic and it makes using the ld script
+       useless.
+       * mini.h, main.c, driver.c: s/mini_main/mono_main/g.
+
+Fri May 2 12:52:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini-x86.c, driver.c: disable optimizations not available on a
+       specific cpu.
+
+Thu May 1 15:28:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: make sure leave calls all the needed finally blocks,
+       even when the target jumps out of multiple exception clauses.
+
+Thu May 1 15:18:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * ldscript, Makefile.am: add linker script to reduce the number of
+       exported symbols (should also fix the issues with libwine defining
+       some of the same symbols in io-layer).
+
+2003-05-01  Zoltan Varga  <vargaz@freemail.hu>
+
+       * driver.c (mini_main): Avoid assertion when no file name is given on 
+       the command line.
+
+Wed Apr 30 15:33:11 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: added --version/-V command line option.
+       Added the inline optimization in the regression tests.
+
+Wed Apr 30 15:16:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, basic-calls.cs: when inlining, save arguments to locals according 
+       to the type in the method signature (fixes bug#42134).
+
+Wed Apr 30 12:38:44 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: when inlining, check this is not null only when needed (bug #42135).
+
+Wed Apr 30 11:44:36 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.h, tramp-pcc.c: type fixes from Max Horn <max@quendi.de>.
+
+2003-04-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * driver.c: fixed bug #42100.
+
+2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): UNBOX need to CAST objects first
+
+Mon Apr 28 17:03:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: moved most of the code required to do inlining to its own
+       function so it can be reused. Inline also ctors if appropriate.
+
+2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * Makefile.am: Link with -export-dynamic so shared libs loaded by
+       the runtime can call mono API functions.
+
+2003-04-27  Martin Baulig  <martin@ximian.com>
+
+       * debug-mini.c (mono_debug_init_method): Added
+       `guint32 breakpoint_id' argument; if the method has a breakpoint,
+       send a notification to the debugger.
+
+       * mini.c (mono_method_to_ir): Don't insert a breakpoint if we're
+       running in the Mono Debugger, just pass the breakpoint number to
+       mono_debug_init_method().
+
+       * tramp-x86.c, tramp-ppc.c: Removed the breakpoint trampolines.
+
+Sun Apr 27 13:18:04 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: allow some more unsafe compares.
+
+Sat Apr 26 11:55:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, Makefile.am: make distcheck works (partially from
+       a patch by Richard Lee <r.h.lee@attbi.com>).
+       * regset.c, regset.h: removed, they are unused.
+
+2003-04-25  Dick Porter  <dick@ximian.com>
+
+       * driver.c: Usage reports the name as 'mono' not 'mini'
+       * exceptions-x86.c: Build and run on freebsd
+
+Thu Apr 24 17:09:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am: install the program with the 'mono' name and
+       the library as libmono instead of mini and libmini.
+
+Thu Apr 24 17:08:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: provide the APIs for the embedding interface of the old jit.
+
+2003-04-23  Dietmar Maurer  <dietmar@ximian.com>
+
+       * jit-icalls.c (helper_stelem_ref): impl. (fix bug 41775)
+
+2003-04-23  Martin Baulig  <martin@ximian.com>
+
+       * tramp-x86.c, tramp-ppc.c: Reenable the debugger breakpoint interface.
+
+       * driver.c: Added `--debug' command line argument to enable
+       debugging support.
+
+2003-04-23  Martin Baulig  <martin@ximian.com>
+
+       * debug.[ch]: Removed.  The code is now in
+       ../metadata/mono-debug.[ch] and mono-debug-debugger.[ch].
+
+       * debug-stabs.c, debug-dwarf2.c: Removed; nobody used this for the
+       last six months.
+
+2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): set the cil_code address (fix bug 41525)
+
+2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * mini.c:
+       (mini_cleanup): moved mono_runtime_cleanup call after the call to
+       mono_domain_finalize.
+       (mini_method_compile): use mono_method_profile* if the the option is
+       enabled.
+
+2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-x86.c (mono_arch_create_jit_trampoline): Subsitute synchronized
+       methods with their wrapper.
+
+       * tramp-ppc.c (mono_arch_create_jit_trampoline): Subsitute synchronized
+       methods with their wrapper.
+
+       * jit-icalls.c (mono_ldvirtfn): Subsitute synchronized methods with
+       their wrapper.
+
+       * mini.c (mono_method_to_ir): Subsitute synchronized methods with their
+       wrapper.
+
+       * mini.c (mono_method_check_inlining): Avoid inlining synchronized
+       methods.
+
+2003-04-17  Dietmar Maurer  <dietmar@ximian.com>
+
+       * exceptions-x86.c (mono_arch_handle_exception): fix for bug 36252
+
+2003-04-16  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_compile_create_var): use g_malloc/g_realloc instead
+       of the mempool. This is slightly faster and uses less memory
+
+Wed Apr 16 12:53:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: avoid O(n) allocation for variables.
+
+Tue Apr 15 19:13:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: handle items on the stack after inlining methods.
+
+Tue Apr 15 14:17:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: make the method->opcode optimization dependent
+       on MONO_OPT_INSTRINS and do it lazily.
+
+Tue Apr 15 14:15:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: print overall results at the end of regression run.
+
+Tue Apr 15 11:18:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg: don't overwrite symbolic registers.
+
+Mon Apr 14 17:41:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-x86.brg: fix conversion from long to float.
+
+2003-04-11  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mini_init): use an opcode for get_Chars (OP_GETCHR)
+
+2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_type_blittable): MONO_TYPE_OBJECT is blittable.
+
+       * driver.c: Added --print-vtable option as in the old JIT.
+
+Thu Apr 10 17:43:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel-long32.brg, exceptions.cs: fix conversions from long, too.
+
+Thu Apr 10 16:27:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg, basic.cs: fixed checked conversions to byte and short.
+
+2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c regalloc.c regalloc.h: Fix memory leak.
+
+2003-04-09  Dietmar Maurer  <dietmar@ximian.com>
+
+       * aot.c (mono_aot_get_method): register all used strings
 
 Wed Apr 9 15:22:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
@@ -30,3 +459,4 @@ Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
        * mini.pc.in: Call this package `mini' for the moment.
 
+