Commit Graph

27248 Commits (d6b6b955d396343951d2731459da62d9d1cf7e03)

Author SHA1 Message Date
John Benediktsson a7cd03b45d compiler.cfg.linear-scan.assignment: fix help-lint. 2015-04-30 17:20:52 -07:00
Björn Lindqvist 5ca23c4793 compiler.*: a few extra doc fixes 2015-04-30 04:51:58 +02:00
Björn Lindqvist 6097e80178 compiler.cfg.*: fixing tests so they work on 32bit archs too 2015-04-30 04:49:48 +02:00
John Benediktsson c99b3e0b53 suffix-arrays: update using. 2015-04-29 14:22:01 -07:00
Björn Lindqvist b4e7ffede4 compiler.cfg.stacks.local: test and fix for a silly bug in
compute-local-kill-set (switched the order on ds and rs)
2015-04-29 09:32:00 -07:00
Björn Lindqvist 9fc73c3355 compiler.cfg.stacks.local: unused words 2015-04-29 09:32:00 -07:00
Björn Lindqvist d0c1493f36 compiler.cfg.linearization: can't use slurp/replenish-queue here because
the successors need to be pushed to the back of the deque
2015-04-29 09:32:00 -07:00
Björn Lindqvist 24ca0e3160 compiler.cfg.*: reverting the commit
5fd9e61bc04b054d58b8eeecbe9b5c59f68f2195, caused bad regressions in SIMD code
2015-04-29 09:31:59 -07:00
Björn Lindqvist 050e15ce83 compiler.cfg.debugger: new words build-optimized-tree and run-passes to
remove some duplicated code
2015-04-29 09:31:59 -07:00
Björn Lindqvist 6215561ad4 compiler.cfg.*: more docs and removing a test that isn't relevant anymore 2015-04-29 09:31:59 -07:00
Björn Lindqvist 17dff48402 compiler.cfg.ssa.*: refactors words to use stack parameters instead of
dynamic variables
2015-04-29 09:31:59 -07:00
Björn Lindqvist 2077ae9180 compiler.cfg.linear-scan.assignment: refactoring vreg>reg and
assign-registers-in-block so locals aren't needed
2015-04-29 09:31:59 -07:00
Björn Lindqvist 135d7f5ff3 compiler.cfg.*: more unit tests 2015-04-29 09:31:59 -07:00
Björn Lindqvist 992314d2de compiler.cfg.*: new word for consuming deques slurp/replenish-deque
most uses of slurp-deque processes one item and pushes a sequence of
items to continue working with. it can be formalized into a
slurp/replenish-deque combinator which also reduces the amount of
variables you need to use
2015-04-29 09:31:58 -07:00
Björn Lindqvist c3ca8bd859 compiler.cfg.*: even more compiler docs 2015-04-29 09:31:58 -07:00
Björn Lindqvist 997f95196c compiler.cfg.*: lots of new unit tests 2015-04-29 09:31:58 -07:00
Björn Lindqvist 167d1598b3 compiler.cfg.linear-scan.allocation.*: lots more docs and some word simplifications 2015-04-29 09:31:58 -07:00
Björn Lindqvist 63a1e90af8 compiler.cfg.ssa.cssa, compiler.cfg.ssa.destruction, compiler.utilities: docs & tests 2015-04-29 09:31:58 -07:00
Björn Lindqvist 16f6025979 compiler.cfg.linear-scan.allocation.spilling: docs and tests for this vocab 2015-04-29 09:31:58 -07:00
Björn Lindqvist b827bc75cc compiler.*: bunch of new docs for some compiler instructions 2015-04-29 09:31:58 -07:00
Björn Lindqvist a17e943e88 compiler.cfg.liveness: refactoring so that words that doesn't modify
the live-set doesnt return it

e.g it's clearer when the effect is ( live-set insn -- ) than ( live-set insn -- live-set ) that the live-set is modified in place
2015-04-29 09:31:57 -07:00
Björn Lindqvist c876d79b9d compiler.cfg.liveness: lots of more tests and some docs 2015-04-29 09:31:57 -07:00
Björn Lindqvist aa6fbf475e compiler.cfg: the id slot of basic-block appears to not be needed 2015-04-29 09:31:57 -07:00
Björn Lindqvist 5cd44dc07c compiler.cfg.linear-scan.allocation.state: set spill-area-size/align when the cfg tuple is created 2015-04-29 09:31:57 -07:00
Björn Lindqvist d486de889d compiler.cfg.*: smaller doc improvements 2015-04-29 09:31:57 -07:00
Björn Lindqvist 4cda101717 compiler.cfg.linear-scan.allocation.state: more docs and tests for vocab 2015-04-29 09:31:57 -07:00
Björn Lindqvist 043b6d5377 compiler.cfg.linear-scan.linear-scan: refactoring of word so that locals doesn't need to be used and more docs (by moving comments) 2015-04-29 09:31:56 -07:00
Björn Lindqvist 6c6f85428c compiler.cfg.intrinsics.simd: refactoring to use assocs instead of case-s for lookups + tests 2015-04-29 09:31:56 -07:00
Björn Lindqvist 745d3f29b2 compiler.cfg.*: a bunch of new docstrings and other doc fixes 2015-04-29 09:31:56 -07:00
Björn Lindqvist f9812d9874 compiler.cfg.stacks.*: possible fix for #1289
instead of delaying outputting ##replace instructions to when they are
needed, output them directly in the block so that "holes" in the
stacks are avoided.
2015-04-29 09:31:56 -07:00
Björn Lindqvist 177a356240 compiler.cfg.stacks.local: refactorings on the vocab to try and make it using less dynamic variables 2015-04-29 09:31:56 -07:00
Björn Lindqvist 91144c0712 compiler.cfg.stacks.*: simplify the code a little by making replace-sets, peek-sets and kill-sets contain hash-sets instead of hash-tables 2015-04-29 09:31:56 -07:00
Björn Lindqvist 0ff4c68e15 compiler.cfg.stacks.local: to simplify, end-local-analysis can take the block it operates on as argument 2015-04-29 09:31:56 -07:00
Björn Lindqvist b983053130 compiler.cfg.*: putting test-init in compiler.cfg.stacks.tests didn't work, put new word cfg-unit-test in compiler.test 2015-04-29 09:31:55 -07:00
Björn Lindqvist 4390561a6e compiler.cfg.*: new word reset-vreg-counter, useful for making test writing more convenient 2015-04-29 09:31:55 -07:00
Björn Lindqvist 2536943e82 compiler.cfg.*: new word connect-Nto1-bbs
using that word predecessors is already up-to-date so calling needs-predecessors isn't needed
2015-04-29 09:31:55 -07:00
Björn Lindqvist 8a7699e42c compiler.cfg.*: refactoring to remove the initial-basic-block word 2015-04-29 09:31:55 -07:00
Björn Lindqvist 6559382028 compiler.cfg.*: ds-load removed 2015-04-29 09:31:55 -07:00
Björn Lindqvist cc1903bec1 compiler.cfg.*: some refactoring in the stack tracking for #shuffle nodes
instead of having separate words for the stacks like inc-d/r and ds/rs-store use generic words that work on either stack
2015-04-29 09:31:55 -07:00
Björn Lindqvist eda9535ce6 compiler.tree.propagation.call-effect: changing back call-effect-unsafe?, changing it made all images to large for some reason 2015-04-29 09:31:55 -07:00
Björn Lindqvist 92165e4ee7 Docs: bunch of smaller documentation fixes for various vocabs 2015-04-29 09:31:54 -07:00
Björn Lindqvist 837e098d41 compiler.cfg.*: a little more docs 2015-04-29 09:31:54 -07:00
Björn Lindqvist ba4736ff75 compiler.cfg.stacks.local: change current-height to a two-tuple { { d emit-d } { r emit-r } } it makes the code a bit simpler 2015-04-29 09:31:54 -07:00
Björn Lindqvist c360f0123b compiler.cfg.stacks: a few unused words removed 2015-04-29 09:31:54 -07:00
Björn Lindqvist 09238cee4b compiler.tree.propagation.call-effect: docs for this vocab 2015-04-29 09:31:54 -07:00
Björn Lindqvist fa0ff77c45 VM: reset the unused parts of the data and retain stack segments with a bit pattern (good for debugging) 2015-04-29 09:31:54 -07:00
Björn Lindqvist acc1bd3221 compiler.*: removing the check-d and check-r slots from gc-map and adjusting code that depended on those 2015-04-29 09:31:53 -07:00
Björn Lindqvist 2cd2aa498a VM: the compiler doesn't emit any live overinitialized locations anymore
Any overinitialized location immediately becomes garbage and is not
reused again. This is very nice because then the gc maps can be
simpler again.
2015-04-29 09:31:53 -07:00
Björn Lindqvist ded3760d46 compiler.*: merge of ##inc-r and ##inc-d into one instruction ##inc with a loc slot
this is nice because it leads to simpler code and matches how ##peek and ##replace instructions work
2015-04-29 09:31:53 -07:00
Björn Lindqvist c7d9cb4c3d compiler.cfg.*: new and improved docs 2015-04-29 09:31:53 -07:00