Commit Graph

24 Commits (0feece123c8da5e9cd3dc38a4126ec417d4f5887)

Author SHA1 Message Date
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 645a70f1d4 compiler.cfg.scheduling: refactoring to get rid of the roots dynamic variable 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 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 a1b20e451b compiler.cfg.scheduling: split-insns returns a 3-tuple instead of 3 items on the stack 2014-11-22 17:31:38 -08:00
Björn Lindqvist c777cb954a compiler.cfg.scheduling: refactor to use split-insns and compiler.cfg.linear-scan.numbering + tests 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
Joe Groff 0c022f2454 compiler: add ##safepoint IR insn 2011-10-27 21:14:46 -07:00
Slava Pestov 3ed1910ab1 compiler.cfg.scheduling: remove old scheduling test code, adding a better way of testing scheduling 2011-08-28 21:25:35 -07:00
Slava Pestov 546b81b697 compiler.cfg.scheduling: always run scheduling because heuristic was broken 2010-09-25 16:31:42 -07:00
Slava Pestov 60ddbd9d9b compiler.cfg.scheduling: ##dispatch must go at the end since its a control flow transfer 2010-07-15 20:55:31 -04:00
Slava Pestov 48e96ef032 compiler.cfg.scheduling: update to support multiple-output instructions 2010-07-15 17:38:34 -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
Daniel Ehrenberg 6892bac1ca Making some scheduling assertions only run in unit tests 2010-04-15 17:36:43 -05:00
Daniel Ehrenberg aae69daa96 Fixing USING: line of scheduling to remove unnecessary vocabs 2010-04-05 15:45:06 -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 4f7fd41cf2 Using original instruction order as a tiebreaker in scheduling 2010-02-11 23:12:17 -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 04946dcddd A first attempt at implementing Vivek Sarkar's algorithm for scheduling for register pressure 2010-02-10 21:43:30 -06:00