Commit Graph

95 Commits (e06eb4ad3e08574961ea16b7e8498f6dfc4e105a)

Author SHA1 Message Date
Doug Coleman 924b434336 Revert "factor: vocab:word -> vocab::word"
This reverts commit 354f1cbd34.
2018-08-02 08:21:52 -04:00
Doug Coleman 7730fc5c64 Merge remote-tracking branch 'origin/master' into modern-harvey2 2018-08-02 07:57:42 -04:00
Doug Coleman 4e9d383fe5 docs: Fix help-lint-all mistakes. 2018-07-07 01:13:19 -05:00
Doug Coleman 53b1a81049 Merge branch 'master' into modern-harvey2 2018-06-20 00:26:12 -05:00
Doug Coleman 9f213f96f6 core: Add the shuffler words but without primitives.
The nipd branch slowed bootstrap by a minute, this patch does not.

sorry about changing the fjsc line endings...
2018-06-19 22:52:58 -05:00
Doug Coleman 5d8b912216 Merge remote-tracking branch 'origin/master' into modern-harvey2 2018-01-27 09:43:21 -06:00
John Benediktsson b40ba26bac basis/extra: removing '[ @ ] in favor of _ for fried quotations. 2018-01-19 23:40:23 -08:00
Doug Coleman 354f1cbd34 factor: vocab:word -> vocab::word 2017-12-29 00:43:25 -08:00
Doug Coleman dbfeeebe38 compiler: Ghetto functor hack for now.
Quotations are strings temporarily. This is because unparse is not in core, so you can't just interpolate a quotation text into a template.
2017-12-02 19:54:11 -06:00
Björn Lindqvist b89a305ef7 compiler.cfg.linear-scan.assignment: correct representation used when spilling
Previously the rep-of word was used. But as the vregs representation can
change, you need to instead use the representation it uas as the spill
point.
2016-11-15 03:49:46 +01:00
Björn Lindqvist 70e9834f2f compiler.cfg.*: new system for emitting spill/reloads for gc calls (#1471)
GC calls were treated as sync points so all registers were spilled
around them. But if the gc call isn't triggered, it is unnecessary to
spill. This commit fixes that by handling ##call-gc specially and
putting ##spill and ##reloads in the same block as the gc call itself.
2016-04-22 19:21:15 +02:00
Björn Lindqvist e426e5c339 compiler.cfg.linear-scan.assignment: better vregs>regs 2016-04-11 01:17:13 +02:00
Björn Lindqvist 754f52d399 compiler.cfg.linear-scan.assignment: refactoring of assign-registers-in-block + tests 2016-04-11 01:17:13 +02:00
Björn Lindqvist 1a71407112 compiler.cfg.linear-scan.assignment: refactoring + tests
better expire-old-intervals, activate-new-intervals and assign-gc-roots
2016-04-03 20:56:29 +02:00
Björn Lindqvist 86606213de compiler.cfg.linear-scan.assignment: refactoring
Better definitions for expire-old-intervals, activate-new-intervals and
assign-registers-in-insn.
2016-04-03 20:56:29 +02:00
Björn Lindqvist 3ef33708ae compiler.cfg.linear-scan.assignment: dont think prepare-insn should be called twice here 2016-04-02 17:48:23 +02:00
Björn Lindqvist 76be7b54ed compiler.cfg.linear-scan.*: removed start and end from live-interval-state
They weren't needed because start>> was always equal to ranges min and
end>> ranges max
2016-04-01 19:16:35 +02:00
John Benediktsson 71ef8a22c2 disambiguate namespaces:set and sets:set. 2016-03-29 17:14:42 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07:00
Doug Coleman e0d1b14e5c factor: don't need FROM: namespaces => set or namespaces:set anymore 2015-08-12 11:25:57 -05:00
John Benediktsson b366a06c41 use reject instead of [ ... not ] filter. 2015-05-12 18:50:34 -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 c3ca8bd859 compiler.cfg.*: even more compiler docs 2015-04-29 09:31:58 -07:00
Björn Lindqvist d486de889d compiler.cfg.*: smaller doc improvements 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 aee55f1b83 compiler.cfg.linear-scan.assignment: forgot that i removed live-intervals>min-heap 2014-12-15 21:04:53 +01:00
Björn Lindqvist c810677b47 compiler.cfg.linear-scan.*: refactoring to simplify init-allocator and get rid of init-unhandled 2014-12-15 20:44:06 +01:00
Björn Lindqvist 52c6009aeb compiler.cfg.linear-scan.assignment: utility word heap-pop-while which lets you express expire-old-intervals and activate-new-intervals more nicely + tests 2014-12-15 20:40:49 +01:00
Björn Lindqvist 0af46ac4de compiler.cfg.linear-scan.assignment: more docs and refactoring of the init-unhandled and assign-registers-in-block words 2014-12-15 20:40:49 +01:00
John Benediktsson c65877104e compiler: cleanup usings. 2014-12-13 16:10:21 -08:00
Björn Lindqvist d3c91bea72 compiler.cfg.linear-scan.*: stub docs and tests 2014-11-16 06:25:54 -08:00
Alex Vondrak e90ce0865c compiler.cfg.ssa.destruction.leaders: break off leader-map to resolve circular dependencies (oops) 2012-12-31 11:20:57 -08: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
Slava Pestov 6b5fffc026 compiler: preliminary implementation of tracking derived pointers in GC maps 2010-09-27 20:12:44 -07:00
Slava Pestov ec2f42fd40 compiler.cfg.liveness: merge in compiler.cfg.liveness.ssa and simplify the code, since we don't compute live sets before SSA construction anymore 2010-09-25 14:36:58 -07:00
Slava Pestov 94f6ac98de compiler.cfg.linear-scan: fix bad interaction between inactive intervals and sync points 2010-07-29 21:06:48 -04:00
Slava Pestov 355d89e8e8 compiler.cfg: now that kill-blocks cannot contain instructions that define vregs we can skip them all 2010-07-27 12:40:31 -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 982e704626 compiler.cfg.linear-scan: clean up clobber-insn handling 2010-05-07 18:22:35 -04:00
Slava Pestov f5c5d8b44c compiler: remove flat machine representation and generate code directly from the CFG 2010-05-03 17:34:32 -04:00
Slava Pestov 38bafd2be8 compiler.cfg.linear-scan.assignment: spill slot representation logic was backwards, just like Factor 2010-05-03 17:34:29 -04:00
Slava Pestov 43f269e4eb Register allocation now uses SSA properties to coalesce values with different representations 2010-05-03 17:34:20 -04:00
Slava Pestov 9b34a4a054 compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation 2010-05-03 17:34:18 -04:00
Slava Pestov 43fc230c69 compiler.cfg.linear-scan: cleanups 2010-05-03 17:34:18 -04:00
Slava Pestov 95ff5ffe51 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov 51b13ce373 compiler.cfg.linear-scan: don't insert a _reload if the register is going to be overwritten anyway 2010-05-03 17:34:14 -04:00
Slava Pestov 503c0fcfde compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies 2010-05-03 17:34:01 -04:00