Björn Lindqvist
964ae127a2
compiler.cfg.dependence: docs
2014-11-22 17:31:40 -08:00
Björn Lindqvist
aca14563b0
compiler.cfg.dependence/scheduling: fix(?) for #1187 , just avoid shuffling ##peek...
2014-11-22 17:31:40 -08:00
Björn Lindqvist
9d0379b9ba
compiler.cfg.dependence: if node subclasses identity-tuple it doesn't need the number slot
2014-11-22 17:31:40 -08:00
Björn Lindqvist
eb9ca1c6fe
compiler.cfg.dependence: node class doesn't need parent attribute, that's nice
2014-11-22 17:31:40 -08:00
Björn Lindqvist
0feece123c
compiler.cfg.dependence/scheduling.tests: new tests, some that doesnt work yet
2014-11-22 17:31:40 -08:00
Björn Lindqvist
8347f43f84
compiler.cfg.dependence/scheduling: refactoring to get rid of node's follows>>
2014-11-22 17:31:40 -08:00
Björn Lindqvist
a96fff60af
compiler.cfg.dependence: keys-for ?first is not deterministic, use tiebreak-parents to get predictable ordering
2014-11-22 17:31:39 -08:00
Björn Lindqvist
7ebceb50e5
compiler.cfg.dependence/scheduling: select-parent and roots moved to scheduling
...
the roots stuff is only used by compiler.cfg.scheduling, so it's more
simple to have it there than in compiler.cfg.dependence
2014-11-22 17:31:39 -08:00
Björn Lindqvist
586c47e5ab
compiler.cfg.dependence/scheduling: more readable version of the select word
2014-11-22 17:31:39 -08:00
Björn Lindqvist
b5754d32ef
compiler.cfg.dependence: moved tree verification code to .tests
...
Since verify-trees just checked that make-trees worked correctly, it's
better to have that code in the test vocab instead of slowing down
every compile by running it
2014-11-22 17:31:39 -08:00
Björn Lindqvist
2ea1a999a4
compiler.cfg.dependence.tests: unit tests for the dependence vocab
2014-11-22 17:31:39 -08:00
Björn Lindqvist
3f3cc0eb8a
compiler.cfg.dependence: now the nodes are on the stack instead of being saved in a dynamic variable (fp++)
2014-11-22 17:31:39 -08:00
Björn Lindqvist
2cfd55b864
compiler.cfg.dependence/scheduling: refactoring, trying to get rid of the ugly usage of nodes dynamic variable
2014-11-22 17:31:39 -08:00
Björn Lindqvist
0a7726b66d
compiler.cfg.dependence: more docs for the vocab
2014-11-22 17:31:38 -08:00
Björn Lindqvist
6560778d2a
compiler.cfg.*: stub docs for register scheduling vocabs
2014-08-13 11:01:11 -07:00
John Benediktsson
4e72d80256
Using "same?" in more places.
2012-07-21 10:22:44 -07:00
Slava Pestov
edddffdadd
compiler.cfg.dependence: Add ##allot to control dependency chain, so that we don't re-order an allocation and initialization with an alien call. The alien call might GC, exposing uninitialized memory to the GC. Fixes #53 , fixes #58 , fixes #20 .
2011-08-28 21:25:39 -07:00
Slava Pestov
54f97557e6
compiler.cfg.dependence: compute dependency graph for write barrier instructions
2010-09-05 22:51:17 -07:00
Slava Pestov
48e96ef032
compiler.cfg.scheduling: update to support multiple-output instructions
2010-07-15 17:38:34 -04:00
Slava Pestov
e27adb2830
compiler: re-architect low-level optimizer to allow more than one output value per instruction
2010-07-13 07:40:14 -04:00
Slava Pestov
627295f094
Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO)
2010-05-06 17:21:02 -04:00
Daniel Ehrenberg
b02208ceb2
Some fixes to merge scheduling
2010-05-03 17:54:46 -05:00
Daniel Ehrenberg
fbb1eb98a9
Improving dependence graph correctness
2010-04-18 19:59:52 -05:00
Daniel Ehrenberg
31f23c8eba
Scheduling uses sets where appropriate
2010-03-24 10:38:52 -04:00
Daniel Ehrenberg
2034e1ef05
Fewer unnecessary dependence edges between stack operations, implemented by reviving stack height normalization. Now, 40% of spills and reloads are eliminated in total
2010-02-24 14:20:43 -06:00
Daniel Ehrenberg
6d36bfd104
Modifying dependence graph construction for faster compile time
2010-02-13 21:35:40 -06:00
Daniel Ehrenberg
5a3d0fb883
Scheduling doesn't have such redundant data structures anymore
2010-02-11 21:21:22 -06:00
Daniel Ehrenberg
a6f255a985
Scheduling schedules more BBs--it was leaving out some ones that shouldn't've been. Now it's almost 30% of spills and reloads that are eliminated
2010-02-11 21:02:02 -06:00
Daniel Ehrenberg
edae2fa2d3
Making the fan-in tree generation work. Finally: a 20% reduction in spills and reloads on x86!
2010-02-11 00:19:53 -06:00
Daniel Ehrenberg
6fe9aa50f7
Working on fixing scheduling
2010-02-10 22:36:26 -06:00
Daniel Ehrenberg
04946dcddd
A first attempt at implementing Vivek Sarkar's algorithm for scheduling for register pressure
2010-02-10 21:43:30 -06:00