Commit Graph

15948 Commits (5ecd0d91a3d5bcf5307b384d22db50b491a49592)

Author SHA1 Message Date
Slava Pestov 5ecd0d91a3 compiler.cfg: remove 'regs' slot from instruction tuples now that register allocation doesn't use it anymore 2009-07-29 06:50:46 -05:00
Slava Pestov bd70967f8a compiler.cfg.linear-scan.resolve: fix unit tests to not depend on hashing 2009-07-29 06:48:01 -05:00
Slava Pestov 3ca6fab9ba bit-arrays: fix resize method regression after recent equal? method optimization 2009-07-29 06:47:50 -05:00
Slava Pestov f260500bcd compiler: fix test 2009-07-29 06:39:54 -05:00
Slava Pestov 68d06c4b06 compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement 2009-07-29 06:36:14 -05:00
Slava Pestov 02b1cc0c40 compiler.cfg.linear-scan.assignment: more efficient data structures 2009-07-29 06:12:33 -05:00
Slava Pestov 6e56e08012 compiler.cfg.linearization: fix bootstrap 2009-07-28 22:52:07 -05:00
Slava Pestov 82fa68d075 sequences: add declaration so that array-flip compiles better 2009-07-28 21:33:12 -05:00
Slava Pestov 89039e9977 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 21:31:25 -05:00
Slava Pestov c634f5a9a0 compiler.cfg.linearization: rotate loops. 2x speedup with empty times loop, 1.5x speedup on benchmark.dawes 2009-07-28 21:31:08 -05:00
Joe Groff 490e92296e Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 14:38:25 -05:00
Joe Groff 658a49d02d i just cut and pasted 2009-07-28 14:38:10 -05:00
Slava Pestov ac7447483d compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa 2009-07-28 12:56:33 -05:00
Slava Pestov c1fd97d515 Merge branch 'dcn' 2009-07-28 12:37:45 -05:00
Slava Pestov bbd4e4af3e compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations 2009-07-28 12:29:07 -05:00
Joe Groff 76fc1e1d3c Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 12:20:16 -05:00
Joe Groff 4c664a469a SSE4 opcodes for x86 assembler 2009-07-28 12:19:37 -05:00
Slava Pestov a2ae560a8a compiler.cfg.ssa.construction: use the optimization from the pruned-SSA paper to minimize stack pushing and popping 2009-07-28 11:52:42 -05:00
Slava Pestov 61371713b7 Move set-last from circular.private to sequences 2009-07-28 11:51:47 -05:00
Slava Pestov afd914c808 Merge branch 'master' into dcn 2009-07-28 11:20:43 -05:00
Slava Pestov 927e951bfe Move Joe's HEX{ syntax to byte-arrays.hex in basis 2009-07-28 11:20:28 -05:00
Slava Pestov d18a80dedb compiler.cfg.graphviz: add render-dom word 2009-07-28 11:16:32 -05:00
Slava Pestov 2a87faf681 IN: fix for compiler test 2009-07-28 11:16:21 -05:00
Slava Pestov 31caa7af2f compiler.cfg.ssa.construction: Use TDMSC algorithm to compute Phi placement 2009-07-28 11:16:10 -05:00
Slava Pestov 4203baf231 Faster bit-array equality, add bit-set-subset? word 2009-07-28 11:14:57 -05:00
Slava Pestov 7a158d84da compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction 2009-07-28 09:34:08 -05:00
Slava Pestov 905f52d4a9 compiler.cfg: Fix some unit tests 2009-07-28 08:56:14 -05:00
Slava Pestov 8f08ce94fa compiler.cfg.branch-splitting: re-enable with a better heuristic 2009-07-28 08:48:05 -05:00
Slava Pestov 91d2b3e805 compiler.cfg.utilities: add loop-entry? word 2009-07-28 08:47:50 -05:00
Slava Pestov 6d4a54201b compiler.cfg.linear-scan: fix resolve pass 2009-07-28 08:47:35 -05:00
Slava Pestov f61dff0d5e compiler.cfg.coalescing: cleanups 2009-07-28 08:47:03 -05:00
Slava Pestov 5d3a795e7d Revert "compiler.cfg.coalescing: some cleanups"
This reverts commit e5834c4ba7.
2009-07-28 07:51:44 -05:00
Slava Pestov c44b13c29e compiler.cfg.linear-scan.resolve: unit tests 2009-07-28 07:41:41 -05:00
Slava Pestov 3fc36e3750 compiler.cfg.utilities: fix stack effect declaration 2009-07-28 07:40:09 -05:00
Slava Pestov f19ee61d3a compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass 2009-07-28 07:39:46 -05:00
Slava Pestov e5834c4ba7 compiler.cfg.coalescing: some cleanups 2009-07-28 07:37:50 -05:00
Slava Pestov e6bdd27c2e compiler.cfg.utilities: fix load error 2009-07-28 06:51:03 -05:00
Slava Pestov 073be4f340 classes.algebra: stack effect fix 2009-07-28 06:49:09 -05:00
Slava Pestov fcf6c121bd tools.annotations: doc addition 2009-07-28 06:49:03 -05:00
Slava Pestov 496d59d86c compiler.cfg.coalescing: Only run if CFG has ##phi nodes, fix interference for case where value is not used in a block and is not live-in, forgot to run liveness analysis first 2009-07-28 06:48:20 -05:00
Slava Pestov 8ac396d9e0 Add some compiler tests 2009-07-28 06:45:31 -05:00
Slava Pestov 2fe741568c compiler.cfg.liveness: fix liveness computation in case where instruction uses a register it defines 2009-07-28 06:45:02 -05:00
Slava Pestov d914e9cc4f compiler.cfg.graphviz: A utility for rendering CFGs with graphviz 2009-07-28 06:41:29 -05:00
Slava Pestov 3550880850 compiler.cfg.critical-edges: reset RPO 2009-07-28 01:04:13 -05:00
Joe Groff 1fe11f7c87 SSE1–SSSE3 opcodes + branch hints for x86 assembler 2009-07-28 00:22:27 -05:00
Slava Pestov 164e5c4eb5 Add some tests that directly generate low level IR 2009-07-27 22:29:33 -05:00
Slava Pestov 536dc1c014 compiler.cfg.coalescing: precompute live intervals, add support for instructions where output cannot equal an input, split critical edges 2009-07-27 22:29:17 -05:00
Slava Pestov cf23ee7996 compiler.cfg.two-operand: make it work in more cases 2009-07-27 22:28:29 -05:00
Slava Pestov 064248d25b compiler.cfg.debugger: reset vreg counters 2009-07-27 22:28:13 -05:00
Slava Pestov f0a5ac3fbb cpu.x86: compile a load of zero, and adds, subs where dst = src1 more efficiently 2009-07-27 22:27:54 -05:00