Commit Graph

709 Commits (80e10f1bd033e65fd5b17e634d0bb52b28f05e8e)

Author SHA1 Message Date
Slava Pestov 80e10f1bd0 compiler.cfg: Fix some unit tests 2009-07-28 08:56:14 -05:00
Slava Pestov d394dd3c36 compiler.cfg.branch-splitting: re-enable with a better heuristic 2009-07-28 08:48:05 -05:00
Slava Pestov ff81b055a5 compiler.cfg.utilities: add loop-entry? word 2009-07-28 08:47:50 -05:00
Slava Pestov e6f5eab598 compiler.cfg.linear-scan: fix resolve pass 2009-07-28 08:47:35 -05:00
Slava Pestov 3edf4a2b75 compiler.cfg.coalescing: cleanups 2009-07-28 08:47:03 -05:00
Slava Pestov cf26800dbd Revert "compiler.cfg.coalescing: some cleanups"
This reverts commit e5834c4ba7.
2009-07-28 07:51:44 -05:00
Slava Pestov 18717a449f compiler.cfg.linear-scan.resolve: unit tests 2009-07-28 07:41:41 -05:00
Slava Pestov 009cfbfc8d compiler.cfg.utilities: fix stack effect declaration 2009-07-28 07:40:09 -05:00
Slava Pestov 857ef94acc compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass 2009-07-28 07:39:46 -05:00
Slava Pestov f2c8f2824a compiler.cfg.coalescing: some cleanups 2009-07-28 07:37:50 -05:00
Slava Pestov 3e6e5278a4 compiler.cfg.utilities: fix load error 2009-07-28 06:51:03 -05:00
Slava Pestov a4cb242396 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 cb07256ff5 Add some compiler tests 2009-07-28 06:45:31 -05:00
Slava Pestov 1878b0dc32 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 d2b158c8e4 compiler.cfg.critical-edges: reset RPO 2009-07-28 01:04:13 -05:00
Slava Pestov cf90945b4c Add some tests that directly generate low level IR 2009-07-27 22:29:33 -05:00
Slava Pestov 3cc71a1934 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 e8cf50ac3e compiler.cfg.two-operand: make it work in more cases 2009-07-27 22:28:29 -05:00
Slava Pestov 423d2996fa compiler.cfg.debugger: reset vreg counters 2009-07-27 22:28:13 -05:00
Slava Pestov c5d7ed58a5 Debugging compiler.cfg.coalescing 2009-07-27 19:24:13 -05:00
Slava Pestov 1a765c38da compiler.cfg.parallel-copy: fix algorithm 2009-07-27 16:54:47 -05:00
Slava Pestov 31555b05cf compiler.codegen: collect instruction statistics 2009-07-27 03:58:15 -05:00
Slava Pestov 9fa71959b5 compiler.cfg.coalescing: fix shuffling bug 2009-07-27 03:58:01 -05:00
Slava Pestov e112b0d70e compiler.cfg.phi-elimination: no longer needed 2009-07-27 02:20:53 -05:00
Slava Pestov ba696b68b8 compiler.cfg.coalescing: more or less complete, now needs debugging 2009-07-27 02:20:45 -05:00
Slava Pestov a32cbdd231 compiler.cfg.coalescing: more work done 2009-07-27 00:31:21 -05:00
Slava Pestov 501629cf75 compiler.tree.propagation.info: fix load error 2009-07-27 00:30:24 -05:00
Slava Pestov a5e5510615 compiler.cfg.coalescing: work in progress 2009-07-26 21:11:26 -05:00
Slava Pestov e9935b6aad compiler.cfg.copy-prop: remove ##phi nodes where all inputs are copy-equivalent 2009-07-26 21:11:02 -05:00
Slava Pestov fc41140720 compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info 2009-07-26 21:10:33 -05:00
Slava Pestov 1319d8e549 compiler.cfg.def-use: build def-use chains 2009-07-26 21:10:14 -05:00
Slava Pestov 2137c9cc79 compiler.cfg.dominance: add pre order and max pre order numbers; use them to implement dominates? check 2009-07-26 21:10:05 -05:00
Slava Pestov 053de0af40 compiler.cfg.copy-prop: work in progress 2009-07-24 19:56:21 -05:00
Slava Pestov 2fb0198d48 compiler.cfg.parallel-copy: forgot to add this 2009-07-24 19:46:33 -05:00
Slava Pestov 4624af75f4 compiler.cfg.phi-elimination: move some utilities from compiler.cfg.utilities here since that's the only place they get used 2009-07-24 16:45:31 -05:00
Slava Pestov 13c3fdcb5c compiler.cfg: Fixing test failures 2009-07-24 06:08:07 -05:00
Slava Pestov 7068de6cd3 compiler.cfg.copy-prop: Global copy propagation 2009-07-24 05:30:46 -05:00
Slava Pestov e0f6d89ff1 compiler.cfg.value-numbering: insert ##copy instructions for instructions whose expressions simplify. While subsequent usages are replaced with the instruction computing the simplified vreg locally, global usages may exist of the original instruction. In this case, the ##copy is not dead 2009-07-24 05:30:30 -05:00
Slava Pestov de73534424 compiler.cfg.write-barrier: simplify a little bit. It doesn't need to do copy propagation, since its a separate pass now 2009-07-24 05:29:28 -05:00
Slava Pestov 7590ad3574 compiler.cfg: introduce less temporaries when building CFG 2009-07-24 03:37:18 -05:00
Slava Pestov 2bea107202 compiler.cfg.builder: fix stack effect declaration 2009-07-23 21:24:15 -05:00
Slava Pestov d947c61bd7 compiler.cfg.stacks: now performs online local DCN 2009-07-23 20:54:38 -05:00
Slava Pestov ff7f0e2f3b Add testcase for recent bug 2009-07-23 18:03:14 -05:00
Slava Pestov b1afd4c491 compiler.cfg.linear-scan.mapping: simplify 2009-07-23 18:03:04 -05:00
Slava Pestov 747a2d72c8 compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination 2009-07-23 18:02:46 -05:00
Slava Pestov 93c58a8bb5 compiler.cfg.branch-splitting: now that we do SSA construction we can split branches with fixnum overflow ops (which have a live-out) 2009-07-23 18:02:29 -05:00
Slava Pestov 610c3b33c7 compiler.cfg.intrinsics: Disable inline allocation for now 2009-07-22 21:11:06 -05:00
Slava Pestov 69ded76c66 Fixing compiler tests 2009-07-22 21:10:50 -05:00
Slava Pestov 45c66b58af compiler.cfg.dcn.rewrite: remove unused word 2009-07-22 19:18:12 -05:00
Slava Pestov 5559d77d05 compiler.cfg.checker: eliminate dead code before checking MR 2009-07-22 19:17:57 -05:00