Wed Jun 11 18:01:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / mini / ChangeLog
index f798a7b70ed981ff605cc497555b1810e6d72b25..6bca8c75b5d5dab0096dffc05c83b5ca94362aed 100644 (file)
@@ -1,4 +1,342 @@
 
+Tue Jun 10 19:00:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * tramp-x86.c, tramp-ppc.c, debug-mini.c: move arch-specific code
+       to arch-specific files.
+
+2003-06-09  Martin Baulig  <martin@ximian.com>
+
+       * Makefile.am (libs): Added $(LIBGC_LIBS).
+
+Mon Jun 9 20:21:47 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * cpu-pentium.md, mini-x86.c: fix (well, actually implement) OP_TAN
+       and OP_ATAN (fixes bug#44293).
+
+Mon Jun 9 19:00:56 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am, mini-x86.c: rename cpu description array to
+       pentium_desc, since some compilers define the 'pentium' preprocessor
+       symbol.
+
+2003-05-28  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mini_select_instructions): add explicit branch if the
+       following block is not the false target of a conditional branch -
+       we need this with any optimization that reorder or remove bblocks
+
+       * mini.c (optimize_branches): bug fixes
+
+2003-06-06  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_method_to_ir): inline static readonly fields
+
+       * ssa.c (fold_tree): start cfold support for long (very simple
+       cases only)
+
+       * cfold.c (mono_constant_fold_inst): opt. CEE_CONV_I8 (OP_ICONST)
+
+Fri Jun 6 11:41:18 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg: fixed memcpy (bug #44219).
+
+2003-06-05  Dick Porter  <dick@ximian.com>
+
+       * driver.c: Set the glib log levels to not abort if g_message
+       recurses.
+
+       g_set_prgname() has to happen before mini_init() so that the
+       process handle gets the info.
+       
+Thu Jun 5 20:11:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: add intrins to the default optimizations to get wider
+       exposure.
+
+Wed Jun 4 19:47:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h: some large basic blocks will overflow a 16-bit
+       integers for symbolic registers.
+
+2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini-x86.c (mono_arch_output_basic_block): revert previous fprem changes.
+       (mono_arch_output_basic_block): fix bug 43499 
+
+Wed Jun 4 13:13:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: kill duplicated definition of mono_debug_format.
+
+Wed Jun 4 13:09:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini-x86.c, arrays.cs: fixed register allocation bug.
+
+2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini-x86.c (mono_arch_output_basic_block): use IEEE compatible fprem1
+
+       * mini.c (mini_get_opcode_for_method): inline IEEERemainder
+
+2003-06-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * mini.c:
+       (print_method_from_ip): also print source location information if
+       available.
+
+2003-06-02  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mono_find_block_region): bug fix in region code
+       (mini_method_compile): enable removing unreachable code again, but
+       only in methods without exception clauses.
+
+Fri May 30 18:40:24 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, mini-ops.h, cpu-pentium.md, inssel.brg, mini-x86.c, mini.h:
+       Implemented arglist opcode and handling of TypedReference type.
+       Fixed x86 call convention when a structure is returned.
+       Minimal support for calling static vararg methods.
+
+2003-05-30  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (mini_method_compile):  always remove unreachable code,
+       because the code in them may be inconsistent  (access to dead
+       variables for example).
+
+Thu May 29 11:44:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c, debug-mini.c: warning fixes.
+
+Wed May 28 11:19:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * Makefile.am, jit.h, mini.h: install header for embedding mono.
+
+Tue May 27 17:56:12 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: thread-static fields are registered in mono_class_vtable(),
+       so ensure the function is called before checking for them.
+
+2003-05-27  Dietmar Maurer  <dietmar@ximian.com>
+
+       * mini.c (optimize_branches): fix for bug 43586
+
+       * jit-icalls.c (mono_llmult_ovf): added an additional check for
+       overflow (fixes Bug #43639)
+
+Tue May 27 11:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, objects.cs: allow the use of stobj for primitive types.
+
+Tue May 27 10:33:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: be less strict about argument checking until we support
+       running the verifier.
+
+2003-05-27  Nick Drochak <ndrochak@gol.com>
+
+       * basic-long.cs: tests for (ulong)int * (ulong)int also
+       * mini.c: use the same trick for (ulong)int * (ulong)int
+
+2003-05-27  Nick Drochak <ndrochak@gol.com>
+
+       * basic-long.cs: add regression test for (long)int * (long)int
+       * cpu-pentium.md: add op_bigmul specification
+       * inssel-long32.brg: add OP_BIGMUL rule
+       * mini-ops.h: add OP_BIGMUL
+       * mini-x86.c: register allocator: handle case where src1 needs to be
+       in EAX.
+       * mini.c: substitute special BIGMUL opcode in the tree for 
+       (long)int * (long)int
+
+Mon May 26 20:20:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
+
+       * jit-icalls.c: call the type ctor on field access if needed.
+
+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 ().
@@ -22,8 +360,6 @@ Tue May 6 14:38:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
        * driver.c: s/MONO_OPT_SAHRED/MONO_OPT_SHARED/g.
        s/mini_set_defaults/mono_set_defaults/g.
 
-       * Makefile.am: Install mini.h, regalloc.h and mini-ops.h.
-
 2003-05-04  Martin Baulig  <martin@ximian.com>
 
        * driver.c: s/mini_parse_default_optimizations/mono_parse_default_optimizations/g.