factor/vm
Joe Groff 80fb7788d9 vm: groundwork for sampling profiler
Set up the state necessary to collect samples. We still need to add GC support for walking the sample set, and the compiler needs to register GC roots before safepoints as well. We also need primitives to expose the data to Factor for reporting.
2011-11-02 13:23:06 -07:00
..
Config.arm vm: Remove some dead code 2010-01-07 13:54:22 +13:00
Config.freebsd 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.freebsd.x86.32
Config.freebsd.x86.64
Config.linux Move --no-as-needed to Config.linux since it breaks compilation on mac 2011-10-19 12:09:43 -07:00
Config.linux.arm
Config.linux.ppc.32 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.linux.ppc.64 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.linux.x86.32
Config.linux.x86.64
Config.macosx Remove unnecessary -std=gnu99 2011-06-23 01:17:24 -04:00
Config.macosx.ppc 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.macosx.x86.32
Config.macosx.x86.64
Config.netbsd 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.netbsd.x86.32
Config.netbsd.x86.64
Config.openbsd 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.openbsd.x86.32
Config.openbsd.x86.64
Config.solaris 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
Config.solaris.x86.32
Config.solaris.x86.64
Config.unix Config.unix: don't hardcode ui libs, use pkg-config instead 2011-10-19 11:37:21 -07:00
Config.windows vm: fix Config.windows 2010-10-02 23:50:48 -05:00
Config.windows.x86.32 Squashed commit of the following: 2010-09-19 19:13:25 -05:00
Config.windows.x86.64 Squashed commit of the following: 2010-09-19 19:13:25 -05:00
Config.x86.32 vm: move dispatch_signal_handler to cpu-x86.cpp 2011-10-27 21:18:20 -07:00
Config.x86.64 vm: move dispatch_signal_handler to cpu-x86.cpp 2011-10-27 21:18:20 -07:00
aging_collector.cpp Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily 2011-09-05 16:28:00 -07:00
aging_collector.hpp
aging_space.hpp
alien.cpp Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93 2011-09-12 00:56:24 -07:00
alien.hpp compiler.cfg: open-code parameter boxing and unboxing for certain C types 2010-07-19 10:25:13 -04:00
allot.hpp
arrays.cpp Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils 2010-02-03 23:11:32 +13:00
arrays.hpp
bignum.cpp io.binary: make le> and be> faster (20% and 75%, respectively). 2011-10-11 21:13:30 -07:00
bignum.hpp io.binary: make le> and be> faster (20% and 75%, respectively). 2011-10-11 21:13:30 -07:00
bignumint.hpp Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
bitwise_hacks.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
booleans.cpp More FFI cleanups 2010-05-05 01:13:45 -04:00
booleans.hpp More FFI cleanups 2010-05-05 01:13:45 -04:00
bump_allocator.hpp
byte_arrays.cpp compiler.cfg: nuke ##allot-byte-array instruction 2010-07-16 19:57:45 -04:00
byte_arrays.hpp compiler.cfg: nuke ##allot-byte-array instruction 2010-07-16 19:57:45 -04:00
callbacks.cpp vm: Revert extra canary page before callstack 2011-10-27 21:14:50 -07:00
callbacks.hpp vm: fix callback heap code on 64-bit Windows 2010-04-04 17:46:36 -04:00
callstack.cpp vm: move dispatch_signal_handler to cpu-x86.cpp 2011-10-27 21:18:20 -07:00
callstack.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
code_block_visitor.hpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
code_blocks.cpp vm: add RT_SAFEPOINT relocation type 2011-10-27 21:14:44 -07:00
code_blocks.hpp Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93 2011-09-12 00:56:24 -07:00
code_heap.cpp cleanups from code review 2011-10-27 21:18:23 -07:00
code_heap.hpp vm: code_block_for_address method -> code_heap 2011-10-27 21:18:20 -07:00
code_roots.hpp
collector.hpp Add GC maps to ##box, ##box-long-long, ##alien-invoke, ##alien-indirect and ##call-gc; remove ##gc-map instruction 2010-06-14 19:39:46 -04:00
compaction.cpp vm: fix high_fragmentation_p assertion 2011-09-05 23:30:28 -07:00
compaction.hpp
contexts.cpp vm: Revert extra canary page before callstack 2011-10-27 21:14:50 -07:00
contexts.hpp constants for special object hardcoded literals 2011-11-02 12:54:50 -07:00
copying_collector.hpp
counting_profiler.cpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
counting_profiler.hpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
cpu-arm.hpp vm: Remove some dead code 2010-01-07 13:54:22 +13:00
cpu-ppc.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
cpu-ppc.linux.S 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
cpu-x86.32.hpp vm: remove VM_ASM_API 2009-12-24 01:37:24 +13:00
cpu-x86.64.hpp vm: remove VM_ASM_API 2009-12-24 01:37:24 +13:00
cpu-x86.cpp cleanups from code review 2011-10-27 21:18:23 -07:00
cpu-x86.hpp Get green threads working on Windows 2010-04-03 20:24:33 -04:00
data_heap.cpp vm: Revert extra canary page before callstack 2011-10-27 21:14:50 -07:00
data_heap.hpp Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily 2011-09-05 16:28:00 -07:00
data_heap_checker.cpp Get optimizing compiler working without global register variables in VM 2009-12-22 15:42:49 +13:00
data_roots.hpp
debug.cpp vm: give factorbug a help command 2011-10-27 21:18:23 -07:00
debug.hpp
dispatch.cpp vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this 2010-04-12 14:22:41 -07:00
dispatch.hpp
entry_points.cpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
entry_points.hpp Fix three problems discovered by running math.floats.env tests in a loop: 2010-09-02 22:57:14 -05:00
errors.cpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
errors.hpp vm: add factorbug command to throw exception 2011-10-27 21:14:49 -07:00
factor.cpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
factor.hpp vm: split up TLS code and add a dummy implementation for a dummy OS known as NetBSD 2010-03-29 02:23:21 -04:00
factor.rs vm: change id of windows app icon resource to more standard "APPICON" 2010-02-15 11:26:56 -08:00
ffi_test.c vm: fix compiler warnings raised by CL 2010-04-12 18:12:55 -05:00
ffi_test.h add tests for struct returns from fastcall 2010-04-01 23:52:56 -07:00
fixup.hpp GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
float_bits.hpp
free_list.cpp
free_list.hpp vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile. 2010-01-17 03:43:22 +13:00
free_list_allocator.hpp vm: improved fingering technique 2010-06-16 19:08:58 -04:00
full_collector.cpp Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily 2011-09-05 16:28:00 -07:00
full_collector.hpp GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
gc.cpp vm: fix high_fragmentation_p assertion 2011-09-05 23:30:28 -07:00
gc.hpp vm: don't call nano_count() from the GC at all, unless GC event recording is on 2010-09-04 13:21:45 -07:00
gc_info.cpp vm: fix 64-bit regression 2010-10-09 15:14:14 -07:00
gc_info.hpp vm: fix 64-bit regression 2010-10-09 15:14:14 -07:00
generic_arrays.hpp vm: no-op reallot_array with same size, for real 2011-10-17 21:23:01 -07:00
image.cpp Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93 2011-09-12 00:56:24 -07:00
image.hpp vm: actually use context callstacks when running code 2010-03-26 22:44:43 -04:00
inline_cache.cpp vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this 2010-04-12 14:22:41 -07:00
inline_cache.hpp
instruction_operands.cpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
instruction_operands.hpp vm: add RT_SAFEPOINT to number_of_parameters() 2011-10-27 21:14:45 -07:00
io.cpp vm: clean up windows ctrl-handler 2011-10-27 21:18:22 -07:00
io.hpp Refactor error handling in io.cpp. Update image.cpp and header files for changes. 2010-02-04 23:53:54 -06:00
jit.cpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
jit.hpp Rework non-optimizing compiler backend to use compiler.codegen.relocation 2011-10-03 00:26:21 -07:00
layouts.hpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
mach_signal.cpp vm: move dispatch_signal_handler to cpu-x86.cpp 2011-10-27 21:18:20 -07:00
mach_signal.hpp vm: hard tabs, indent width 8 2010-08-02 20:50:34 -04:00
main-unix.cpp
main-windows.cpp Squashed commit of the following: 2010-09-19 19:13:25 -05:00
mark_bits.hpp GC maps for more compact inline GC checks 2010-06-11 20:06:00 -04:00
master.hpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
math.cpp vm: remove math::bignum_producer. 2011-10-11 21:24:38 -07:00
math.hpp Remove bignum>float VM primitive, and use bignum/f to implement >float on bignums instead, for a slight accuracy gain. Also, bignum/f now has a more efficient post-scaling algorithm to break the circular dependency on bignum>float 2010-11-24 22:41:15 -08:00
mvm-none.cpp vm: handle async signals at safepoints on unix 2011-10-27 21:14:46 -07:00
mvm-unix.cpp vm: move dispatch_signal_handler to cpu-x86.cpp 2011-10-27 21:18:20 -07:00
mvm-windows.cpp vm: handle async signals at safepoints on unix 2011-10-27 21:14:46 -07:00
mvm.cpp vm: fix typos 2010-03-29 02:27:45 -04:00
mvm.hpp vm: handle async signals at safepoints on unix 2011-10-27 21:14:46 -07:00
nursery_collector.cpp vm: don't call nano_count() from the GC at all, unless GC event recording is on 2010-09-04 13:21:45 -07:00
nursery_collector.hpp
nursery_space.hpp
object_start_map.cpp vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile. 2010-01-17 03:43:22 +13:00
object_start_map.hpp
objects.cpp compiler.cfg: open-code parameter boxing and unboxing for certain C types 2010-07-19 10:25:13 -04:00
objects.hpp constants for special object hardcoded literals 2011-11-02 12:54:50 -07:00
os-freebsd-x86.32.hpp Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
os-freebsd-x86.64.hpp Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
os-freebsd.cpp
os-freebsd.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-genunix.cpp vm: speed up nano-count primitive on Mac OS X 2010-04-11 20:26:11 -07:00
os-genunix.hpp vm: don't try loading Factor VM DLL anymore 2010-04-02 00:03:26 -04:00
os-linux-arm.cpp vm: clean up TLS usage 2010-03-27 03:44:40 -04:00
os-linux-arm.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-linux-ppc.32.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-linux-ppc.64.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-linux-x86.32.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-linux-x86.64.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-linux.cpp Remove inotify system call wrappers. Hopefully everyone is using a recent glibc now. Fixes #86 2011-09-08 22:03:56 -07:00
os-linux.hpp Remove inotify system call wrappers. Hopefully everyone is using a recent glibc now. Fixes #86 2011-09-08 22:03:56 -07:00
os-macosx-ppc.hpp vm: hard tabs, indent width 8 2010-08-02 20:50:34 -04:00
os-macosx-x86.32.hpp vm: hard tabs, indent width 8 2010-08-02 20:50:34 -04:00
os-macosx-x86.64.hpp vm: hard tabs, indent width 8 2010-08-02 20:50:34 -04:00
os-macosx.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-macosx.mm vm: remove some mixed use of stdio/iostream. when monotonic timer decreases, log old and new values 2010-08-01 16:14:20 -07:00
os-netbsd-x86.32.hpp
os-netbsd-x86.64.hpp
os-netbsd.cpp
os-netbsd.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-openbsd-x86.32.hpp
os-openbsd-x86.64.hpp
os-openbsd.cpp
os-openbsd.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-solaris-x86.32.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-solaris-x86.64.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
os-solaris.cpp
os-unix.cpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
os-unix.hpp Change how SIGPIPE is ignored, and add a unit test to io.launcher.unix to ensure that this ignoredness is not inherited by child processes 2010-09-02 22:11:45 -07:00
os-windows-x86.32.cpp Remove Windows CE from core/ basis/ and build-support/ 2011-09-18 23:19:06 -05:00
os-windows-x86.64.cpp Squashed commit of the following: 2010-09-19 19:13:25 -05:00
os-windows.32.hpp Squashed commit of the following: 2010-09-19 19:13:25 -05:00
os-windows.64.hpp Squashed commit of the following: 2010-09-19 19:13:25 -05:00
os-windows.cpp cleanups from code review 2011-10-27 21:18:23 -07:00
os-windows.hpp vm: win32 GetCurrentThread is a fake thread handle 2011-10-27 21:18:21 -07:00
platform.hpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
primitives.cpp Using a higher-order C macro to clean up duplication in declaring/defining VM primitives 2010-03-19 14:05:14 -04:00
primitives.hpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
quotations.cpp vm: suppress signal-handler stack frame generation 2011-10-27 21:18:19 -07:00
quotations.hpp vm: remove VM_ASM_API 2009-12-24 01:37:24 +13:00
run.cpp vm: hard tabs, indent width 8 2010-08-02 20:50:34 -04:00
run.hpp
safeseh.asm vm/safeseh.asm: make exception_handler proto declaration explicitly "proto c" so linking works properly with VS 2010 (reported by Doug Coleman) 2010-06-24 13:19:02 -07:00
sampling_profiler.cpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
sampling_profiler.hpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
segments.hpp vm: fix foreign segfaults and callstack overflows 2011-10-27 21:18:18 -07:00
slot_visitor.hpp vm: fix 64-bit regression 2010-10-09 15:14:14 -07:00
strings.cpp strings: move string-nth primitive out of the VM and into the library 2010-05-03 17:34:12 -04:00
strings.hpp
tagged.hpp
tenured_space.hpp
to_tenured_collector.cpp vm: don't call nano_count() from the GC at all, unless GC event recording is on 2010-09-04 13:21:45 -07:00
to_tenured_collector.hpp
tuples.cpp vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler 2009-12-19 10:59:56 +13:00
tuples.hpp
utilities.cpp 32 and 64 bit Linux PPC support 2011-05-23 23:36:14 -04:00
utilities.hpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
vm.cpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
vm.hpp vm: groundwork for sampling profiler 2011-11-02 13:23:06 -07:00
words.cpp vm: change "profiler" names to "counting_profiler" 2011-11-02 13:23:05 -07:00
words.hpp
write_barrier.hpp