Doug Coleman
4c6435934b
compiler.cfg.stacks.vacant: Fix docs for word rename.
2014-09-08 17:48:22 -07:00
Björn Lindqvist
ffacc8370d
compiler.cfg.stacks.vacant: ##call instructions clear the set of overinitialized locations
2014-09-08 14:54:18 -07:00
Björn Lindqvist
9836d6a1d0
VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice
...
primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once.
2014-09-08 14:54:18 -07:00
Björn Lindqvist
46082d836a
compiler.cfg.stacks.vacant: invert meaning of 0/1 for overinit:ed locs to make some logic simpler
2014-09-08 14:54:17 -07:00
Björn Lindqvist
70e4f2a8b7
compiler.cfg.instructions: added check-d and check-r slots to gc-map
...
the data is output from compiler.cfg.stacks.vacant in a reasonable
format but not yet used for code generation.
2014-09-08 14:54:17 -07:00
Björn Lindqvist
ecead801c1
compiler.cfg.stacks.vacant: more docs and removed usage of byte-arrays
2014-09-08 14:54:17 -07:00
Björn Lindqvist
ab5e629243
compiler.cfg.stacks.vacant: sub docs seeded with a stolen comment from uninitialized.factor
2014-09-08 14:54:17 -07:00
Björn Lindqvist
40ee3cdcbb
compiler.cfg.stacks.vacant: fix usings and remove commented out code
2014-09-08 14:54:17 -07:00
Björn Lindqvist
e961a03837
compiler.cfg.stacks.vacant: compiler pass replacing uninitialized for more accurate stack maps
...
This pass uses a better algorithm for keeping track of all stack
manipulations which means that the stack maps it assigns are much more
precise.
2014-09-08 14:54:17 -07:00
John Benediktsson
7609ab6eda
compiler.cfg: fix some help-lint warnings.
2014-08-14 09:59:27 -07:00
Björn Lindqvist
c6784020aa
compiler.cfg.*: initial docs for dataflow analysis vocabs
2014-08-13 11:01:11 -07:00
Björn Lindqvist
769ca5550f
compiler.cfg.*: docs for compiler words
2014-08-13 11:01:11 -07:00
Björn Lindqvist
1225abeeaf
Docs: more compiler-related documentation
2014-08-13 11:01:10 -07:00
John Benediktsson
bf473ec943
compiler.cfg: fix some docs.
2014-06-08 18:20:27 -07:00
Björn Lindqvist
280620c55f
Docs: docs for compiler-related words
2014-06-08 11:48:31 -07:00
Björn Lindqvist
160df8b3f1
Docs: for compiler.cfg.* vocabs
2014-06-08 11:48:31 -07:00
Björn Lindqvist
395a490b90
Docs: documentation for stack-checker.* and compiler.* vocabs
2014-06-08 11:48:30 -07:00
Björn Lindqvist
e2eebdec4d
Docs: mostly fixes for doc errors found by help lint
2014-05-10 17:13:49 -07:00
Björn Lindqvist
0bb3e2397b
Docs: more compiler documentation
2014-05-10 17:13:48 -07:00
Doug Coleman
6cca0ea468
compiler.cfg: Rename <##foo> to ##foo, in the low-level IR
2011-11-11 19:48:38 -08:00
Doug Coleman
eb2a0c611b
compiler.cfg: Change low-level IR constructors from ##foo to <##foo>
2011-11-06 23:02:46 -08:00
Doug Coleman
f9257959fd
Rename class to class-of
2011-10-24 06:47:42 -05:00
John Benediktsson
378786599d
Cleanup lint warnings.
2011-10-14 11:47:24 -07:00
John Benediktsson
1987deb359
Fix M: stack effects.
2011-10-13 16:41:17 -07:00
Slava Pestov
5d6816d364
compiler.cfg.ssa: fixing test failures
2010-06-15 17:18:51 -04:00
Slava Pestov
e86f434f26
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
Slava Pestov
806e54630a
GC maps for more compact inline GC checks
2010-06-11 20:06:00 -04:00
Slava Pestov
c211c3e84e
FFI rewrite part 1: split up ##alien-invoke and friends into smaller instructions
2010-05-09 21:36:52 -04:00
Slava Pestov
428ba9fd0f
compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm
2010-05-03 17:34:28 -04:00
Slava Pestov
95ff5ffe51
New GC checks work in progress
2010-05-03 17:34:16 -04:00
Slava Pestov
82fb1879af
Debugging untagged fixnums
2010-05-03 17:34:02 -04:00
Daniel Ehrenberg
512fe14e4e
Merge branch 'bags' of git://github.com/littledan/Factor
...
Conflicts:
basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
basis/furnace/auth/auth.factor
basis/stack-checker/backend/backend.factor
2010-03-16 13:28:00 -04:00
Joe Groff
191ac353fd
generalize stack effects so we can bootstrap with the stricter stack effect checking
2010-03-08 23:38:10 -08:00
Daniel Ehrenberg
7074979745
Moving new-sets to sets
2010-02-26 16:01:01 -05:00
Doug Coleman
8c1d202b4c
Rename accumulator to collector, pusher to selector
2010-01-22 15:00:53 -06:00
Slava Pestov
df4fb4a3ee
Removing integers-as-sequences
2010-01-15 07:15:33 +13:00
Slava Pestov
0612bc6177
Factor source files should not be executable
2009-11-21 17:50:43 -06:00
Slava Pestov
b4e36608da
compiler.cfg: remove _gc instruction, it doesn't need to exist, and change GC checks to ensure that the right amount of space is available instead of blindly checking for 1Kb
2009-10-05 05:27:49 -05:00
Slava Pestov
fd2f0a602d
compiler.cfg.stacks.local: more accurate local replace set computation; optimizes out 'swap swap'
2009-08-19 22:00:21 -05:00
Daniel Ehrenberg
478b960560
Merge branch 'master' of git://factorcode.org/git/factor
2009-08-14 20:11:54 -05:00
Daniel Ehrenberg
3cec74867d
Improving write barrier elimination; change to compiler.cfg.utilities to support this
2009-08-14 19:41:41 -05:00
Doug Coleman
2ed4425b7a
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
basis/calendar/calendar.factor
2009-08-13 19:40:02 -05:00
Doug Coleman
3f3d57032b
Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring
2009-08-13 19:21:44 -05:00
Daniel Ehrenberg
d35e1eb76c
Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis
2009-08-12 23:52:29 -05:00
Slava Pestov
d0c393aa60
compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.
2009-08-08 20:02:56 -05:00
Slava Pestov
4b7ba38aab
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
2009-08-08 04:02:18 -05:00
Slava Pestov
725280d424
Split off the notion of a register representation from a register class
2009-08-07 17:44:50 -05:00
Slava Pestov
d20d335447
compiler.cfg.stacks: more accurate deconcatenatization inserts fewer partially redundant ##peeks. 11% improvement on benchmark.beust2, 2% reduction in ##peek and ##replace instructions inserted
2009-08-03 07:08:28 -05:00
Slava Pestov
720bfe378f
compiler.cfg.stacks.uninitialized: use bitand instead of min
2009-08-03 06:03:38 -05:00
Slava Pestov
c1c8424605
Compiler speedups
2009-08-02 09:16:21 -05:00