Commit Graph

1080 Commits (758a99dbfac6debd3077d3dd5e9c5d5e1fa0f2cb)

Author SHA1 Message Date
Slava Pestov ded9a1eca9 vm: remove unnecessary call to compile_all_words() from primitive_become() 2010-01-07 13:49:29 +13:00
Slava Pestov 72311506d2 vm: ensure that non-optimized calls to generic words which have not yet been compiled can still work 2010-01-06 23:49:14 +13:00
Slava Pestov a9f90026df Update x86-32 for assembly entry point changes 2010-01-06 17:55:20 +13:00
Slava Pestov d2baa6dde5 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Slava Pestov 8a6c487a48 Merge branch 'master' of git://factorcode.org/git/factor 2010-01-03 23:21:31 +13:00
Slava Pestov 9399a68786 Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Doug Coleman 1329e0dcb3 remove warning 2009-12-28 10:02:36 -06:00
Doug Coleman 9c192fe170 Merge branch 'master' of git://factorcode.org/git/factor 2009-12-28 09:58:19 -06:00
Doug Coleman 667e871291 avoid integer division in nano_count on windows 2009-12-28 09:56:10 -06:00
Slava Pestov d0c1c6b766 PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes 2009-12-28 08:08:15 -06:00
Slava Pestov faa9d942a2 Updating non-optimizing PowerPC backend for register variable removal (untested) 2009-12-28 12:40:45 +13:00
Slava Pestov dee6910cfe Merge branch 'eliminating_register_variables' 2009-12-27 01:29:53 +13:00
Slava Pestov d5489b3ecd Updating x86-64 port for global register variable removal 2009-12-27 01:17:42 +13:00
Slava Pestov 8b913f5fc6 Fix bug in c_to_factor 2009-12-26 15:24:46 +13:00
Slava Pestov 2d8b44e5b7 vm: code cleanup 2009-12-26 15:24:21 +13:00
Doug Coleman 92393c7df7 Add 0xe06d7363 to debugger.windows. Remove case 0xe06d7363 from SEH. 2009-12-23 14:04:52 -06:00
Slava Pestov 1453154376 vm: remove VM_ASM_API 2009-12-24 01:37:24 +13:00
Doug Coleman d7f6c17a71 remove debug output 2009-12-22 14:39:30 -06:00
Doug Coleman 984a458394 try a different approach to fix the windows monotonic counter 2009-12-22 14:36:33 -06:00
Doug Coleman c92eae83b8 Ignore yet another undocumented exception. Tricks of the trade, I guess. 2009-12-22 13:33:39 -06:00
Slava Pestov 583f999b1e Merge branch 'master' into eliminating_register_variables 2009-12-22 15:50:15 +13:00
Slava Pestov c6c351ffb0 vm: if an aging GC is triggered while uninitialized code blocks are in the code heap, the code heap remembered set becomes out of date, resulting in code blocks pointing at invalid data 2009-12-22 15:49:21 +13:00
Slava Pestov 8f449f1a82 Get optimizing compiler working without global register variables in VM 2009-12-22 15:42:49 +13:00
Slava Pestov a942e2c34d vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler 2009-12-19 10:59:56 +13:00
Slava Pestov 9a149a47ab Merge branch 'master' of git://factorcode.org/git/factor 2009-12-15 07:21:17 -05:00
Slava Pestov 31a260b74c vm: big overhaul of non-optimizing compiler
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Slava Pestov 08a81abb7f Merge branch 'master' of git://factorcode.org/git/factor 2009-12-14 01:09:40 -06:00
Slava Pestov 0244c90414 vm: fep out if monotonic counter decreases 2009-12-14 01:09:04 -06:00
Doug Coleman 1b5a9b42c8 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	vm/os-windows-nt.cpp
2009-12-13 20:45:40 -06:00
Doug Coleman 6ba4e7c8c4 workaround for QueryPerformanceCounter: if the high part of the count doesn't increment when the low part overflows, keep track of this and add the correction on future calls to nano_count 2009-12-13 20:42:51 -06:00
Doug Coleman f749d14e86 fix a couple of warnings on win64 2009-12-13 20:00:02 -06:00
Slava Pestov ffe5fb62ca vm/os-windows-nt.cpp: fix formatting 2009-12-13 16:52:59 -06:00
Slava Pestov 1994fd1c73 fix compiler warning on linux 2009-12-13 16:10:30 -06:00
Slava Pestov ace18280e8 vm: OS X version ccheck was failing on 10.5.0 2009-12-11 19:31:19 -05:00
Slava Pestov 705360e1de vm: grow the heap if a full collection doesn't reclaim enough space 2009-12-05 19:03:53 -05:00
Slava Pestov 20711a9bfd vm: remove DEFPUSHPOP macro 2009-12-04 20:56:48 -05:00
Slava Pestov cc7dea4ce1 vm: be more eager to do a full collection to avoid fragmentation leading to heap growth 2009-12-04 03:41:19 -05:00
Slava Pestov f50e144288 vm: fix walker 2009-12-02 18:43:45 -05:00
Slava Pestov 9fcec9825c vm: PowerPC fixes 2009-12-02 16:24:42 -06:00
Slava Pestov f8d6f538fb Fix typo in instruction_operand::load_value_masked() 2009-12-02 09:24:23 -05:00
Slava Pestov 174e2f5f3d vm: fix instruction_operand::load_value() for PowerPC relocation classes 2009-12-02 09:20:33 -05:00
Slava Pestov 5180f80180 Get modify-code-heap working if stack traces are stripped (but then it won't update existing code blocks), and rename code_heap::code_heap_free() to code_heap::free() 2009-12-02 05:27:48 -06:00
Slava Pestov daf47a539c RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further 2009-12-02 04:55:48 -06:00
Slava Pestov 912b1265fc Split literal table into literal and parameter tables, literal table is discarded after code block initialization 2009-12-02 04:28:15 -06:00
Slava Pestov c04c15c52d vm: update callback stub machine code at the end of compaction to prevent it from seeing an inconsistent data stack 2009-12-02 03:31:57 -06:00
Slava Pestov 8a25e8365a vm: Clean up more code duplication and rename a few methods 2009-12-02 01:17:30 -06:00
Slava Pestov 5533a43a86 vm: factor out common code between image loading and initial code block relocation 2009-12-02 00:54:16 -06:00
Slava Pestov ca7bca6738 Big cleanup of literal table and relocation-related code
- new way to iterate over instruction_operands cleans up relocation code
- move some methods out of the VM class to clean up code
- if debugging is on, die earlier if attempting to allocate inside GC
- callback heap entries are now code_blocks
- replace block_granularity with data_alignment
2009-12-02 00:48:41 -06:00
Slava Pestov 8d41693ee3 vm: growing heap no longer uses relocate_code_block() 2009-11-28 19:48:26 -06:00
Slava Pestov e33d4d265b vm: fix some typos 2009-11-27 22:54:24 -06:00
Slava Pestov 3289186df6 Merge branch 'no_literal_table' of git://factorcode.org/git/factor into no_literal_table 2009-11-27 18:33:34 -06:00
Slava Pestov 77e4430c86 Merge branch 'master' of git://factorcode.org/git/factor into no_literal_table 2009-11-27 18:32:21 -06:00
Slava Pestov 3d335474fe vm: new image relocation that doesn't use literal table 2009-11-27 17:05:08 -06:00
Slava Pestov a684164783 Fix non-tail recursive inline recursive compilation 2009-11-25 19:12:09 -06:00
Slava Pestov 0ac2a92d56 vm: new implementation of modify-code-heap that doesn't use literal tables 2009-11-25 17:20:48 -06:00
Slava Pestov 19835ab32e vm: non-optimizing compiler now compiles word definition quotations with the owner set to the word object 2009-11-24 22:44:04 -06:00
Slava Pestov 0521890f97 vm: flush icache after GC 2009-11-24 21:36:35 -06:00
Slava Pestov 49727354d1 vm: deallocate old PIC after allocating the new one to avoid having the code heap potentially point to a free block during compaction 2009-11-24 21:20:23 -06:00
Slava Pestov 3789e75e0c vm: compaction now updates the needs_fixup set 2009-11-24 19:29:59 -06:00
Slava Pestov bfa5340ea8 vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand 2009-11-23 19:17:12 -06:00
Slava Pestov e66b8673f4 vm: minor GC traces embedded pointers 2009-11-22 13:37:39 -06:00
Slava Pestov 272deedefe Fix conflict 2009-11-22 02:12:44 -06:00
Doug Coleman 37653c65c2 fix openbsd compile 2009-11-30 12:58:39 -06:00
Doug Coleman 26a9852b8c fix windows compile error 2009-11-20 04:21:21 -06:00
Slava Pestov 49abe313a3 Clean up startup/shutdown hook code 2009-11-20 00:57:49 -06:00
Doug Coleman a896eef7b4 remove sleep_micros, add sleeo_nanos to vm 2009-11-19 04:49:29 -06:00
Slava Pestov fd24ceb79a vm: fix compilation with DEBUG=1 2009-11-19 02:08:05 -06:00
Slava Pestov a7d8a35bff Fix potential assertion failure if GC was invoked while enabling profiling 2009-11-19 01:49:26 -06:00
Doug Coleman 7f4d38b4b3 vm/Config.openbsd: pass in -fno-inline-functions to work around apparent gcc bug 2009-11-18 19:06:26 -06:00
Doug Coleman addb1c90bb rename millis to system-millis, micros to system-micros, add nano-count 2009-11-18 15:58:48 -06:00
Doug Coleman f244eaf6f2 link against librt 2009-11-18 11:09:05 -06:00
Doug Coleman 4b9244ee85 fix current_nanos on windows 2009-11-18 11:04:46 -06:00
Doug Coleman 1861dd2705 initial commit to nanos branch to replace micros 2009-11-18 04:20:05 -06:00
Slava Pestov bd76bcd52b vm: fix problem in card marking if first block is free 2009-11-16 00:52:32 -06:00
Doug Coleman 14463be60b update vm for startup branch 2009-11-15 02:53:02 -06:00
Doug Coleman 3323072613 Merge branch 'master' into startup
Conflicts:
	core/bootstrap/primitives.factor
	vm/run.hpp
2009-11-15 02:52:50 -06:00
Slava Pestov 71dad47a32 vm: record compaction events correctly 2009-11-13 09:29:21 -06:00
Slava Pestov eb165a5450 Instead of bumping the definition counter every time in the VM, bump it only if stack effects changed or macros were redefined 2009-11-13 03:52:14 -06:00
Slava Pestov 06fb247b8c Invalidate inline caches used by call( and execute( when words are redefined 2009-11-12 16:09:07 -06:00
Slava Pestov 61f1f3b473 Revert "Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists""
This reverts commit 81a68ebd36.
2009-11-11 19:33:50 -06:00
Slava Pestov 585a1a7fbe vm: fix fencepost error in write barrier on large object allocation; fixes benchmark.sort crash 2009-11-11 19:31:18 -06:00
Slava Pestov 81a68ebd36 Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists"
This reverts commit 9af2fa1957.
2009-11-11 05:47:22 -06:00
Slava Pestov 21c165190c vm: fix GC safety issue in callers of unbox_array_size(), and change how disable-gc-events works so that it doesn't make a byte array that's too large 2009-11-11 05:21:03 -06:00
Slava Pestov 68f3087c1c Faster identity-hashcode primitive; fast path now opencoded by the compiler 2009-11-11 02:27:19 -06:00
Slava Pestov 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 9af2fa1957 vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists 2009-11-10 20:19:29 -06:00
Slava Pestov 07b56b9806 vm/contexts: cleanup 2009-11-08 19:44:18 -06:00
Slava Pestov 371ff1498d vm: minor cleanup 2009-11-08 06:08:17 -06:00
Samuel Tardieu 1d21953f95 Add parentheses to prevent GCC warning 2009-11-08 02:01:48 +01:00
Slava Pestov c434201b33 vm: eliminating literal table work in progress 2009-11-07 16:16:09 -06:00
Slava Pestov e150707ec5 vm: on 32-bit, the largest free block size was only 512mb, leading to weird errors if the heap grew beyond this. eliminate this limit 2009-11-06 08:44:36 -06:00
Slava Pestov 2f8ba13da0 vm: faster data_root and <array> primitive 2009-11-06 05:30:37 -06:00
Slava Pestov e3d2f4dbfb vm: report true size of mark stack 2009-11-06 04:15:55 -06:00
Slava Pestov 3e112981b9 vm: fix crash if all-instances primitive triggers a GC 2009-11-06 01:41:11 -06:00
Slava Pestov 858f20ef5f vm: fix crash in profiler 2009-11-06 01:22:53 -06:00
Slava Pestov 7c0c2fec47 vm: restructure data_roots so that its a sequence of handle/len pairs rather than just handles, use it in inline_gc() and all_instances() so that we don't run out of heap while building the object array 2009-11-06 00:54:28 -06:00
Slava Pestov 66b01c85e9 vm: fix 'become' when aging space is empty 2009-11-05 23:53:53 -06:00
Slava Pestov 4311c335bc Remove unused error from VM 2009-11-05 21:52:31 -06:00
Slava Pestov 065dac3736 vm: simpler object space implementation. begin-scan/next-object/end-scan primitives replaced by a single all-instances primitive 2009-11-05 21:49:03 -06:00
Slava Pestov fa50753d40 vm: remove some dead code 2009-11-05 19:32:26 -06:00