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