Commit Graph

31 Commits (964ae127a2d706d05cc530bec31fbcb86952d25c)

Author SHA1 Message Date
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