Commit Graph

36 Commits (1a38a6f63a341f20bb8a9237bfa91e32ebfd40dc)

Author SHA1 Message Date
Björn Lindqvist c640e3b8c1 compiler.cfg.*: changing height-state from a 2-el array to a tuple
This way, it is a little easier to see what is going on in the local
analysis phase.
2016-09-08 04:01:25 +02:00
Björn Lindqvist 2edda80b5e compiler.cfg.*: removing the adjust-d word
inc-stack can be used in emit-call-block if we check if the block is a
kill block in end-local-analysis
2016-09-05 12:12:01 +02:00
Björn Lindqvist 26d53f9019 compiler.cfg.*: compiler doc updates 2016-09-01 02:16:30 +02:00
Björn Lindqvist 2fe26444aa compiler.cfg.builder.*: docs and tests 2016-05-24 17:22:38 +02:00
Björn Lindqvist b8e0d5e278 compiler.cfg.builder.*: the when* checks aren't needed 2016-04-30 09:28:30 +02:00
Björn Lindqvist 4a472d7882 compiler.cfg.builder.blocks: return the slots, they are absolutely
needed for bootstrap
2016-03-16 14:08:49 +01:00
Björn Lindqvist f906f1c282 compiler.cfg.*: the make-kill-block word is not needed 2016-03-16 12:26:03 +01:00
Björn Lindqvist 5ca571e304 compiler.cfg.builder.blocks: some cleanup 2016-03-16 11:48:31 +01:00
Björn Lindqvist b27634bff7 compiler.cfg.builder.blocks: removes assignments to basic-block variable
Now it isn't used at all in the cfg creation step.
2016-03-09 23:24:43 +01:00
Björn Lindqvist 9df955e199 compiler.cfg.*: big changes which removes the last basic-block uses
All intrinsic code generating words signatures are changed from ( node
-- ) to ( block node -- block' ) so the current block is now always
passed on the stack.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 482998974b compiler.cfg.*: more refactoring to remove basic-block get:s
Now almost all words pass around the current basic block on the
stack. Left is updating all intrinsics.
2016-03-09 23:24:42 +01:00
Björn Lindqvist f9c6d7cc43 compiler.cfg.*: changes to remove basic-block variable
The emit-node generics signature is changed to ( block node -- block' )
so that it always returns the next block to operate on. Signature for a
lot of related words are changed similarily. Now there is only a few
basic-block usages left.
2016-03-09 23:24:42 +01:00
Björn Lindqvist 07adc2ecae compiler.cfg.*: changed generic emit-node to take the current block as
stack parameter

The idea is to eventually completely remove the basic-block dynamic
variable from cfg construction.
2016-03-09 23:24:42 +01:00
John Benediktsson 3affad7681 docs: using $maybe. 2015-12-11 17:05:45 -08:00
Björn Lindqvist 6a2c36f5ec compiler.cfg.builder.blocks: help-lint fix 2015-11-23 16:32:01 +01:00
Björn Lindqvist 63fd4d25cf compiler.cfg.*: more fixes to pass basic-block on the stack than in a
dynamic variable
2015-11-22 01:06:11 +01:00
Björn Lindqvist 1421779c9e compiler.cfg.*: refactors words to take a block parameter instead of
using the basic-block dynamic variable

the idea is to make the code easier to follow by limiting the use of
dynamic variables
2015-11-22 00:37:34 +01:00
Björn Lindqvist 655faadec9 compiler.*: now when we're tracking uninitialized locations instead of
initialized ones, the height slot isn't needed on ##call anymore
2015-05-17 07:59:34 +02:00
Björn Lindqvist 8df92abeb9 compiler.*,cpu.*: add a height slot to ##call nodes, then other compiler
passes can much easier to accurate liveness analysis on stack locations
2015-05-09 20:04:22 -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 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 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 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
John Benediktsson c65877104e compiler: cleanup usings. 2014-12-13 16:10:21 -08:00
Björn Lindqvist 769ca5550f compiler.cfg.*: docs for compiler words 2014-08-13 11:01:11 -07:00
John Benediktsson bf473ec943 compiler.cfg: fix some docs. 2014-06-08 18:20:27 -07:00
Björn Lindqvist 160df8b3f1 Docs: for compiler.cfg.* vocabs 2014-06-08 11:48:31 -07:00
Björn Lindqvist 2d7f344109 Docs: more docs for compiler.cfg.* words 2014-06-08 11:48:30 -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
Slava Pestov 7e24994db5 Whitespace fix 2010-06-23 03:56:17 -04:00
Slava Pestov 68cd067f31 compiler.cfg.builder: if there is a conditional where every branch is known to throw an error, don't process any of the (unreachable) code after the conditional, since this can confuse analysis (reported by Daniel Ehrenberg) 2010-06-23 03:33:15 -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 7590ad3574 compiler.cfg: introduce less temporaries when building CFG 2009-07-24 03:37:18 -05:00
Slava Pestov d947c61bd7 compiler.cfg.stacks: now performs online local DCN 2009-07-23 20:54:38 -05:00