vm: Fix unused variable warnings on Windows.
parent
0939974c65
commit
2a409c79e0
|
@ -56,6 +56,8 @@ void factor_vm::primitive_callstack_to_array() {
|
||||||
cell size,
|
cell size,
|
||||||
code_block* owner,
|
code_block* owner,
|
||||||
cell addr) {
|
cell addr) {
|
||||||
|
(void)frame_top;
|
||||||
|
(void)size;
|
||||||
data_root<object> executing_quot(owner->owner_quot(), this);
|
data_root<object> executing_quot(owner->owner_quot(), this);
|
||||||
data_root<object> executing(owner->owner, this);
|
data_root<object> executing(owner->owner, this);
|
||||||
data_root<object> scan(owner->scan(this, addr), this);
|
data_root<object> scan(owner->scan(this, addr), this);
|
||||||
|
|
|
@ -62,7 +62,7 @@ struct code_block {
|
||||||
header = (header & 0xFFFFFF) | (frame_size << 20);
|
header = (header & 0xFFFFFF) | (frame_size << 20);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Fixup> cell size(Fixup fixup) const { return size(); }
|
template <typename Fixup> cell size(Fixup fixup) const { (void)fixup; return size(); }
|
||||||
|
|
||||||
cell entry_point() const { return (cell)(this + 1); }
|
cell entry_point() const { return (cell)(this + 1); }
|
||||||
|
|
||||||
|
|
|
@ -71,6 +71,8 @@ void code_heap::sweep() {
|
||||||
|
|
||||||
void code_heap::verify_all_blocks_set() {
|
void code_heap::verify_all_blocks_set() {
|
||||||
auto all_blocks_set_verifier = [&](code_block* block, cell size) {
|
auto all_blocks_set_verifier = [&](code_block* block, cell size) {
|
||||||
|
(void)block;
|
||||||
|
(void)size;
|
||||||
FACTOR_ASSERT(all_blocks.find((cell)block) != all_blocks.end());
|
FACTOR_ASSERT(all_blocks.find((cell)block) != all_blocks.end());
|
||||||
};
|
};
|
||||||
allocator->iterate(all_blocks_set_verifier, no_fixup());
|
allocator->iterate(all_blocks_set_verifier, no_fixup());
|
||||||
|
@ -102,6 +104,7 @@ cell code_heap::frame_predecessor(cell frame_top) {
|
||||||
void code_heap::initialize_all_blocks_set() {
|
void code_heap::initialize_all_blocks_set() {
|
||||||
all_blocks.clear();
|
all_blocks.clear();
|
||||||
auto all_blocks_set_inserter = [&](code_block* block, cell size) {
|
auto all_blocks_set_inserter = [&](code_block* block, cell size) {
|
||||||
|
(void)size;
|
||||||
all_blocks.insert((cell)block);
|
all_blocks.insert((cell)block);
|
||||||
};
|
};
|
||||||
allocator->iterate(all_blocks_set_inserter, no_fixup());
|
allocator->iterate(all_blocks_set_inserter, no_fixup());
|
||||||
|
@ -115,6 +118,7 @@ void code_heap::initialize_all_blocks_set() {
|
||||||
// If generic words were redefined, inline caches need to be reset.
|
// If generic words were redefined, inline caches need to be reset.
|
||||||
void factor_vm::update_code_heap_words(bool reset_inline_caches) {
|
void factor_vm::update_code_heap_words(bool reset_inline_caches) {
|
||||||
auto word_updater = [&](code_block* block, cell size) {
|
auto word_updater = [&](code_block* block, cell size) {
|
||||||
|
(void)size;
|
||||||
update_word_references(block, reset_inline_caches);
|
update_word_references(block, reset_inline_caches);
|
||||||
};
|
};
|
||||||
each_code_block(word_updater);
|
each_code_block(word_updater);
|
||||||
|
@ -182,6 +186,7 @@ void factor_vm::primitive_code_room() {
|
||||||
|
|
||||||
void factor_vm::primitive_strip_stack_traces() {
|
void factor_vm::primitive_strip_stack_traces() {
|
||||||
auto stack_trace_stripper = [](code_block* block, cell size) {
|
auto stack_trace_stripper = [](code_block* block, cell size) {
|
||||||
|
(void)size;
|
||||||
block->owner = false_object;
|
block->owner = false_object;
|
||||||
};
|
};
|
||||||
each_code_block(stack_trace_stripper);
|
each_code_block(stack_trace_stripper);
|
||||||
|
@ -191,6 +196,7 @@ void factor_vm::primitive_strip_stack_traces() {
|
||||||
void factor_vm::primitive_code_blocks() {
|
void factor_vm::primitive_code_blocks() {
|
||||||
std::vector<cell> objects;
|
std::vector<cell> objects;
|
||||||
auto code_block_accumulator = [&](code_block* block, cell size) {
|
auto code_block_accumulator = [&](code_block* block, cell size) {
|
||||||
|
(void)size;
|
||||||
objects.push_back(block->owner);
|
objects.push_back(block->owner);
|
||||||
objects.push_back(block->parameters);
|
objects.push_back(block->parameters);
|
||||||
objects.push_back(block->relocation);
|
objects.push_back(block->relocation);
|
||||||
|
|
|
@ -109,6 +109,8 @@ void factor_vm::collect_compact_impl() {
|
||||||
// Slide everything in tenured space up, and update data and code heap
|
// Slide everything in tenured space up, and update data and code heap
|
||||||
// pointers inside objects.
|
// pointers inside objects.
|
||||||
auto compact_object_func = [&](object* old_addr, object* new_addr, cell size) {
|
auto compact_object_func = [&](object* old_addr, object* new_addr, cell size) {
|
||||||
|
(void)old_addr;
|
||||||
|
(void)size;
|
||||||
forwarder.visit_slots(new_addr);
|
forwarder.visit_slots(new_addr);
|
||||||
forwarder.visit_object_code_block(new_addr);
|
forwarder.visit_object_code_block(new_addr);
|
||||||
tenured->starts.record_object_start_offset(new_addr);
|
tenured->starts.record_object_start_offset(new_addr);
|
||||||
|
@ -120,6 +122,7 @@ void factor_vm::collect_compact_impl() {
|
||||||
auto compact_code_func = [&](code_block* old_addr,
|
auto compact_code_func = [&](code_block* old_addr,
|
||||||
code_block* new_addr,
|
code_block* new_addr,
|
||||||
cell size) {
|
cell size) {
|
||||||
|
(void)size;
|
||||||
forwarder.visit_code_block_objects(new_addr);
|
forwarder.visit_code_block_objects(new_addr);
|
||||||
cell old_entry_point = old_addr->entry_point();
|
cell old_entry_point = old_addr->entry_point();
|
||||||
forwarder.visit_instruction_operands(new_addr, old_entry_point);
|
forwarder.visit_instruction_operands(new_addr, old_entry_point);
|
||||||
|
@ -136,6 +139,7 @@ void factor_vm::collect_compact_impl() {
|
||||||
// the code heap. Since the code heap has now been compacted, those
|
// the code heap. Since the code heap has now been compacted, those
|
||||||
// pointers are invalid and we need to update them.
|
// pointers are invalid and we need to update them.
|
||||||
auto callback_updater = [&](code_block* stub, cell size) {
|
auto callback_updater = [&](code_block* stub, cell size) {
|
||||||
|
(void)size;
|
||||||
callbacks->update(stub);
|
callbacks->update(stub);
|
||||||
};
|
};
|
||||||
callbacks->allocator->iterate(callback_updater, no_fixup());
|
callbacks->allocator->iterate(callback_updater, no_fixup());
|
||||||
|
|
|
@ -3,7 +3,7 @@ namespace factor {
|
||||||
#define CALLSTACK_BOTTOM(ctx) \
|
#define CALLSTACK_BOTTOM(ctx) \
|
||||||
(ctx->callstack_seg->end - sizeof(cell) * 5)
|
(ctx->callstack_seg->end - sizeof(cell) * 5)
|
||||||
|
|
||||||
inline static void flush_icache(cell start, cell len) {}
|
inline static void flush_icache(cell start, cell len) { (void)start; (void)len; }
|
||||||
|
|
||||||
// In the instruction sequence:
|
// In the instruction sequence:
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@ void factor_vm::print_alien(ostream& out, alien* alien, cell nesting) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void factor_vm::print_byte_array(ostream& out, byte_array* array, cell nesting) {
|
void factor_vm::print_byte_array(ostream& out, byte_array* array, cell nesting) {
|
||||||
|
(void)nesting;
|
||||||
cell length = array->capacity;
|
cell length = array->capacity;
|
||||||
cell i;
|
cell i;
|
||||||
bool trimmed;
|
bool trimmed;
|
||||||
|
|
|
@ -263,7 +263,7 @@ void free_list_allocator<Block>::sweep(Iterator& iter) {
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename Block> void free_list_allocator<Block>::sweep() {
|
template <typename Block> void free_list_allocator<Block>::sweep() {
|
||||||
auto null_sweep = [](Block* free_block, cell size) { };
|
auto null_sweep = [](Block* free_block, cell size) { (void)free_block; (void)size; };
|
||||||
sweep(null_sweep);
|
sweep(null_sweep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -177,6 +177,7 @@ void factor_vm::fixup_heaps(cell data_offset, cell code_offset) {
|
||||||
visitor.visit_all_roots();
|
visitor.visit_all_roots();
|
||||||
|
|
||||||
auto start_object_updater = [&](object *obj, cell size) {
|
auto start_object_updater = [&](object *obj, cell size) {
|
||||||
|
(void)size;
|
||||||
data->tenured->starts.record_object_start_offset(obj);
|
data->tenured->starts.record_object_start_offset(obj);
|
||||||
visitor.visit_slots(obj);
|
visitor.visit_slots(obj);
|
||||||
switch (obj->type()) {
|
switch (obj->type()) {
|
||||||
|
@ -201,6 +202,7 @@ void factor_vm::fixup_heaps(cell data_offset, cell code_offset) {
|
||||||
data->tenured->iterate(start_object_updater, fixup);
|
data->tenured->iterate(start_object_updater, fixup);
|
||||||
|
|
||||||
auto updater = [&](code_block* compiled, cell size) {
|
auto updater = [&](code_block* compiled, cell size) {
|
||||||
|
(void)size;
|
||||||
visitor.visit_code_block_objects(compiled);
|
visitor.visit_code_block_objects(compiled);
|
||||||
cell rel_base = compiled->entry_point() - fixup.code_offset;
|
cell rel_base = compiled->entry_point() - fixup.code_offset;
|
||||||
visitor.visit_instruction_operands(compiled, rel_base);
|
visitor.visit_instruction_operands(compiled, rel_base);
|
||||||
|
|
|
@ -16,6 +16,10 @@ VM_C_API int wmain(int argc, wchar_t** argv) {
|
||||||
|
|
||||||
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
|
||||||
LPSTR lpCmdLine, int nCmdShow) {
|
LPSTR lpCmdLine, int nCmdShow) {
|
||||||
|
(void)hInstance;
|
||||||
|
(void)hPrevInstance;
|
||||||
|
(void)lpCmdLine;
|
||||||
|
(void)nCmdShow;
|
||||||
int argc;
|
int argc;
|
||||||
wchar_t** argv = CommandLineToArgvW(GetCommandLine(), &argc);
|
wchar_t** argv = CommandLineToArgvW(GetCommandLine(), &argc);
|
||||||
wmain(argc, argv);
|
wmain(argc, argv);
|
||||||
|
|
|
@ -111,6 +111,7 @@ void factor_vm::primitive_become() {
|
||||||
each_object(object_become_func);
|
each_object(object_become_func);
|
||||||
|
|
||||||
auto code_block_become_func = [&](code_block* compiled, cell size) {
|
auto code_block_become_func = [&](code_block* compiled, cell size) {
|
||||||
|
(void)size;
|
||||||
visitor.visit_code_block_objects(compiled);
|
visitor.visit_code_block_objects(compiled);
|
||||||
visitor.visit_embedded_literals(compiled);
|
visitor.visit_embedded_literals(compiled);
|
||||||
code->write_barrier(compiled);
|
code->write_barrier(compiled);
|
||||||
|
|
|
@ -194,6 +194,8 @@ typedef enum _EXCEPTION_DISPOSITION {
|
||||||
|
|
||||||
LONG factor_vm::exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
|
LONG factor_vm::exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
|
||||||
void* dispatch) {
|
void* dispatch) {
|
||||||
|
(void)frame;
|
||||||
|
(void)dispatch;
|
||||||
switch (e->ExceptionCode) {
|
switch (e->ExceptionCode) {
|
||||||
case EXCEPTION_ACCESS_VIOLATION:
|
case EXCEPTION_ACCESS_VIOLATION:
|
||||||
set_memory_protection_error(e->ExceptionInformation[1], c->EIP);
|
set_memory_protection_error(e->ExceptionInformation[1], c->EIP);
|
||||||
|
@ -242,7 +244,7 @@ VM_C_API LONG exception_handler(PEXCEPTION_RECORD e, void* frame, PCONTEXT c,
|
||||||
// On Unix SIGINT (ctrl-c) automatically interrupts blocking io system
|
// On Unix SIGINT (ctrl-c) automatically interrupts blocking io system
|
||||||
// calls. It doesn't on Windows, so we need to manually send some
|
// calls. It doesn't on Windows, so we need to manually send some
|
||||||
// cancellation requests to unblock the thread.
|
// cancellation requests to unblock the thread.
|
||||||
VOID CALLBACK dummy_cb (ULONG_PTR dwParam) { }
|
VOID CALLBACK dummy_cb(ULONG_PTR dwParam) { (void)dwParam; }
|
||||||
|
|
||||||
// CancelSynchronousIo is not in Windows XP
|
// CancelSynchronousIo is not in Windows XP
|
||||||
#if _WIN32_WINNT >= 0x0600
|
#if _WIN32_WINNT >= 0x0600
|
||||||
|
@ -261,7 +263,7 @@ static void wake_up_thread(HANDLE thread) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
static void wake_up_thread(HANDLE thread) {}
|
static void wake_up_thread(HANDLE thread) { (void)thread; }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static BOOL WINAPI ctrl_handler(DWORD dwCtrlType) {
|
static BOOL WINAPI ctrl_handler(DWORD dwCtrlType) {
|
||||||
|
|
|
@ -73,6 +73,9 @@ void factor_vm::record_sample(bool prolog_p) {
|
||||||
|
|
||||||
bool skip_p = prolog_p;
|
bool skip_p = prolog_p;
|
||||||
auto recorder = [&](cell frame_top, cell size, code_block* owner, cell addr) {
|
auto recorder = [&](cell frame_top, cell size, code_block* owner, cell addr) {
|
||||||
|
(void)frame_top;
|
||||||
|
(void)size;
|
||||||
|
(void)addr;
|
||||||
if (skip_p)
|
if (skip_p)
|
||||||
skip_p = false;
|
skip_p = false;
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -206,6 +206,7 @@ template <typename Fixup> void slot_visitor<Fixup>::visit_all_roots() {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto callback_slot_visitor = [&](code_block* stub, cell size) {
|
auto callback_slot_visitor = [&](code_block* stub, cell size) {
|
||||||
|
(void)size;
|
||||||
visit_handle(&stub->owner);
|
visit_handle(&stub->owner);
|
||||||
};
|
};
|
||||||
parent->callbacks->allocator->iterate(callback_slot_visitor, no_fixup());
|
parent->callbacks->allocator->iterate(callback_slot_visitor, no_fixup());
|
||||||
|
@ -245,6 +246,7 @@ template <typename Fixup> struct call_frame_slot_visitor {
|
||||||
// [size]
|
// [size]
|
||||||
|
|
||||||
void operator()(cell frame_top, cell size, code_block* owner, cell addr) {
|
void operator()(cell frame_top, cell size, code_block* owner, cell addr) {
|
||||||
|
(void)size;
|
||||||
cell return_address = owner->offset(addr);
|
cell return_address = owner->offset(addr);
|
||||||
|
|
||||||
code_block* compiled =
|
code_block* compiled =
|
||||||
|
@ -359,6 +361,7 @@ template <typename Fixup> struct call_frame_code_block_visitor {
|
||||||
call_frame_code_block_visitor(Fixup fixup) : fixup(fixup) {}
|
call_frame_code_block_visitor(Fixup fixup) : fixup(fixup) {}
|
||||||
|
|
||||||
void operator()(cell frame_top, cell size, code_block* owner, cell addr) {
|
void operator()(cell frame_top, cell size, code_block* owner, cell addr) {
|
||||||
|
(void)size;
|
||||||
code_block* compiled =
|
code_block* compiled =
|
||||||
Fixup::translated_code_block_map ? owner : fixup.fixup_code(owner);
|
Fixup::translated_code_block_map ? owner : fixup.fixup_code(owner);
|
||||||
cell fixed_addr = compiled->address_for_offset(owner->offset(addr));
|
cell fixed_addr = compiled->address_for_offset(owner->offset(addr));
|
||||||
|
|
Loading…
Reference in New Issue