Commit Graph

751 Commits (00254d1bdecc8ede12f5cd8f458976ae0ce7d636)

Author SHA1 Message Date
Slava Pestov 00254d1bde compiler.cfg.ssa.destruction: new implementation: simpler and more correct 2009-08-02 10:26:52 -05:00
Slava Pestov 7665784911 Compiler speedups 2009-08-02 09:16:21 -05:00
Slava Pestov d17d00595e compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities 2009-08-02 08:20:50 -05:00
Slava Pestov ea7ba75a7f Move compiler.cfg.ssa.destruction.interference to compiler.cfg.ssa.interference 2009-08-02 08:15:36 -05:00
Slava Pestov b90e2c92f0 compiler.cfg.ssa.destruction.interference: fix a bug and add unit tests 2009-08-02 08:11:30 -05:00
Slava Pestov 1d289e68a4 compiler.cfg.debugger: fix load error 2009-08-02 08:11:04 -05:00
Slava Pestov d84216ce6c compiler.cfg.ssa.destruction: add some unit tests 2009-08-02 06:17:44 -05:00
Slava Pestov ebe70b3bb1 compiler.cfg.critical-edges: update ##phi nodes 2009-08-02 06:17:22 -05:00
Slava Pestov 64b719269f compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block 2009-08-02 06:16:58 -05:00
Slava Pestov 3a9e164275 compiler tests: add test case for coalescing bug 2009-08-02 03:49:54 -05:00
Slava Pestov 8028eb5776 compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
Slava Pestov c89cb4e3ca compiler.cfg.two-operand: if last instruction in a basic block is an overflowing arithmetic op of the form x = y op x, we now convert it correctly. This fixes compiler regression with benchmark.dawes after recent coalescing changes 2009-08-01 23:50:47 -05:00
Slava Pestov 49ac00097e compiler.tree.propagation.call-effect: fix case where quotation inlining could enter an infinite loop: [ dup call( quot -- ) ] dup call( quot -- ) etc 2009-08-01 23:34:14 -05:00
Slava Pestov 87a5ea36d1 compiler.cfg.copy-prop: eliminate phi nodes that have the same inputs as a previous phi node in the basic block 2009-08-01 22:33:27 -05:00
Slava Pestov eeea7f019d Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:22:51 -05:00
Slava Pestov bb1c904261 compiler.cfg.ssa.destruction: fix bug in trivial-interference heuristic, and type error in code path that didn't run before 2009-08-01 20:22:31 -05:00
Daniel Ehrenberg 56f6f4d0ce Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:33:41 -04:00
Slava Pestov 7ee7346505 compiler.cfg.liveness.ssa: fix bad bug discovered by littledan 2009-08-01 18:54:24 -05:00
Slava Pestov 86f8445eb6 compiler.cfg.stacks: kill set now includes all locations eliminated as a result of stack height decrease; reduces number of ##replace instructions generated by 2% 2009-08-01 06:12:43 -05:00
Slava Pestov 14d8cc4e5e compiler: Oops, typos in unit tests 2009-07-31 22:33:02 -05:00
Slava Pestov a5c4877bf6 compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence 2009-07-31 18:34:15 -05:00
Slava Pestov db55a031df Move a bunch of GC check generation logic to platform-independent side 2009-07-30 21:28:27 -05:00
Daniel Ehrenberg 76a5972a69 Faster SSA liveness testing 2009-07-30 15:23:47 -04:00
Slava Pestov 99216b8435 compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
Slava Pestov 8677d56466 compiler.cfg.linear-scan: fix case where a register can be made available for only a part of a live interval's lifetime, but there are no more usages after the split location. This case never came up until global stack analysis, at which point it started to be exercised on x86-32 2009-07-30 02:13:30 -05:00
Slava Pestov 8ae9c4477a compiler.cfg.ssa.destruction: fix 2009-07-29 23:43:00 -05:00
Slava Pestov 0d42e0fc1e compiler.cfg.ssa.destruction: tweak in preparation for landing Dan's new SSA liveness analysis 2009-07-29 23:35:51 -05:00
Slava Pestov c815c8c5b5 compiler.cfg.linear-scan: more test fixes 2009-07-29 07:04:52 -05:00
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 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 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
Slava Pestov ac7447483d compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa 2009-07-28 12:56:33 -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
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 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 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