Commit Graph

2137 Commits (0d57734dab7419e1840775cd9d5b11ebe95a799d)

Author SHA1 Message Date
Björn Lindqvist 9decb6a91e compiler.cfg.*: better way to store the block height
It is stored as a height-state instance on the height slot of the
basic-block. It will make better analysis possible because you see how
much the height increased or decreased in the block.
2016-09-08 04:01:25 +02:00
Björn Lindqvist 670d2c344e compiler.cfg.stacks.*: new word local-loc>global, replacing untranslate-loc 2016-09-08 04:01:25 +02:00
Björn Lindqvist 6f06b51443 compiler.cfg.stacks.local: simplified code for getting kill locations 2016-09-08 04:01:25 +02:00
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 ee5c28f470 compiler.cfg.stacks.*: removing the adjust word which wasn't useful 2016-09-05 10:37:29 +02:00
Björn Lindqvist a36ac6e435 compiler.tree: these constructor words aren't needed 2016-09-04 06:23:50 +02:00
Björn Lindqvist 367bff6339 compiler.cfg.builder: simplification of the shuffling logic 2016-09-04 06:22:54 +02:00
Björn Lindqvist af7e4903a2 compiler.cfg.debugger: print -> write to not add stray newlines 2016-09-01 09:59:15 +02:00
Björn Lindqvist 26d53f9019 compiler.cfg.*: compiler doc updates 2016-09-01 02:16:30 +02:00
Björn Lindqvist f7542e95a9 compiler.cfg.stacks.finalize: only insert blocks if they aren't empty
Previously, a lot of empty blocks were added too.
2016-09-01 01:54:11 +02:00
Björn Lindqvist c26379ea7e compiler.cfg.debugger: better code for outputting using the formatting vocab 2016-08-30 04:04:21 +02:00
Björn Lindqvist b82ea14af0 sets,compiler.cfg.stacks.global: putting the refine word in sets 2016-08-30 02:34:37 +02:00
Björn Lindqvist 6c88577ee7 compiler.cfg.*: replacing the peek/replace/kill-sets with slots
So instead of storing the info in variables, it is stored in slots on
the basic-block tuple which is much nicer.
2016-08-29 12:07:47 +02:00
Björn Lindqvist e8e1811542 compiler.cfg.stacks.height: removing vocab
It was so small so better to put the words it contained in the vocabs
where they are used.
2016-08-26 11:06:17 +02:00
Björn Lindqvist f0834e7b36 compiler.prettyprint: new vocab for prettyprinting compiler types
The require-when ensures that the prettyprint methods are loaded when
both the compiler and prettyprint is loaded.
2016-08-15 15:16:41 +02:00
Björn Lindqvist a36c0cb5ac compiler.*: moving all words only relevant for testing to compiler.test 2016-08-12 15:13:51 +02:00
Björn Lindqvist 2a19e00ff3 compiler.cfg.test-words: vocab is unused so we can remove it 2016-08-12 14:06:19 +02:00
Björn Lindqvist 435a4e29b9 compiler.cfg.stacks.local: using compiler.cfg.debugger to ensure consistent prettyprint output 2016-08-12 13:55:10 +02:00
Björn Lindqvist ddc5ece757 alien.*: frontend varargs support! #1677
alien-invoke gets an extra parameter indicating if the call uses varargs
or not. In 99.9% of the cases, the parameter should be f, but is t if
varargs are indicated. E.g

: do-printf ( fmt d -- st ) int f "printf" { c-string double } t alien-invoke ;
2016-08-10 21:34:37 +02:00
Björn Lindqvist 7ab3ebfdd5 compiler.cfg.builder.alien: simpler caller-stack-frame word 2016-08-10 21:34:37 +02:00
Björn Lindqvist 24a02a1c8f compiler.*: Backend implementation of varargs
It is turned off by default. Support for using it coming soon. :)
2016-08-08 12:02:19 +02:00
Björn Lindqvist a79309680c compiler.*, stack-checker.*: fixes to make the tests work on 32bit too 2016-08-05 16:44:19 +02:00
Björn Lindqvist 1b08ef3593 compiler.cfg.builder.*: fix for tests that broke on windows 2016-08-05 01:01:25 +02:00
Björn Lindqvist e67745aaba stack-checker.*: removes the in-d and out-d slots from the alien-node-params tuple
That data is already on the #alien-node tuple so it doesn't need to be
stored twice.
2016-08-04 20:30:58 +02:00
Björn Lindqvist 00d15b66a6 compiler.tests.alien: tests for varargs calls 2016-08-02 23:36:02 +02:00
Björn Lindqvist 5794ca6834 compiler.cfg.builder.alien.tests: fix for the test case i broke 2016-08-02 01:29:19 +02:00
Björn Lindqvist af62d33ba9 compiler.cfg.*: lots of new tests 2016-08-01 21:52:06 +02:00
Björn Lindqvist 2e332f73b5 compiler.*: new docs 2016-08-01 21:52:05 +02:00
Björn Lindqvist e359f3fca4 compiler.cfg.builder.alien.params: refactors the next-reg-param and reg-class-full? words 2016-08-01 21:52:05 +02:00
Björn Lindqvist 8aef16bed2 compiler.cfg.builder.alien.*: merge of with-param-regs and with-param-regs* 2016-08-01 21:52:05 +02:00
Alexander Iljin 2fd5654473 Add EOL at EOF for all authors.txt files for consistency
In some instances replaced CR/LF with LF.
2016-07-30 09:25:30 -07:00
Björn Lindqvist 75a3e191b2 compiler.*: a bunch of random doc additions 2016-06-21 23:15:20 +02:00
Björn Lindqvist 2fe26444aa compiler.cfg.builder.*: docs and tests 2016-05-24 17:22:38 +02:00
Björn Lindqvist 249483fc4f compiler.cfg.value-numbering.*: new docs 2016-05-24 17:21:27 +02:00
Björn Lindqvist 0cbd0552b0 bootstrap.image.primitives: resize-byte-array can also use integer-array-capacity 2016-05-24 14:20:46 +02:00
Björn Lindqvist e60d45a169 Docs: fixing help-lint failures 2016-05-20 13:35:08 +02:00
Björn Lindqvist 9f0cd740c8 compiler.constants: docs 2016-05-19 21:49:51 +02:00
Björn Lindqvist 27f9613694 compiler.cfg.value-numbering.comparisons: some duplicated words that can
be removed
2016-05-19 16:15:36 +02:00
Björn Lindqvist 3810889f91 compiler.cfg.value-numbering.graph: docs and test 2016-05-19 16:10:06 +02:00
Björn Lindqvist 1eaa151a3c compiler.cfg.value-numbering.comparisons: docs and tests 2016-05-19 14:04:23 +02:00
Björn Lindqvist 05de15bdc1 compiler.cfg.utilities: rewrite apply-passes as a macro
It makes for more detailed callstacks when profiling.
2016-05-18 23:49:03 +02:00
Björn Lindqvist 30451ebf5a compiler.cfg.*: new slots ds-height and rs-height
They are used when recording the blocks stacks height instead of the
ds-heights and rs-heights variables. It makes the code a bit simpler.
2016-05-03 01:16:50 +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 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 d5cb972a71 Docs: ui and compiler 2016-04-22 18:23:02 +02:00
Björn Lindqvist 720edcbd3b style fixes - indenting slots and word bodies 2016-04-22 13:06:41 +02:00
Björn Lindqvist 92a85ebe86 compiler.*: more compiler docs 2016-04-22 12:57:54 +02:00
Björn Lindqvist 3e14ceafe2 compiler.*: more compiler tests 2016-04-22 12:44:25 +02:00
Björn Lindqvist e58e1b9a65 compiler.cfg.ssa.interference.live-ranges: Docs 2016-04-22 12:33:39 +02:00