2008-07-22 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / mini / ChangeLog
index 286b5bf85fc9ba5317a496fd5aa82caad02ff365..93689c18d244903b5845b50453a2968b73c9337f 100644 (file)
@@ -1,5 +1,253 @@
+2008-07-22  Zoltan Varga  <vargaz@gmail.com>
+
+       * *: Merge the Linear IR branch.
+
+       The original branch is at trunk/branches/vargaz/mini-linear-il, and
+       the ChangeLog file there describes all the changes done over the years. 
+       Further documentation can be found at www.mono-project.com/Linear_IL.
+
+2008-07-21  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c (get_call_info): Winx64 fix for passing floats.
+         The float param registers and other param registers must be the 
+         same index on Windows x64.
+
+       Contributed under MIT/X11 license.
+
+2008-07-21  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c: Make the previous fix GC safe.
+
+2008-07-21  Raja R Harinath  <harinath@hurrynot.org>
+
+       * Makefile.am (version.h): Allow a trailing '/' in the repository URL.
+
+2008-07-21  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini-amd64.c (get_call_info): Correcting the case for MONO_TYPE_TYPEDBYREF
+         on Winx64.  This type will not be passed on the stack (ArgOnStack), but 
+         ArgValuetypeAddrInIReg instead.
+
+       Contributed under MIT/X11 license.
+
+2008-07-21  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-codegen.c (get_register_spilling): Fix a warning.
+
+2008-07-17  Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mini.c: Use mono_runtime_class_init_full to avoid leaking memory
+       for types which the initialization fails. Raises the provided exception
+       at the right stop after cleanup.
+
+2008-07-16  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c: Free most of the memory allocated during compilation.
+
+       * mini.c (mini_parse_debug_options): Fix a leak.
+       
+       * mini.c (mini_method_compile): Don't add the method to the jit info tables
+       during aot compilation.
+
+2008-07-14  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_method_to_ir): Disable aot for code using CCASTCLASS on x86 as 
+       it has too much register pressure.
+
+2008-07-13  Zoltan Varga  <vargaz@gmail.com>
+
+       * inssel.brg (CEE_CASTCLASS): Remove some dead code.
+
+2008-07-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-x86.h aot-compiler.c aot-runtime.c: Store the plt info offset inline
+       on x86.
+
+       * mini-amd64.h aot-compiler.c aot-runtime.c: Store the plt info offset inline
+       on amd64 similar to the way it is done on arm.
+
+       * mini.h (MONO_AOT_FILE_VERSION): Bump AOT file format version.
+
+       * aot-runtime.c (load_aot_module): Rename 'info' to 'amodule' for 
+       consistency, normalize error messages, avoid loading aot-only modules in
+       normal mode.
+
+       * driver.c (mono_main): Rename --aot-only command line option to --full-aot
+       for consistency.
+
+       * aot-compiler.c aot-runtime.c tramp-arm.c: Implement aot-only support.
+
+2008-07-11  Martin Baulig  <martin@ximian.com>
+
+       * debug-debugger.h
+       (MonoDebuggerInfo): Add `interruption_request'.
+
+2008-07-12  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c (emit_plt): Remove some dead code.
+
+       * exceptions-arm.c (mono_arch_get_call_filter_full): Initialize ji.
+
+       * aot-runtime.c (mono_aot_get_plt_info_offset): New helper function to
+       return the plt info offset belonging to a given plt entry.
+
+       * mini-trampolines.c (mono_aot_plt_trampoline): Use 
+       mono_aot_get_plt_info_offset.
+       
+       * aot-runtime.c aot-compiler.c tramp-arm.c: Change the arm plt code to be
+       similar to the amd64 code by makeing jumps through a separate jump table 
+       instead of embedding the jump addresses into the code.
+
+2008-07-11  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_method_to_ir): Disable aot for calling ldtoken in a generic
+       method.
+
+2008-07-10  Martin Baulig  <martin@ximian.com>
+
+       * mini.c (mini_method_compile): Disable generics sharing when
+       running in the debugger.
+
+2008-07-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.c (mono_method_to_ir): Create the got var in CEE_REFANYVAL.
+
+       * inssel.brg (CEE_CASTCLASS): Avoid reusing temporary registers to prevent
+       the local register allocator from running out of registers on x86 when 
+       using aot.
+
+2008-07-10  Bill Holmes  <billholmes54@gmail.com>
+
+       * inssel-long.brg For OP_LCONV_TO_OVF_I4 an int cast is needed when 
+       expressing IntMin for the VS Compiler.  See Compiler Warning (level 2) 
+       C4146.
+
+       Contributed under MIT/X11 license.
+
+2008-07-10  Zoltan Varga  <vargaz@gmail.com>
+
+       * aot-compiler.c: Get rid of whitespace in the generated assembly file to
+       speed up the assembler.
+
+2008-07-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini-arm.h tramp-arm.c exceptions-arm.c aot-compiler.c: Beginnings of aot-only
+       support.
+
+       * mini.c: Move the soft float handling macros a bit earlier, add 
+       NEW_TEMPSTORE_SOFT_FLOAT macro, fix warnings, add soft-float support in one
+       place.
+
+       * mini.h: Add prototype for mono_arch_fixup_jinfo.
+
+       * mini.c (mini_init): In aot-only mode, set the root domain code manager to
+       read-only to help catch code allocation requests.
+       
+       * mini.c inssel.brg aot-compiler.c: Make the use of IMT runtime configurable,
+       and turn it off when using --aot-only or when compiling with --aot=full.
+
+       * mini.c (mono_resolve_patch_target): In aot-only mode, allocate the
+       jump table for switches from the normal domain mempool, not the code
+       manager.
+
+       * mini-trampolines.c (get_unbox_trampoline): New function to return an
+       unbox trampoline which handles aot-only mode too.
+
+       * aot-runtime.c (mono_aot_get_unbox_trampoline): New function to lookup
+       an AOTed unbox trampoline.
+
+       * aot-compiler.c (emit_trampolines): Emit unbox trampolines.
+
+2008-07-09  Bill Holmes  <billholmes54@gmail.com>
+
+       * wapihandles.c: Fixing MSVC builds.  Include statement changed from <> to
+       ""
+
+       Contributed under MIT/X11 license.
+
+2008-07-09  Bill Holmes  <billholmes54@gmail.com>
+
+       * mini.c (mono_codegen):  Allocate space at the end of the code block and store
+         the unwind information for the method at the end of the allocated block.
+         
+       * mini-amd64.h: Added declarations for the unwind routines and adding field to 
+         MonoCompileArch to hold the unwind info for SEH on Winx64
+       
+       * mini-amd64.c (mono_arch_emit_prolog): Calls to the unwind routines added to store
+         frame pointer info for the method being compiled.
+         
+       * exceptions-amd64.c (mono_arch_get_throw_corlib_exception): Added a stack adjustment before
+         the call to mono_exception_from_token.
+         
+       * exceptions-amd64.c: Added mono_arch_unwindinfo* implementations.  This code is responsible
+         storing the method prolog information in a format that the Winx64 SEH can understand.  This
+         information is stored a the end of the method block because it is all 32-bit offset based.
+
+       Contributed under MIT/X11 license.
+
+2008-07-09  Zoltan Varga  <vargaz@gmail.com>
+
+       * mini.h: Remove duplicate definitions of the mini_wapi_ functions.
+
+       * wapihandles.c: Fix warnings.
+
+       * aot-runtime.c (load_aot_module): Add a missing error message in aot-only
+       mode.
+
+       * mini-trampolines.c (mono_create_jit_trampoline_in_domain): Avoid calling 
+       mono_jit_compile_method in aot-only mode since that calls the type 
+       initializer.
+       
+       * mini-trampolines.c (mono_create_delegate_trampoline): Avoid calling
+       get_delegate_invoke_impl in aot-only mode.
+
+       * mini.c (mono_global_codeman_reserve): Reenable the aot-only check.
+
 2008-07-08  Zoltan Varga  <vargaz@gmail.com>
 
+       * trace.c (mono_trace_enter_method): Fix printing of Type instances.
+
+       * aot-compiler.c (compile_method): Disable the check for GSHARED since it
+       is on by default.
+
+       * inssel-long.brg (reg): Add a rule for LCALL_REG (OP_I8CONST).
+
+       * tramp-amd64.c (mono_arch_nullify_plt_entry): Read the nullified class
+       init trampoline from the AOT file as well.
+
+       * mini-amd64.c (mono_arch_register_lowlevel_calls): Register
+       mono_amd64_throw_exception as a jit icall since it is needed by the aot-only
+       code.
+
+       * mini.c (mini_init): Move the call to mono_exceptions_init () after 
+       mono_init.
+
+       * exceptions-amd64.c: Add _full variants for the remaining exception code
+       creation functions as well, allow emission of relocatable code, remove
+       caching since that is now done by the caller.
+
+       * mini-exceptions.c: Add _full variants for the remaining exception code
+       creation functions as well, add aot-only support.
+
+       * aot-compiler.c (compile_method): Allow calls to methods of constructed types
+       if we can determine a proper token for them.
+       (add_wrappers): Add a few more wrappers.
+       (emit_method_code): Remove some dead code.
+       (emit_trampolines): Emit exception code too.
+
+       * mini.c (mono_method_to_ir): Call mono_array_new_2 if possible.
+
+       * jit-icalls.c (mono_array_new_2): New jit icall, specialized version of
+       mono_array_new_va which avoids varargs.
+
+       * mini-exceptions.c (mono_exceptions_init): Fix the ppc build.
+
+       * mini-trampolines.c: Call mono_create_specific_trampoline () instead of
+       mono_arch_create_specific_trampoline () in all places.
+
+       * aot-compiler.c aot-runtime.c: Refactor the trampoline emitting/loading code
+       a bit so it can be used for other things as well.
+       
        * mini-exceptions.c (mono_exceptions_init): Initialize throw_exception_by_name
        on demand as well.
 
@@ -14080,3 +14328,5 @@ Mon Apr 7 16:31:34 CEST 2003 Paolo Molaro <lupus@ximian.com>
 
 
 
+
+