Commit Graph

1877 Commits (0bed0870bb79c93818fc523df76df5b6f48c4b76)

Author SHA1 Message Date
Björn Lindqvist a4802aba68 VM: undoing 0274e889b9 (#1513) 2016-11-08 13:37:52 +01:00
Björn Lindqvist 2308ca06e0 Revert "VM: undoing 22bb0cfecf (#1513)"
This reverts commit e9c72baf2e.
2016-11-07 23:43:50 +01:00
Björn Lindqvist e9c72baf2e VM: undoing 22bb0cfecf (#1513) 2016-11-07 14:18:10 +01:00
John Benediktsson 4fee8bd2cb vm: change where we set safepoints_fep to false to allow old Ctrl-C behavior. 2016-11-01 19:21:47 -07:00
Alexander Iljin 0245a93bee VM: add enable-ctrl-break and disable-ctrl-break primitives
These are for the Listener to wrap around user-supplied quotations. Nesting
is not supported at the moment.
2016-11-01 16:53:00 -07:00
Alexander Iljin 526a995d64 VM: implement a ctrl-break handler thread (#1573) 2016-11-01 16:53:00 -07:00
Björn Lindqvist e9cd20604c VM: factor_vm::compile_inline_cache() can be removed 2016-10-31 16:16:42 +01:00
Björn Lindqvist ffab2bb7e0 VM: code_block::optimized_p() method isn't needed 2016-10-31 14:18:39 +01:00
John Benediktsson 55fdf79afd vm: fix missing CAPS enum. 2016-10-26 19:52:18 -07:00
Björn Lindqvist f070a47ec0 VM: add marking as a timed gc phase
I think that makes sense because most time when doing a full gc is spent
marking.
2016-10-20 07:46:21 +02:00
Björn Lindqvist 752c895d23 VM: refactor gc_event so that the phase times are stored in an array
So that you don't need a new method for each gc phase to time.
2016-10-20 00:34:18 +02:00
Björn Lindqvist 51408b66cb VM: the jit class doesn't need to store the code block type 2016-10-19 09:28:59 +02:00
Björn Lindqvist 453eca66c4 VM: changing case of code_block_type 2016-10-19 09:14:58 +02:00
Björn Lindqvist f147bd4404 VM: uppercasing gc_op 2016-10-19 09:09:32 +02:00
Björn Lindqvist df171b0485 VM: changing case of enums values bignum_comparison and generation
It is consistent if all enum values have all uppercase names.
2016-10-19 08:57:33 +02:00
Björn Lindqvist 4f6381587c VM: removing update_code_roots_for_sweep() 2016-10-19 08:12:40 +02:00
Björn Lindqvist 7d9bad465c VM: refactoring allot_code_block() to work like allot_large_object()
To make it possible to eventually grow the code heap
2016-10-17 08:03:48 +02:00
Björn Lindqvist 026b626203 VM: move allot_code_block() to the allot.hpp file 2016-10-17 08:03:48 +02:00
Björn Lindqvist 3911f7b88c VM: init_data_heap() isn't needed 2016-10-14 13:52:44 +02:00
Björn Lindqvist 67bb9a7c71 VM: checking addresses differ before memmoving
It appears to speed up compaction a bit in cases where only a few
objects need to move.
2016-10-14 13:52:44 +02:00
Björn Lindqvist aace892527 VM: rename of collect_growing_heap_op and collect_growing_heap()
The idea is to "make room" for collect_growing_code_heap_op and
collect_growing_code_heap() to enable code heap growth.
2016-10-13 02:13:09 +02:00
Björn Lindqvist 55e6ccb708 VM: remove the reversing from sampling profiler callstack collection #452 2016-10-13 01:34:55 +02:00
Björn Lindqvist 46105b62f6 VM: change callstack>array primitive so it doesn't reverse anymore
This fixes one part of the #452 bug.
2016-10-13 01:34:55 +02:00
Björn Lindqvist 98db13fe9d VM: merge of clone_object() and primitive_clone() 2016-10-13 01:34:55 +02:00
Björn Lindqvist bbd71ae975 math.parser: (format-float) doesn't need to zero-terminate returned byte-array 2016-10-09 00:47:37 +02:00
Björn Lindqvist ac44f3069a VM: indent comment and change error message 2016-10-08 07:13:08 +02:00
Björn Lindqvist ae9818db87 VM: simpler code for find_object_containing_card 2016-10-08 07:11:47 +02:00
Björn Lindqvist 8cacf7bf8d VM: simpler code for reallot_array 2016-10-08 07:10:26 +02:00
Björn Lindqvist c2f4fdb172 VM: merge of the free_list and free_list_allocator classes
Seem simpler to have all the free list stuff in one class rather than
split it over two classes.
2016-10-08 07:04:28 +02:00
Björn Lindqvist f0eec26f3c VM: reorg and more comments 2016-10-08 07:04:28 +02:00
Björn Lindqvist 78d9065db0 VM: UAP_SET_TOC_POINTER appears to be a noop on all platforms 2016-09-29 07:14:30 +02:00
Björn Lindqvist 9eab4b5652 VM: make visit_instruction_operands() skip over uninitialized blocks
It will crash otherwise when compacting the code heap.
2016-09-29 06:35:35 +02:00
Björn Lindqvist 603f5f9bbf VM: better? comment for uninitialized_blocks 2016-09-28 20:38:52 +02:00
Björn Lindqvist 91843ef22d VM: removing end_gc() 2016-09-28 05:22:32 +02:00
Björn Lindqvist 8899914697 VM: better start_gc_again() code 2016-09-28 05:20:12 +02:00
Björn Lindqvist c6faf98c86 VM: return the loop, it is needed for best performance 2016-09-26 05:16:33 +02:00
Björn Lindqvist a6df4168af bootstrap.layouts: sync note in comments 2016-09-25 20:10:16 +02:00
Björn Lindqvist d71bd83f57 VM: removing the 1-arg overload of iterate() (better to be explicit about the fixup) 2016-09-22 17:03:38 +02:00
Björn Lindqvist 764a604467 VM: moving initialize_code_blocks() into primitive_modify_code_heap() 2016-09-22 15:16:07 +02:00
Björn Lindqvist f8b94c2679 VM: allot_large_object fits better in the allot.hpp file 2016-09-22 13:13:55 +02:00
Björn Lindqvist c02d913579 VM: big refactoring removing the gc_workhorse
Each collector were a slot_visitor containing a gc_workhorse containing
a policy class. This commit removes the gc_workhorse and the policies
and instead "inlines" the common code in the collector bodies. So there
is more code duplication, but the control flow doesn't "jump around" so
much so it is easier to understand. It also makes the nursery gc faster
because its collection code can be optimized better without the
workhorse/policy system.
2016-09-22 13:12:59 +02:00
Björn Lindqvist a0df88f20b VM: renaming verify_memory_protection_error to set_memory_protection_error
and sets the signal_fault_addr and signal_fault_pc in the function.
2016-09-22 13:12:59 +02:00
Björn Lindqvist b2bb1f8ff4 VM: simplifying the load_image() code 2016-09-16 06:27:46 +02:00
Björn Lindqvist ab7e077b1d Docs: fixing docs & comments to work with new stack clearing 2016-09-12 02:11:51 +02:00
Björn Lindqvist 349f99661d compiler.*: Remove the scrubbing part of the GC maps
Instead of generating GC maps which describe which stack locations that
are uninitialized, we emit ##clear instructions for those locations in
front of ##call-gc instructions. This makes the context root scanning
much simpler because the GC can assume that all stack slots are
initialized. It also removes the compiler.cfg.stacks.vacant pass and
seem to reduce the image size slightly because many fewer GC maps needs
to be emitted.
2016-09-11 20:34:44 +02:00
Björn Lindqvist bc8525eb02 VM: the small return_address_index function can be implemented in the header 2016-09-10 03:18:18 +02:00
Alexander Iljin 0d57734dab vm: replace block comments /**/ with line comments // 2016-09-09 05:47:52 +02:00
Alexander Iljin e0acf4f328 Revert "vm: replace line comments // with block comments /**/ for consintency"
This reverts commit 7ee4e5dea5.
2016-09-09 05:47:52 +02:00
Alexander Iljin 897d0d6eeb Revert "vm: fix typo from c++ comment patch causing compile failure."
This reverts commit 4e48e836b9.
2016-09-09 05:47:52 +02:00
Björn Lindqvist 0a5f1689e1 VM: init_inline_caching is not needed 2016-08-19 02:58:19 +02:00