Zoltan Varga [Fri, 1 Nov 2013 12:14:38 +0000 (13:14 +0100)]
[jit] Fix the processing of LLVM compiled method frames on x86. Fixes running corlib tests with LLVM.
Zoltan Varga [Fri, 1 Nov 2013 12:13:47 +0000 (13:13 +0100)]
[sdb] Fix tests.
Alex Rønne Petersen [Fri, 1 Nov 2013 08:53:38 +0000 (09:53 +0100)]
Fix indentation.
Oddly, we don't use tabs here...
Rodrigo Kumpera [Thu, 31 Oct 2013 23:44:40 +0000 (19:44 -0400)]
[jit] Pair of fixes from last merge.
Rodrigo Kumpera [Thu, 31 Oct 2013 23:34:04 +0000 (19:34 -0400)]
[jit] The AggressiveInlining hint now triggers class initialization so more stuff gets force-inlined.
Rodrigo Kumpera [Thu, 31 Oct 2013 23:30:09 +0000 (19:30 -0400)]
[jit] Clean up emit_init_rvar and reduce code duplication.
Rodrigo Kumpera [Thu, 31 Oct 2013 22:41:18 +0000 (18:41 -0400)]
[jit] Clean up usage of signature variables.
Rodrigo Kumpera [Thu, 31 Oct 2013 21:02:59 +0000 (17:02 -0400)]
[jit]Add an alias analysis pass to the JIT.
The alias analysis pass is capable of simplifying indirection against
local or temporary variables. It will replace a memory load or store
with direct access to the variable.
It does a local pass looking for addresses and replacing memory
ops with direct ops.
If any conversion happens, it does a DCE pass to try to kill those
LDADDR and then recalculate the indirect flag.
Finally, if the number of indirect variables is reduced, it does a
global to local vreg pass and another DCE pass to kill most spurious
copying.
Performance numbers on 32bits OSX:
Code size:
mcs: -11.366 (0.6%)
corlib: -15.397 (0.6%)
Execution time increased by less than 0.2% which is about the same
value of the test variance.
Numbers are not impressive since we don't perform store forwarding
or constant load elimination. Proper handling of value type aggregates
and longs would move us much further.
Rodrigo Kumpera [Thu, 31 Oct 2013 20:50:16 +0000 (16:50 -0400)]
[jit] Add counters for alias analysis.
Rodrigo Kumpera [Thu, 31 Oct 2013 20:45:35 +0000 (16:45 -0400)]
[jit] Introduce has_indirection flag in MonoCompile to signal that LDADDR was generated.
To reduce the cost of alias analysis we detect which methods can potentially profit from
the optimization.
The current detection logic is very simple, every time LDADDR is generated, we set
has_indirection to TRUE.
Rodrigo Kumpera [Thu, 31 Oct 2013 20:41:26 +0000 (16:41 -0400)]
[jit]Replace all usages of MONO_INST_INDIRECT to force regalloc with MONO_INST_VOLATILE.
The indirect flag should only be used to signal that the address of the given variable
has been taken. This means that it should be possible to recompute that flag from the IR.
The usage of the volatile flag remains not ideal as it conflates two separate issues
and will in the future hinder efforts to implement address based alias analysis.
Rodrigo Kumpera [Thu, 31 Oct 2013 18:14:44 +0000 (14:14 -0400)]
[jit] Add new optimization flag for alias analysis.
Jeffrey Stedfast [Thu, 31 Oct 2013 19:58:04 +0000 (15:58 -0400)]
[Mono.Debugger.Soft] Test the inherited Type attributes
Jeffrey Stedfast [Thu, 31 Oct 2013 19:02:01 +0000 (15:02 -0400)]
[Mono.Debugger.Soft] Fixed unit test for getting custom type attributes
Rodrigo Kumpera [Thu, 31 Oct 2013 18:59:19 +0000 (14:59 -0400)]
Revert "Implementation of Properties and Methods in MethodSignatureGenerator.cs"
This reverts commit
46cd052a3ab3102c59ed70f60a6290b4ed63da97.
This breaks the build.
Zoltan Varga [Thu, 31 Oct 2013 17:05:01 +0000 (18:05 +0100)]
[runtime] Fix the ARM build.
Martin Baulig [Fri, 25 Oct 2013 21:56:59 +0000 (23:56 +0200)]
[linker]: Fix my previous commit.
We need to resolve all the TypeReferences before we update their scopes.
After setting the scope to null, calling Resolve() on a nested child would
crash.
Marek Safar [Thu, 31 Oct 2013 06:58:27 +0000 (23:58 -0700)]
Merge pull request #794 from aakashapoorv/patch-1
Implementation of Properties and Methods in MethodSignatureGenerator.cs
aakashapoorv [Thu, 31 Oct 2013 03:00:22 +0000 (11:00 +0800)]
Implementation of Properties and Methods in MethodSignatureGenerator.cs
Implemented following properties:-
CodeProvider
ContainerParameterType
DataSetClassName
IsGetMethod
PagingMethod
ParameterGenerationOption
ParameterOption
TableClassName
and following methods:-
GenerateMethod
GenerateMethodSignature
GenerateUpdatingMethods
SetDesignTableContent
SetMethodSourceContent
Zoltan Varga [Thu, 31 Oct 2013 01:16:52 +0000 (02:16 +0100)]
Dist README.md.
Zoltan Varga [Wed, 30 Oct 2013 17:38:01 +0000 (18:38 +0100)]
[runtime] Make an AOT log message smaller.
Jeffrey Stedfast [Wed, 30 Oct 2013 19:36:24 +0000 (15:36 -0400)]
[Mono.Debugger.Soft] Implemented inheritance for TypeMirror.GetCustomAttributes()
Fixes bug #15320
Miguel de Icaza [Wed, 30 Oct 2013 18:45:21 +0000 (11:45 -0700)]
Merge pull request #795 from mono/readme2
[README] Minor update to content and use markdown formatting.
Therzok [Wed, 30 Oct 2013 18:42:27 +0000 (20:42 +0200)]
[README] Minor update to content and use markdown formatting.
Miguel de Icaza [Wed, 30 Oct 2013 18:36:34 +0000 (14:36 -0400)]
Rename README to README.md
Neale Ferguson [Wed, 30 Oct 2013 17:29:11 +0000 (13:29 -0400)]
Add mono_arch_get_nullified_class_init_trampoline
Zoltan Varga [Wed, 30 Oct 2013 13:31:00 +0000 (14:31 +0100)]
Fix MONO_PATH for run-test-vts in corlib.
Zoltan Varga [Wed, 30 Oct 2013 12:04:05 +0000 (13:04 +0100)]
[runtime] Fix a warning.
Zoltan Varga [Wed, 30 Oct 2013 12:03:47 +0000 (13:03 +0100)]
[runtime] Fix an assertion in mono_arch_context_get_int_reg () on amd64. Fixes #15786.
Zoltan Varga [Wed, 30 Oct 2013 10:31:26 +0000 (11:31 +0100)]
Dist the subdirs of class/Facades.
Rodrigo Kumpera [Tue, 29 Oct 2013 19:25:20 +0000 (15:25 -0400)]
Fix skip_scan to handle proper load errors.
Marek Safar [Tue, 29 Oct 2013 19:07:07 +0000 (20:07 +0100)]
Fixes build
Marek Safar [Tue, 29 Oct 2013 18:00:21 +0000 (19:00 +0100)]
When parsing documentation cref text turn on error probing for tokenizer as well. Fixes #15511
Zoltan Varga [Tue, 29 Oct 2013 16:23:33 +0000 (17:23 +0100)]
[aot] Small AOT changes. Save some constants into the AOT image instead of duplicating them in aot-runtime.c. Emit some padding so multiple symbols do not point to the same address.
Zoltan Varga [Tue, 29 Oct 2013 16:05:20 +0000 (17:05 +0100)]
[runtime] Add mno-signal-handler.h to dist.
Marek Safar [Tue, 29 Oct 2013 14:04:44 +0000 (15:04 +0100)]
Better error message when member does not implement interface. Fixes #15369
Marek Safar [Tue, 29 Oct 2013 10:50:06 +0000 (11:50 +0100)]
Variables from diffent parameter block still need to be captures even if async block has no await. Fixes #15719
Sebastien Pouliot [Mon, 28 Oct 2013 13:55:12 +0000 (09:55 -0400)]
The stripper does not care if some variables can't be referenced (they'll be removed) and new cecil has a similar fix [#15727]
Marek Safar [Mon, 28 Oct 2013 12:08:58 +0000 (13:08 +0100)]
Better error message when type inference resolves valid types but parameter types still don't match
Marek Safar [Sun, 27 Oct 2013 20:37:34 +0000 (21:37 +0100)]
Update lower/upper type inference fixing to match the latest C# standard. Fixes #15505
Marek Safar [Sun, 27 Oct 2013 07:39:51 +0000 (08:39 +0100)]
Enum subtraction quirk needs to work with numeric constants only. Fixes #15520
Alex Rønne Petersen [Sat, 26 Oct 2013 23:23:41 +0000 (01:23 +0200)]
Silence some noisy warnings in mono/tests/.
Alex Rønne Petersen [Sat, 26 Oct 2013 23:15:45 +0000 (01:15 +0200)]
Add a .gitignore file to support/minizip/ to ignore *.la *.lo files.
Alex Rønne Petersen [Sat, 26 Oct 2013 23:15:00 +0000 (01:15 +0200)]
Ignore .dirstamp files.
Alex Rønne Petersen [Sat, 26 Oct 2013 22:52:09 +0000 (00:52 +0200)]
Don't assert in Interlocked.Add () icalls on 64-bit systems.
The checks here were wrong in the first place; they should have
checked for MONO_ARCH_HAVE_ATOMIC_ADD rather than SIZEOF_VOID_P.
But regardless, these methods need to work when invoked via
reflection, which they wouldn't previously.
Alex Rønne Petersen [Sat, 26 Oct 2013 19:34:42 +0000 (21:34 +0200)]
Define WIN32_LEAN_AND_MEAN before including windows.h.
Marek Safar [Sat, 26 Oct 2013 07:11:19 +0000 (00:11 -0700)]
Merge pull request #790 from akoeplinger/fixtests
Fixed a test issue where net45 methods were used in net40 profile
Alex Rønne Petersen [Sat, 26 Oct 2013 03:07:54 +0000 (05:07 +0200)]
Remove dead s390(x) code from mono-membar.h.
Alex Rønne Petersen [Sat, 26 Oct 2013 03:07:08 +0000 (05:07 +0200)]
Enable GCC atomics on sparc32/64.
Alex Rønne Petersen [Fri, 25 Oct 2013 21:31:54 +0000 (23:31 +0200)]
Correct VFP detection in mono-hwcap-arm.
This is supposed to be the value 64, not 100.
Rodrigo Kumpera [Fri, 25 Oct 2013 19:49:10 +0000 (15:49 -0400)]
[runtime]Add a wrapper around signal handlers to ease porting work.
Alexander Köplinger [Tue, 22 Oct 2013 17:38:40 +0000 (19:38 +0200)]
Fixed a test issue where net45 methods were used in net40 profile
Alex Rønne Petersen [Fri, 25 Oct 2013 16:20:44 +0000 (18:20 +0200)]
Add LLDB support to mono_gdb_render_native_backtraces () on POSIX.
Rodrigo Kumpera [Fri, 25 Oct 2013 15:41:08 +0000 (11:41 -0400)]
[runtime] Improve the docs on reference queues a bit.
Rodrigo Kumpera [Fri, 25 Oct 2013 15:40:51 +0000 (11:40 -0400)]
[runtime] Promote the reference queue API to the public.
Martin Baulig [Fri, 25 Oct 2013 13:15:18 +0000 (15:15 +0200)]
[linker]: Also reference all type-references for LinkAction.Link and Save.
Marek Safar [Fri, 25 Oct 2013 10:25:49 +0000 (12:25 +0200)]
Tests update
Marek Safar [Fri, 25 Oct 2013 08:41:41 +0000 (10:41 +0200)]
When looking for base implementation of generic MVAR methods use non-inflated parameter types. Fixes #15523
Marek Safar [Fri, 25 Oct 2013 08:40:44 +0000 (10:40 +0200)]
Add new tests
Zoltan Varga [Thu, 24 Oct 2013 20:47:45 +0000 (22:47 +0200)]
[runtime] Fix the windows build.
Zoltan Varga [Thu, 24 Oct 2013 17:37:03 +0000 (19:37 +0200)]
[runtime] Fix the sparc build.
Alex Rønne Petersen [Thu, 24 Oct 2013 15:19:56 +0000 (17:19 +0200)]
Prefix internal variables with `mono_`.
Rolf Bjarne Kvinge [Thu, 24 Oct 2013 13:11:43 +0000 (15:11 +0200)]
Add OrderedDictionary to the mobile profile.
Requested in support case #49635.
Rolf Bjarne Kvinge [Thu, 24 Oct 2013 13:24:32 +0000 (15:24 +0200)]
Move mono_get_optimizations_for_method to mini.c, since driver.c is only included in binaries, not libraries.
Zoltan Varga [Wed, 23 Oct 2013 20:04:33 +0000 (22:04 +0200)]
Add a --with-llvm=<llvm prefix> argument to configure to make the location of llvm-config explicit, instead of reading it from the PATH, which might be different on a reconfigure.
Rodrigo Kumpera [Wed, 23 Oct 2013 22:06:55 +0000 (18:06 -0400)]
[runtime]Properly calculate the bitmap of valuetype [ThreadStatic] variables.
We must account that a valuetype field offset is relative to a boxed instance
and TLS memory stores a valuetype unboxed.
Alex Rønne Petersen [Wed, 23 Oct 2013 21:10:16 +0000 (23:10 +0200)]
Fix mono_gc_wbarrier_generic_store_atomic semantics.
It should ensure that stores are fully atomic with barriers.
Alex Rønne Petersen [Wed, 23 Oct 2013 21:05:36 +0000 (23:05 +0200)]
Fix the semantics for System.Threading.Volatile methods.
This is a bit tricky. The System.Threading.Thread.Volatile* methods
don't actually guarantee atomicity; all they guarantee is that the
runtime will insert acquire barriers for loads and release barriers
for stores. The methods in the System.Threading.Volatile class,
however, require both barriers *and* atomicity.
So, we need an entirely separate set of icalls for the Volatile
class in order to get the right semantics there.
These APIs are insane.
Alex Rønne Petersen [Wed, 23 Oct 2013 20:24:53 +0000 (22:24 +0200)]
Add Interlocked{Read,Write}{8,16,Pointer} functions.
Alex Rønne Petersen [Wed, 23 Oct 2013 22:01:46 +0000 (15:01 -0700)]
Merge pull request #787 from directhex/master
Don't redeclare desc in mini_create_ftnptr on ppc64
Jo Shields [Wed, 23 Oct 2013 21:58:41 +0000 (22:58 +0100)]
Don't redeclare desc in mini_create_ftnptr on ppc64
Sebastien Pouliot [Wed, 23 Oct 2013 21:42:48 +0000 (14:42 -0700)]
Merge pull request #786 from xplicit/master
fix DivideByZeroException in Random.Next()
Rolf Bjarne Kvinge [Tue, 22 Oct 2013 21:59:28 +0000 (23:59 +0200)]
Provide more public API to inspect MonoTypes, MonoClasses and MonoMethodSignatures.
xplicit [Wed, 23 Oct 2013 20:30:08 +0000 (03:30 +0700)]
fix DivideByZeroException in Random.Next()
Zoltan Varga [Wed, 23 Oct 2013 19:18:45 +0000 (21:18 +0200)]
[runtime] Fix a warning.
Zoltan Varga [Wed, 23 Oct 2013 19:18:36 +0000 (21:18 +0200)]
[runtime] Fix the windows build.
Alex Rønne Petersen [Wed, 23 Oct 2013 17:46:47 +0000 (19:46 +0200)]
Add more missing atomic functions for MinGW.
Alex Rønne Petersen [Wed, 23 Oct 2013 14:47:54 +0000 (16:47 +0200)]
Add separate icall for System.Threading.VolatileRead (object&).
Previously, the icall that was used for the IntPtr overload was
used for this overload as well. Having a separate icall is less
error-prone for future modification as the two types are no longer
conflated.
Zoltan Varga [Wed, 23 Oct 2013 15:46:18 +0000 (17:46 +0200)]
[runtime] Fix the DISABLE_JIT build on ARM.
Alex Rønne Petersen [Wed, 23 Oct 2013 13:04:39 +0000 (15:04 +0200)]
Add InterlockedExchange64 () based on GCC intrinsics for MinGW.
As with InterlockedCompareExchange64, MinGW appears to lack this
one from its Windows headers.
Sebastien Pouliot [Wed, 23 Oct 2013 12:22:25 +0000 (08:22 -0400)]
Disable ClientWebSocketTest.cs (for mobile) until the type itself is added to the mobile profile (i.e. added to mobile_System.dll.sources). Fix building/running System.dll unit tests
Marek Safar [Wed, 23 Oct 2013 07:17:22 +0000 (00:17 -0700)]
Merge pull request #784 from alesliehughes/master
Support for ManagementQuery and ObjectQuery classes
Alistair Leslie-Hughes [Mon, 26 Aug 2013 01:57:54 +0000 (11:57 +1000)]
Implement ObjectQuery
Alistair Leslie-Hughes [Mon, 26 Aug 2013 01:47:09 +0000 (11:47 +1000)]
Implement ManagementQuery QueryString
Alistair Leslie-Hughes [Mon, 26 Aug 2013 01:46:04 +0000 (11:46 +1000)]
Implement ManagementQuery QueryLanguage
Alex Rønne Petersen [Tue, 22 Oct 2013 21:09:14 +0000 (23:09 +0200)]
Use THREAD_INFO_TYPE consistently in mono-threads.h.
Zoltan Varga [Tue, 22 Oct 2013 17:43:52 +0000 (19:43 +0200)]
[runtime] Add a missing TLS key for LMF addr.
Rodrigo Kumpera [Tue, 22 Oct 2013 17:12:05 +0000 (13:12 -0400)]
Fix this test to work on 2.0.
Zoltan Varga [Tue, 22 Oct 2013 13:11:44 +0000 (15:11 +0200)]
[runtime] Fix the interlocked increment/decrement/add functions.
Zoltan Varga [Tue, 22 Oct 2013 12:35:42 +0000 (14:35 +0200)]
[runtime] Centralize the processing of MonoTrampInfo structures into the mono_tramp_info_register () function, to reduce code duplication.
Zoltan Varga [Tue, 22 Oct 2013 12:12:38 +0000 (14:12 +0200)]
[runtime] Use mono_restore_context () to reduce code duplication in the back ends.
Zoltan Varga [Tue, 22 Oct 2013 12:05:43 +0000 (14:05 +0200)]
[runtime] Use mini_exception_id_by_name () on ARM.
Zoltan Varga [Tue, 22 Oct 2013 12:04:50 +0000 (14:04 +0200)]
[runtime] Use mini_get_nullified_class_init_trampoline () to reduce code duplication in the back ends.
Zoltan Varga [Tue, 22 Oct 2013 11:33:41 +0000 (07:33 -0400)]
[runtime] Add a mini_get_nullified_class_init_trampoline () helper function.
Zoltan Varga [Tue, 22 Oct 2013 11:31:26 +0000 (07:31 -0400)]
[runtime] Fix gsharedvt support in mono_helper_compile_generic_method ().
Zoltan Varga [Tue, 22 Oct 2013 11:28:56 +0000 (07:28 -0400)]
[runtime] Add a mono_restore_context () helper function.
Zoltan Varga [Tue, 22 Oct 2013 11:27:35 +0000 (07:27 -0400)]
[runtime] Avoid crashing in mini_jit_info_table_find () if the current thread is not set.
Zoltan Varga [Tue, 22 Oct 2013 11:26:01 +0000 (07:26 -0400)]
[jit] Add a mini_exception_id_by_name () helper function.
Zoltan Varga [Tue, 22 Oct 2013 11:22:59 +0000 (07:22 -0400)]
[jit] Add a MONO_TRAMPOLINE_TYPE_HAS_ARG macro which determines whenever a given trampoline type receives its argument directly in a register.
Zoltan Varga [Tue, 22 Oct 2013 11:21:37 +0000 (07:21 -0400)]
[jit] Add a 'relocation' field to MonoJumpInfo which contains an architecture specific relocation constant so mono_arm_patch_code () doesn't have to decompile the patch site to determine the type of patching to do.