Luke Halliwell [Sun, 26 Dec 2010 16:26:44 +0000 (08:26 -0800)]
Fix for bug 349053 - unable to serialize SortedDictionary
Gonzalo Paniagua Javier [Tue, 4 Jan 2011 02:09:29 +0000 (21:09 -0500)]
Socket is not connected after error
Gonzalo Paniagua Javier [Mon, 3 Jan 2011 22:18:55 +0000 (17:18 -0500)]
Add a case-insensitive hashtable
Use a hashtable instead of a loop when 'ignoreCase' is set.
Based on a patch by Curtis Wensley.
Zoltan Varga [Mon, 3 Jan 2011 21:23:19 +0000 (22:23 +0100)]
Implement VBByRefStr marshalling. Fixes #661917.
Rodrigo Kumpera [Mon, 3 Jan 2011 01:32:31 +0000 (09:32 +0800)]
Get rid of mymono_metadata_type_(equal|hash).
* reflection.c: The copy versions of type/hash functions
is no longer needed. Just get rid of them which brings
some niceties such such as support for FNPTR.
Zoltan Varga [Mon, 3 Jan 2011 20:32:46 +0000 (21:32 +0100)]
Fix a warning.
Zoltan Varga [Mon, 3 Jan 2011 18:26:05 +0000 (19:26 +0100)]
Add more comments for the fields of MonoAotFileInfo.
Zoltan Varga [Mon, 3 Jan 2011 18:10:40 +0000 (19:10 +0100)]
Don't make the 'thumb_end' symbol global.
Zoltan Varga [Mon, 3 Jan 2011 17:49:19 +0000 (18:49 +0100)]
Reorganize the AOT file format once more, get rid of most globals, store them as pointers inside MonoAotFileInfo instead.
Rodrigo Kumpera [Sun, 2 Jan 2011 21:32:19 +0000 (05:32 +0800)]
Ignore non-realizable reflection types.
* class.c (mono_class_implement_interface_slow): If the reflection
type has not been realized, ignore it since can't affort
to do it from here.
Fixes #656262
Zoltan Varga [Mon, 3 Jan 2011 16:14:37 +0000 (17:14 +0100)]
Avoid mixing llvm aot code and non-llvm code on arm. Clean up the printing of AOT messages.
Zoltan Varga [Mon, 3 Jan 2011 15:42:39 +0000 (16:42 +0100)]
Implement support for llvm+thumb2+aot on arm.
Zoltan Varga [Mon, 3 Jan 2011 15:42:28 +0000 (16:42 +0100)]
Add thumb2 support for ARM EH code.
Zoltan Varga [Mon, 3 Jan 2011 15:41:43 +0000 (16:41 +0100)]
Implement support for NULL pointers in the bin_writer_emit_pointer ().
Paolo Molaro [Mon, 3 Jan 2011 14:35:48 +0000 (15:35 +0100)]
Allow the special ECMA key when parsing assembly names (bug#660570).
Zoltan Varga [Mon, 3 Jan 2011 14:52:11 +0000 (15:52 +0100)]
Avoid computing GC maps if precise stack marking is disabled.
Zoltan Varga [Mon, 3 Jan 2011 14:45:14 +0000 (15:45 +0100)]
Merge branch 'precise-gc-maps'
Zoltan Varga [Mon, 3 Jan 2011 11:50:59 +0000 (12:50 +0100)]
.gitignore
Zoltan Varga [Mon, 3 Jan 2011 11:48:23 +0000 (12:48 +0100)]
Make conservative stack marking the default for now.
Zoltan Varga [Mon, 3 Jan 2011 11:44:46 +0000 (12:44 +0100)]
Fix an assert which can be hit for types unloadable types.
Zoltan Varga [Mon, 3 Jan 2011 11:40:57 +0000 (12:40 +0100)]
Add 'save_locations' to mono_arch_find_jit_info () signature on all platforms.
Zoltan Varga [Mon, 3 Jan 2011 11:25:14 +0000 (12:25 +0100)]
Fix a warning.
Zoltan Varga [Mon, 3 Jan 2011 11:25:02 +0000 (12:25 +0100)]
Fix some merge problems.
Zoltan Varga [Fri, 12 Nov 2010 23:12:23 +0000 (00:12 +0100)]
Don't set 'last' after emitting the OP_GC_SPILL_SLOT_LIVENESS_DEF () opcode.
Zoltan Varga [Fri, 12 Nov 2010 20:12:05 +0000 (21:12 +0100)]
Fix a merge problem.
Zoltan Varga [Wed, 10 Nov 2010 13:32:17 +0000 (14:32 +0100)]
Properly copy the contexts for FRAME_TYPE_MANAGED_TO_NATIVE.
Zoltan Varga [Wed, 10 Nov 2010 13:08:08 +0000 (14:08 +0100)]
Remove obsolete conservative-stack-mark MONO_GC_DEBUG option, it is superseded by a MONO_GC_PARAMS option.
Zoltan Varga [Wed, 10 Nov 2010 12:57:07 +0000 (13:57 +0100)]
Fix some merge problems.
Zoltan Varga [Wed, 13 Oct 2010 13:18:59 +0000 (15:18 +0200)]
Implement AOT support.
Zoltan Varga [Mon, 11 Oct 2010 14:12:40 +0000 (16:12 +0200)]
Add stats for the number of pinned objects during all collections. Avoid scanning the frames above the start_wrapper () frame. Rework start_wrapper () to avoid references to the Thread object, so hopefully it won't get pinned.
Zoltan Varga [Fri, 8 Oct 2010 10:26:31 +0000 (12:26 +0200)]
Fix formatting.
Zoltan Varga [Fri, 8 Oct 2010 10:19:18 +0000 (12:19 +0200)]
Implement x86 support.
Zoltan Varga [Tue, 5 Oct 2010 22:32:34 +0000 (00:32 +0200)]
Remove unused DEBUG_GC_MAP macros.
Zoltan Varga [Tue, 5 Oct 2010 04:30:06 +0000 (06:30 +0200)]
Log to stdout by default, so it matches up with the output of the program.
Zoltan Varga [Tue, 5 Oct 2010 04:26:43 +0000 (06:26 +0200)]
Share the log file between sgen and the stack marking code.
Zoltan Varga [Tue, 5 Oct 2010 04:08:32 +0000 (06:08 +0200)]
Don't crash in one place if logging is turned on. Add some FIXMEs.
Zoltan Varga [Mon, 4 Oct 2010 16:27:36 +0000 (18:27 +0200)]
Revert "Flush the actual file too in binary_protocol_flush_buffers ()."
This reverts commit
27bb69444433cd4eda1fccfcd45fcc619559a29d.
Zoltan Varga [Mon, 4 Oct 2010 00:34:13 +0000 (02:34 +0200)]
Flush the actual file too in binary_protocol_flush_buffers ().
Zoltan Varga [Mon, 4 Oct 2010 00:33:53 +0000 (02:33 +0200)]
Use sizeof (mgreg_t) in a few more places.
Zoltan Varga [Mon, 4 Oct 2010 00:15:08 +0000 (02:15 +0200)]
Print frame info during the precise pass as well.
Zoltan Varga [Sat, 2 Oct 2010 20:19:22 +0000 (22:19 +0200)]
Add a MONO_GCMAP_DEBUG env variable. Redirect debug messages to a logfile. Fix tracking of registers through managed-to-native transitions.
Zoltan Varga [Sat, 2 Oct 2010 20:18:22 +0000 (22:18 +0200)]
Allow an argument to collect-before-allocs to force sgen to do a minor collection every N allocations. Implement major_ptr_is_in_non_pinned_space ().
Zoltan Varga [Fri, 1 Oct 2010 03:35:35 +0000 (05:35 +0200)]
Allocate a few more vregs as REF/MP.
Zoltan Varga [Wed, 29 Sep 2010 03:06:38 +0000 (05:06 +0200)]
Improve logging even more. Fix a crash which happened when tls->nframes was not initialized in a code path.
Zoltan Varga [Tue, 28 Sep 2010 22:50:15 +0000 (00:50 +0200)]
Improve logging, really set vtype slots without liveness info to PIN.
Zoltan Varga [Tue, 28 Sep 2010 20:57:07 +0000 (22:57 +0200)]
Don't treat arguments in registers live for the whole method.
Zoltan Varga [Mon, 27 Sep 2010 23:36:09 +0000 (01:36 +0200)]
Make gshared variables GC tracked.
Zoltan Varga [Mon, 27 Sep 2010 04:22:55 +0000 (06:22 +0200)]
Add stats for the size of the scanned native stacks.
Zoltan Varga [Mon, 27 Sep 2010 04:17:41 +0000 (06:17 +0200)]
Fix the computation of frame start so some areas are not scanned twice.
Zoltan Varga [Mon, 27 Sep 2010 02:15:27 +0000 (04:15 +0200)]
Log if the frame stack is full.
Zoltan Varga [Mon, 27 Sep 2010 00:29:49 +0000 (02:29 +0200)]
Move the handling of finally clauses into a separate function. Treat the frame pointer as a precise reg.
Zoltan Varga [Sun, 26 Sep 2010 23:52:29 +0000 (01:52 +0200)]
Make a log statement depend on cfg->verbose_level.
Zoltan Varga [Sun, 26 Sep 2010 23:35:27 +0000 (01:35 +0200)]
Fix the handling of methods with finally clauses so it is correct and reasonable efficient: only callsites inside finally blocks are treated conservatively.
Zoltan Varga [Sun, 26 Sep 2010 22:06:34 +0000 (00:06 +0200)]
Mark the dreg of OP_NEWARR as a ref.
Zoltan Varga [Sun, 26 Sep 2010 18:26:35 +0000 (20:26 +0200)]
Add an option to turn on CLEAR_AT_GC.
Zoltan Varga [Sun, 26 Sep 2010 18:25:53 +0000 (20:25 +0200)]
Improve logging. Treat the result of an LDIND.REF as a ref. Treat methods with finally clauses very conservatively again.
Zoltan Varga [Sat, 25 Sep 2010 20:33:11 +0000 (22:33 +0200)]
Rename a few fields.
Zoltan Varga [Sat, 25 Sep 2010 15:29:37 +0000 (17:29 +0200)]
Make GC maps for methods with finally clauses more precise.
Zoltan Varga [Sat, 25 Sep 2010 03:17:13 +0000 (05:17 +0200)]
Optimize the frames with finally clauses a bit so at least the non-ref slots are scanned precisely.
Zoltan Varga [Sat, 25 Sep 2010 00:05:40 +0000 (02:05 +0200)]
Don't assert in describe_ptr () for oldspace pointers.
Zoltan Varga [Sat, 25 Sep 2010 00:04:20 +0000 (02:04 +0200)]
Allow wrapper frames to be precisely tracked.
Zoltan Varga [Fri, 24 Sep 2010 23:07:45 +0000 (01:07 +0200)]
Fix regressions introduced by the last few changes. Mark THROW/RETHROW as call sites.
Zoltan Varga [Fri, 24 Sep 2010 21:02:35 +0000 (23:02 +0200)]
Treat the frame reg as precisely tracked.
Zoltan Varga [Fri, 24 Sep 2010 20:03:40 +0000 (22:03 +0200)]
Encode regmasks compactly.
Zoltan Varga [Fri, 24 Sep 2010 18:29:03 +0000 (20:29 +0200)]
Registers are now NOREF by default outside their live range.
Zoltan Varga [Fri, 24 Sep 2010 00:37:01 +0000 (02:37 +0200)]
Remove a debug printf.
Zoltan Varga [Fri, 24 Sep 2010 00:36:37 +0000 (02:36 +0200)]
Fix a warning.
Zoltan Varga [Fri, 24 Sep 2010 00:35:15 +0000 (02:35 +0200)]
Disable heavy logging.
Zoltan Varga [Fri, 24 Sep 2010 00:20:48 +0000 (02:20 +0200)]
Fix logging and add more logging to the liveness pass.
Zoltan Varga [Wed, 22 Sep 2010 22:18:53 +0000 (00:18 +0200)]
Create GC maps for methods with nono-finally clauses.
Zoltan Varga [Wed, 22 Sep 2010 21:34:43 +0000 (23:34 +0200)]
Add comments about reducing the size of the GC maps.
Zoltan Varga [Wed, 22 Sep 2010 20:31:18 +0000 (22:31 +0200)]
Fix some FIXMEs.
Zoltan Varga [Wed, 22 Sep 2010 19:18:59 +0000 (21:18 +0200)]
Add a free callback to sgen, use it to free our TLS data.
Zoltan Varga [Wed, 22 Sep 2010 15:52:44 +0000 (17:52 +0200)]
Optimize the size of TlsData.
Zoltan Varga [Wed, 22 Sep 2010 15:42:14 +0000 (17:42 +0200)]
Optimize GC map memory usage a bit more, add more memory usage stats.
Zoltan Varga [Wed, 22 Sep 2010 01:40:07 +0000 (03:40 +0200)]
Update some comments.
Zoltan Varga [Wed, 22 Sep 2010 01:37:37 +0000 (03:37 +0200)]
Rename StackSlotType to GCSlotType.
Zoltan Varga [Wed, 22 Sep 2010 01:31:01 +0000 (03:31 +0200)]
Add the conservative-stack-mark option to the MONO_GC_DEBUG help.
Zoltan Varga [Wed, 22 Sep 2010 00:36:38 +0000 (02:36 +0200)]
Refactor mini_gc_create_gc_map () into smaller functions.
Zoltan Varga [Wed, 22 Sep 2010 00:26:08 +0000 (02:26 +0200)]
Implement precise scanning of param area slots. Fix lots of bugs.
Zoltan Varga [Tue, 21 Sep 2010 20:00:52 +0000 (22:00 +0200)]
Don't treat the saved ebp slot as pinned. Fix support for noref structs smaller than a pointer. Don't treat 'this' in gshared methods as pinned. Fix the handling of volatile variables.
Zoltan Varga [Mon, 20 Sep 2010 22:13:48 +0000 (00:13 +0200)]
Fix order of entries in GCEncodedMap.
Zoltan Varga [Mon, 20 Sep 2010 22:12:32 +0000 (00:12 +0200)]
Update comments.
Zoltan Varga [Mon, 20 Sep 2010 22:00:26 +0000 (00:00 +0200)]
Split the marking function into two functions, save information during the conservative pass to avoid doing a stack walk during the precise pass.
Zoltan Varga [Mon, 20 Sep 2010 01:05:24 +0000 (03:05 +0200)]
Omit empty columns from the register bitmaps.
Zoltan Varga [Mon, 20 Sep 2010 00:44:28 +0000 (02:44 +0200)]
Fix a typo.
Zoltan Varga [Mon, 20 Sep 2010 00:06:53 +0000 (02:06 +0200)]
Embed the callsite table after the gc map.
Zoltan Varga [Sun, 19 Sep 2010 19:57:48 +0000 (21:57 +0200)]
Implement compression of the fixed fields in the GCMap struct.
Zoltan Varga [Sun, 19 Sep 2010 13:24:53 +0000 (15:24 +0200)]
Compute the GC bitmap offsets instead of storing them inside the GCMap structure, to reduce its size.
Zoltan Varga [Sat, 18 Sep 2010 19:49:13 +0000 (21:49 +0200)]
First pass at reducing the memory usage of GC Maps.
Remove constants fields, embed the bitmap array after the structure, use
offsets into the bitmap array instead of pointers, encode the callsites
table using i8/i16 if possible.
Zoltan Varga [Sat, 18 Sep 2010 12:37:49 +0000 (14:37 +0200)]
Rewrite everything. Instead of computing liveness intervals, compute the set of live variables at each call site, and use this to create gc bitmaps which are only precise at call sites.
Zoltan Varga [Fri, 17 Sep 2010 13:12:35 +0000 (15:12 +0200)]
Trim starting and ending NOREF columns from the GC bitmaps.
Zoltan Varga [Fri, 17 Sep 2010 12:34:42 +0000 (14:34 +0200)]
Merge process_locals () and process_arguments ().
Zoltan Varga [Fri, 17 Sep 2010 03:51:10 +0000 (05:51 +0200)]
Don't treat 'this' as byref. Don't treat ref regs as pinned.
Zoltan Varga [Fri, 17 Sep 2010 01:32:39 +0000 (03:32 +0200)]
Add a new regbank for spill slots holding managed pointers. Treat those as PIN.
Make LDELEMA return an MP.
Zoltan Varga [Thu, 16 Sep 2010 14:59:58 +0000 (16:59 +0200)]
Generate liveness info for non-ref variables allocated to registers.
Zoltan Varga [Thu, 16 Sep 2010 12:25:03 +0000 (14:25 +0200)]
Update comments.
Zoltan Varga [Thu, 16 Sep 2010 12:11:44 +0000 (14:11 +0200)]
Implement precise scanning of registers by scanning the stack slots where they are saved.
Zoltan Varga [Wed, 15 Sep 2010 23:57:56 +0000 (01:57 +0200)]
Mark some LMF fields as NOREF.
Zoltan Varga [Wed, 15 Sep 2010 04:40:24 +0000 (06:40 +0200)]
Mark non-ref spill slots as NOREF. Mark copies of ref vregs as ref during SSA construction. Treat 'this' as a ref.