]> gitweb.factorcode.org Git - factor.git/commit
compiler.*: Remove the scrubbing part of the GC maps
authorBjörn Lindqvist <bjourne@gmail.com>
Sun, 11 Sep 2016 18:34:44 +0000 (20:34 +0200)
committerBjörn Lindqvist <bjourne@gmail.com>
Sun, 11 Sep 2016 18:34:44 +0000 (20:34 +0200)
commit349f99661dc9355b5f88e4dfa33a154e7ed6a97b
tree7e3476687abed0e5dc4968b959635da261f291d1
parentbc8525eb0206e11d335cc01bf14c93d95f7979ba
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.
20 files changed:
basis/compiler/cfg/finalization/finalization.factor
basis/compiler/cfg/instructions/instructions-docs.factor
basis/compiler/cfg/instructions/instructions.factor
basis/compiler/cfg/save-contexts/save-contexts-tests.factor
basis/compiler/cfg/ssa/destruction/destruction-tests.factor
basis/compiler/cfg/stacks/clearing/clearing-docs.factor
basis/compiler/cfg/stacks/clearing/clearing-tests.factor
basis/compiler/cfg/stacks/clearing/clearing.factor
basis/compiler/cfg/stacks/padding/padding-tests.factor
basis/compiler/cfg/stacks/vacant/vacant-docs.factor [deleted file]
basis/compiler/cfg/stacks/vacant/vacant-tests.factor [deleted file]
basis/compiler/cfg/stacks/vacant/vacant.factor [deleted file]
basis/compiler/codegen/gc-maps/gc-maps-docs.factor
basis/compiler/codegen/gc-maps/gc-maps-tests.factor
basis/compiler/codegen/gc-maps/gc-maps.factor
basis/cpu/x86/x86-tests.factor
basis/vm/vm.factor
extra/tools/image-analyzer/gc-info/gc-info-tests.factor
vm/gc_info.hpp
vm/slot_visitor.hpp