* ssapre.c: Turned usage of snprintf to GString.
[mono.git] / mono / mini / ChangeLog
index 1cfed18024fd4e536e7d0d4190503de27492da32..8af6a7c6bfaa56b7f02feba3cbba2212bc618abb 100644 (file)
@@ -1,5 +1,356 @@
+2005-1-20  Massimiliano Mantione  <massi@ximian.com>
+
+       * ssapre.c: Turned usage of snprintf to GString.
+       * ssapre.h: disabled MONO_APPLY_SSAPRE_TO_SINGLE_METHOD
+       (I left it on by mistake in my previous commit).
+
+Thu Jan 20 12:00:45 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c, cfold.c, basic-calls.cs: preserve side effects
+       on cond branch optimization (fixes bug# 71515).
+
+2005-1-20  Massimiliano Mantione  <massi@ximian.com>
+
+       * abcremoval.c: Fixed bug 71062.
+       * abcremoval.h: Likewise.
+
+2005-1-20  Massimiliano Mantione  <massi@ximian.com>
+
+       * mini.c: Added a new functionality to optimize_branches, the removal
+       of useless basic blocks, and fixed some problem in the removal of
+       critical edges; some utility functions added for both purposes.
+       * ssapre.c: Added complex expression support, and fixed bug 70637.
+       * ssapre.h: Likewise.
+       * ssapre-cee-ops.h: Added file with list of "CEE_*" opcodes
+       enabled in SSAPRE.
+       * ssapre-mini-ops.h: Likewise, but for "OP_*" opcodes.
+       * driver.c: Re-enabled SSAPRE.
+
+2005-01-19  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mono_method_to_ir): Call mono_get_inflated_method() on
+       the result of mono_get_method_constrained().
+
+2005-01-18  Neale Ferguson <NealeFerguson@earthlink.net>
+
+       * exceptions-s390.c tramp-s390.c: Allocate code using the global code
+       manager.
+
+2005-01-18  Geoff Norton  <gnorton@customerdna.com>
+
+       * jit-icalls.c (mono_llmult_ovf): Fix other overflow conditions to
+       be detected.  Fixes #59296.
+
+2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (mono_arch_output_basic_block): Remove some assertions
+       which can happen. Fixes #71361.
+
+2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
+
+       * exceptions-sparc.c tramp-sparc.c: Allocate code using the global code
+       manager.
+
+2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_create_jump_trampoline): Revert last change as it causes
+       appdomain-unload.exe to fail.
+       
+       * mini.c: Fix some memory leaks.
+
+Mon Jan 17 16:16:23 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * inssel.brg: handle the new size of rank, idepth, max_interface_id.
+       Fixed bug and sped up some codepaths.
+
+2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c: Fix some memory leaks.
+
+       * exceptions.cs basic-long.cs: Add test for checked ulong->int 
+       conversion.
+
+       * inssel-long.brg: Implement long_conv_to_ovf_i4_un. Fixes #71319.
+
+       * inssel-long.brg: Fix conv.ovf.i8 when run on an int32. Fixes
+       #71320.
+
+       * iltests.il: Add regression test for #71320.
+
+2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_codegen): Fix installation of profiler hooks.
+
+       * mini-sparc.c mini-amd64.c: Don't allocate stack space for dead vars.
+
+Sun Jan 16 12:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.h, mini.c, cfold.c: optimize access to enum
+       readonly fields, too. Eval conditional branches if possible
+       to perform unreachable code removal in more cases.
+
+2005-01-15  Zoltan Varga  <vargaz@freemail.hu>
+
+       * tramp-amd64.c exceptions-amd64.c: Use the new global code manager.
+
+       * mini.c (mono_global_codeman_reserve): New function to allocate code memory from a global
+       code manager.
+
+       * tramp-x86.c mini-x86.c exceptions-x86.c: Allocate all code memory so mono works with
+       WinXP DEP. Fixes #71244.
+
+2005-01-14  Zoltan Varga  <vargaz@freemail.hu>
+
+       * inssel.brg: Allways convert CEE_CONV_OVF_I4 to a move on 64 bit platforms. Fixes #71236.
+
+2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (mono_arch_output_basic_block): Fix OP_ATOMIC_ADD_NEW_I4.
+
+2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-exceptions.c exceptions-ppc.c aot.c: Cope with MonoJitInfo 
+       changes.
+
+       * mini.h: Bump AOT version.
+
+       * mini.h (MonoCompile): Change exvar to a hash table.
+
+       * mini.c: Allocate a separate exvar for each handler block.
+
+       * mini.c: Get rid of the computation of filter_lengths, its not needed.
+
+       * mini.c inssel.brg: Change OP_THROW_OR_NULL to compare the current
+       ex var with the pending exception and only throw if the two are equal.
+       Fixes #68552.
+       
+       * exceptions.cs: Add tests for rethrow and nested catch clauses.
+
+       * mini-x86.c: Fix warnings.
+
+       * Makefile.am (common_sources): Move mini-exceptions.c here as it is
+       used by all the ports now.
+
+       * aot.c: Add write-symbols and save-temps options.
+
+2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c: Add support for returning structs in registers from pinvoke functions on WIN32.
+
+Mon Jan 10 16:11:16 EST 2005 Neale Ferguson <nealeferguson@earthlink.net>
+
+       * mini-ops.h, inssel-s390.brg, cpu-s390.md: Support OP_ATOMIC__xxx 
+       operations.
+
+       * tramp-s390.c: Check vtable slot belongs to the domain.
+
+       * mini-exceptions.c, exceptions-s390.c: Standardize exception handling
+       as per other platforms.
+
+       * mini-s390.c, mini-s390.h: Enable out-of-line bblock support.
+
+Mon Jan 10 18:53:05 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * driver.c: we don't run the Main() code in a subthread anymore.
+
+Mon Jan 10 17:54:16 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: added experimental rtc support in the statistical
+       profiler: if the user has the permission, more accurate statistics
+       are gathered. Run with: MONO_RTC=4096 mono --profiler=default:stat ....
+       The MONO_RTC value must be restricted to what the linux rtc allows:
+       power of two from 64 to 8192 Hz.
+
+2005-01-10  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (mono_arch_emit_exceptions): Fix #71121.
+
+Mon Jan 10 05:20:49 EST 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini-ppc.c: better icache flush for smp.
+
+2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-amd64.c (emit_move_return_value): Fix memory leak.
+
+       * mini-x86.c (get_call_info): Add the get_call_info () code from the
+       amd64 port, not yet used.
+
+2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_method_to_ir): Disable inlining of ldfld wrappers with
+       a struct type.
+
+2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * driver.c: Added --security option to activate the security manager.
+       Right now this will allow code generation for declarative demands and
+       is disabled when AOT is specified.
+       * mini.c: Add code generation for declarative security demands.
+       * mini.h: Add mono_use_security_manager as an extern gboolean.
+
+2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
+
+       * aot.c (mono_compile_assembly): Speed up compilation a bit by
+       emitting more dense assembly code.
+
+       * mini-sparc.c mini-sparc.h exceptions-sparc.c: Enable optimized corlib
+       exception throwing stuff.
+
+2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-sparc.c (mono_arch_emit_exceptions): Fix typo in previous patch. Remove
+       dead code.
+
+       * mini-amd64.c (mono_arch_emit_exceptions): Remove duplicate epilog stuff
+       left in by mistake.
+
+       * driver.c (EXCLUDED_FROM_ALL): Disable SSAPRE until bug #70637 is 
+       fixed.
+
+       * mini-sparc.h mini-sparc.c: Enable out-of-line bblock support.
+
+       * tramp-*.c: Only patch vtable slots if the object is in the current
+       domain. Fixes appdomain-unload.exe.
+
+       * mini-amd64.c mini-amd64.h: Enable out-of-line bblock support.
+       
+       * mini-amd64.c (mono_arch_local_regalloc): Port regalloc fix from
+       x86 branch.
+
+2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (reverse_branch_op): New helper function.
+
+       * mini.c (optimize_branches): Run the new optimization only on 
+       platforms which support it. Also reverse all kinds of branches.
+
+       * mini.h (MonoBasicBlock): Add 'out_of_line' field.
+
+       * mini.c (mono_method_to_ir): Set 'out_of_line' for bblocks which have
+       a throw statement.
+
+       * mini.c (optimize_branches): Reverse not-equals branches if the false
+       bblock is a throw. This happens a lot of time with argument checking in
+       corlib.
+
+       * mini.c (mono_codegen): Add support for placing basic blocks after
+       the function epilogue.
+
+       * mini-x86.c mini-x86.h: Add support for placing basic blocks after the
+       function epilogue.
+       
+2005-01-05  Miguel de Icaza  <miguel@ximian.com>
+
+       * mini.c (setup_stat_profiler): Only set this up if the platform
+       supports ITIMER_PROF.
+
+2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.c (mono_arch_local_regalloc): Fix a bug introduced by the
+       previous patch.
+
+       * inssel.brg: Fix a warning.
+
+Wed Jan 5 16:40:18 CET 2005 Paolo Molaro <lupus@ximian.com>
+
+       * mini.c: added support for statistical profiler 
+       (run with: --profile=default:stat).
+
+2005-01-04  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini-x86.h (MONO_ARCH_ENABLE_EMIT_STATE_OPT): Enable this on x86.
+
+       * mini-x86.c cpu-pentium.md: More fixes for usage of global registers.
+
+       * mini-amd64.c (mono_arch_local_regalloc): Port some regalloc fixes 
+       related to global registers from the amd64 port.
+
+2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c (mono_method_to_ir): Handle MONO_CLASSCONST.
+
+       * mini-amd64.c (mono_arch_local_regalloc): Fix some regalloc problems
+       with global registers.
+       (mono_arch_output_basic_block): Fix SWITCH in the AOT case.
+
+       * aot.c (emit_method_code): Fix the 'method emitted as' messages.
+
+2004-12-31  Zoltan Varga  <vargaz@freemail.hu>
+
+       * debug-mini.c (encode_value): Fix off-by-one.
+
+       * aot.c (encode_value): Likewise.
+
+       * mini.c (mono_method_to_ir): Disable AOT for methods containing LDPTR.
+
+2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
+
+       * mini.c linear-scan.c: Add a workaround for the mcs crash when using 
+       AOT.
+
+       * aot.c (mono_aot_load_method): Free up patch info if no longer needed.
+       
+       * aot.c (emit_method_info): Increase size of temp buffer.
+
+       * mini-x86.c cpu-pentium.md mini.c: Load fp constants differently in 
+       the AOT case.
+
+2004-12-28  Zoltan Varga  <vargaz@freemail.hu>
+
+       * aot.c (emit_method_info): Fix build.
+       
+       * aot.c: Further rework of the AOT file format to reduce the size of
+       the method info data.
+
+       * mini.h: Bump AOT file format version.
+
+2004-12-27  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mini_get_method): New static method; call
+       mono_get_method_full() and mono_get_inflated_method().
+       (mono_method_to_ir): Use mini_get_method() instead of
+       mono_get_method_full(). 
+
+2004-12-26  Patrik Torstensson  <patrik.torstensson@gmail.com>
+
+       * mini-x86.c (atomic ops): fixed bug interlocked bug #70784. 
+
+2004-12-25  Zoltan Varga  <vargaz@freemail.hu>
+
+       * inssel.brg (ldind_to_load_membase): Handle CEE_LDIND_I8.
+
+       * inssel-amd64.brg: Add some optimization rules.
+
+2004-12-24  Ben Maurer  <bmaurer@ximian.com>
+
+       * aot.c: Remove the use of MonoGHashTable and other GC stuff. The
+       standard not GC'd stuff is fine.
+
+2004-12-24  Zoltan Varga  <vargaz@freemail.hu>
+
+       * aot.c: Rework the AOT file format to get rid of most of the global
+       symbols. This reduces the size of the mscorlib.dll.so by 1MB.
+
+       * mini.h: Bump AOT file format version.
+       
 2004-12-23  Zoltan Varga  <vargaz@freemail.hu>
 
+       * mini.h: Bump AOT file format version.
+
+       * aot.c (mono_aot_is_got_entry): New function to determine if an 
+       address is inside a GOT.
+
+       * aot.c mini-x86.c tramp-x86.c: Make all patches use the GOT.
+
+       * cpu-pentium.md: Increase the maximum size of some instructions which
+       might involve a got access.
+       
+       * mini.c (get_method_from_ip): Another debug helper function.
+
+       * mini.c: Call mono_get_got_var () in a couple places. Handle the case
+       when got var accesses are created during the decompose phase.
+
        * mini-sparc.c: Change mono_compile_aot to cfg->compile_aot.
 
        * mini.h mini.c mini-x86.c aot.c mini-sparc.c: Add a 'compile_corlib'