Commit Graph

836 Commits (e85324b5da20ec4fe78698730e754442a6889959)

Author SHA1 Message Date
Slava Pestov e6d05dc722 compiler.cfg.phi-elimination: no longer needed 2009-07-27 02:20:53 -05:00
Slava Pestov 83d40198a4 compiler.cfg.coalescing: more or less complete, now needs debugging 2009-07-27 02:20:45 -05:00
Slava Pestov d7f12feb64 compiler.cfg.coalescing: more work done 2009-07-27 00:31:21 -05:00
Slava Pestov 420e28b8bd compiler.tree.propagation.info: fix load error 2009-07-27 00:30:24 -05:00
Slava Pestov 76de5a9376 compiler.cfg.coalescing: work in progress 2009-07-26 21:11:26 -05:00
Slava Pestov 0a3a08e506 compiler.cfg.copy-prop: remove ##phi nodes where all inputs are copy-equivalent 2009-07-26 21:11:02 -05:00
Slava Pestov 99601d34fa compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info 2009-07-26 21:10:33 -05:00
Slava Pestov 5e39e8c11f compiler.cfg.def-use: build def-use chains 2009-07-26 21:10:14 -05:00
Slava Pestov 6f37596113 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 3293a72580 compiler.cfg.copy-prop: work in progress 2009-07-24 19:56:21 -05:00
Slava Pestov ce7236437f compiler.cfg.parallel-copy: forgot to add this 2009-07-24 19:46:33 -05:00
Slava Pestov 228fcea905 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 d8836f8927 compiler.cfg: Fixing test failures 2009-07-24 06:08:07 -05:00
Slava Pestov 127de28195 compiler.cfg.copy-prop: Global copy propagation 2009-07-24 05:30:46 -05:00
Slava Pestov c49d2cc7bc 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 fcd015970e 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 f1eddf34c9 compiler.cfg: introduce less temporaries when building CFG 2009-07-24 03:37:18 -05:00
Slava Pestov 229d1c9f47 compiler.cfg.builder: fix stack effect declaration 2009-07-23 21:24:15 -05:00
Slava Pestov c2c3d64d6d compiler.cfg.stacks: now performs online local DCN 2009-07-23 20:54:38 -05:00
Slava Pestov 377233bd90 Add testcase for recent bug 2009-07-23 18:03:14 -05:00
Slava Pestov 2726ebe4a9 compiler.cfg.linear-scan.mapping: simplify 2009-07-23 18:03:04 -05:00
Slava Pestov 2ec433e7c0 compiler.cfg.empty-blocks: new pass to delete empty blocks, runs after phi elimination 2009-07-23 18:02:46 -05:00
Slava Pestov 67c53c85b1 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 9d2a2ecabf compiler.cfg.intrinsics: Disable inline allocation for now 2009-07-22 21:11:06 -05:00
Slava Pestov 1651deaaa7 Fixing compiler tests 2009-07-22 21:10:50 -05:00
Slava Pestov 0632c9665c compiler.cfg.dcn.rewrite: remove unused word 2009-07-22 19:18:12 -05:00
Slava Pestov daf446f842 compiler.cfg.checker: eliminate dead code before checking MR 2009-07-22 19:17:57 -05:00
Slava Pestov dcf7ce82a9 compiler.cfg.builder: Fix construction of ##return instructions from #return-recursive nodes 2009-07-22 19:17:21 -05:00
Slava Pestov 50b4179647 Merge branch 'master' into dcn 2009-07-22 06:19:44 -05:00
Slava Pestov 093a685d68 compiler.cfg.dominance: fix unit tests 2009-07-22 06:19:31 -05:00
Slava Pestov 79d32afe4b compiler.cfg.ssa: now builds pruned SSA form 2009-07-22 06:08:04 -05:00
Slava Pestov 898ac710fa compiler.cfg.dominance: add algorithm for computing iterated dominance frontiers 2009-07-22 06:07:51 -05:00
Slava Pestov c355c21de6 Move liveness back to compiler.cfg.liveness, fix a corner-case where it didn't work on some forms of non-SSA code 2009-07-22 06:07:28 -05:00
Slava Pestov a857ff3797 Removed unused code from compiler.cfg.def-use 2009-07-22 06:05:33 -05:00
Slava Pestov 7c488f2b25 Insert _loop-entry in linearization pass instead of in CFG builder, so that optimizations don't have to worry about it 2009-07-22 06:05:17 -05:00
Slava Pestov 0b78d8fd3d Fix bootstrap 2009-07-22 03:26:27 -05:00
Slava Pestov b6bb12eea7 compiler.cfg: Fix conflicts after merging local optimization refactoring into DCN branch 2009-07-22 03:17:53 -05:00
Slava Pestov 5d9f7b0ed2 compiler.cfg: Major restructuring -- do not compute liveness before local optimization, and instead change local optimizations to be more permissive of undefined values. Now, liveness is only computed once, after phi elimination and before register allocation. This means liveness analysis does not need to take phi nodes into account and can now use the new compiler.cfg.dataflow-analysis framework 2009-07-22 03:08:28 -05:00
Slava Pestov 670d694ab9 Merge branch 'master' into dcn 2009-07-22 02:07:08 -05:00
Slava Pestov 538a82b3bd Merge branch 'master' of git://factorcode.org/git/factor 2009-07-22 02:06:47 -05:00
Slava Pestov 89a048c0ac compiler.cfg.dataflow-analysis: iterative dataflow analysis framework 2009-07-22 02:06:35 -05:00
Slava Pestov 8f1e1dbf6a compiler.cfg.dcn.global: redo using compiler.cfg.dataflow-analysis 2009-07-22 02:05:40 -05:00
Slava Pestov 1240b630e0 compiler.cfg.stack-analysis: Out with the old, in with the new 2009-07-22 00:52:25 -05:00
Slava Pestov 7198a7dc37 Merge branch 'master' of git://factorcode.org/git/factor into dcn 2009-07-22 00:14:53 -05:00
Slava Pestov 2e07fcdd6d compiler.cfg: Fix unit tests 2009-07-21 22:25:19 -05:00
Slava Pestov 4b51ef1391 compiler.cfg.dcn: Fixing various bugs, hook up with optimizer 2009-07-21 22:24:50 -05:00
Slava Pestov b4bd85181f Merge branch 'master' into dcn 2009-07-21 17:51:22 -05:00
Slava Pestov f09b2bff39 compiler.cfg.registers: minor optimization 2009-07-21 17:49:44 -05:00
Slava Pestov 9b3c593332 compiler.cfg.ssa: Cytron's SSA construction algorithm 2009-07-21 17:49:30 -05:00
Slava Pestov 6b779b45df compiler.cfg.dcn: remove stores to stack locations above top of stack (these are never read again) 2009-07-21 17:46:09 -05:00
Slava Pestov b3a2880f02 Merge branch 'master' into dcn 2009-07-21 03:08:42 -05:00
Slava Pestov 907e752319 compiler.cfg.dominance: fix idom computation, compute dominator tree, compute dominance frontiers, add some tests 2009-07-21 03:02:45 -05:00
Slava Pestov b801022472 Move conjoin-at from compiler.cfg.liveness to sets 2009-07-21 03:02:06 -05:00
Slava Pestov a05ff8530a compiler.cfg.dcn: flesh out rewrite pass 2009-07-21 01:24:19 -05:00
Slava Pestov 7139f55271 compiler.cfg: if a block has an instruction that kills values it must be the only instruction in the block 2009-07-19 20:12:04 -05:00
Slava Pestov 7a570eae0e compiler.cfg.dcn: Implement height tracking 2009-07-19 19:45:23 -05:00
Slava Pestov 0a4fd0d400 compiler.cfg.builder: annotate calls with height changes, once again 2009-07-18 23:08:53 -05:00
Slava Pestov a4317c1fd1 compiler.cfg.dcn: starting work on deconcatenatization pass to replace compiler.cfg.stack-analysis 2009-07-18 22:27:42 -05:00
Slava Pestov 64f7a290f5 compiler.cfg.stack-analysis: fix outdated tests 2009-07-18 06:38:42 -05:00
Slava Pestov 749522c29c compiler.cfg.linear-scan: fix tests 2009-07-18 06:10:01 -05:00
Slava Pestov df874c3b50 compiler.tree.finalization: undo a change that resulted in a compile time regression 2009-07-18 03:33:24 -05:00
Slava Pestov dfc0dcfae2 Disable fixnum>bignum and bignum>fixnum intrinsics since they're not very useful and they increase code size significantly 2009-07-18 01:07:43 -05:00
Slava Pestov 9d831baa9c compiler.cfg.linear-scan: algorithmic optimizations 2009-07-18 00:14:39 -05:00
Slava Pestov 9e6e61edfa compiler.cfg: Move tail call optimization to the end, compiler.tree: simplify finalization pass because of this 2009-07-17 22:57:28 -05:00
Slava Pestov f3be295a3c compiler.cfg.builder: remove some dead code 2009-07-17 21:52:33 -05:00
Slava Pestov 6a21202a24 Remove some unnecessary work from stack-analysis pass 2009-07-17 18:39:41 -05:00
Slava Pestov 704e417087 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-17 00:03:13 -05:00
Slava Pestov d053f88431 compiler.tree.propagation.transforms: fix shift transform 2009-07-17 00:02:57 -05:00
Slava Pestov 39a70db831 Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases 2009-07-16 23:50:48 -05:00
Daniel Ehrenberg d63fd6c80e Removing two unused words in compiler.cfg.two-operand 2009-07-16 22:59:38 -05:00
Daniel Ehrenberg 7884ddb55a Merge branch 'master' of git://factorcode.org/git/factor 2009-07-16 22:42:39 -05:00
Daniel Ehrenberg 9ae962ded6 Phi elimination doesn't have the swap problem now 2009-07-16 22:42:13 -05:00
Slava Pestov 99faf3c79f Overflowing fixnum intrinsics now expand into several CFG nodes. This speeds up the common case since only the uncommon case is now a stack syncpoint 2009-07-16 18:29:40 -05:00
Slava Pestov 1d20276250 compiler.cfg.stack-analysis: global optimization work in progress 2009-07-16 16:43:14 -05:00
Slava Pestov c6b3279018 compiler.cfg.block-joining: relax join heuristic 2009-07-16 05:50:44 -05:00
Slava Pestov c5e00da9f8 compiler.cfg.linear-scan.live-intervals: remove bogus assertion 2009-07-16 02:42:01 -05:00
Slava Pestov 82e77d891a compiler.cfg.block-joining: join basic blocks connected by a single edge to improve effectiveness of local optimizations 2009-07-16 02:17:58 -05:00
Daniel Ehrenberg 5a5a6a34b9 fixing stupid bug in propagation 2009-07-16 00:43:54 -05:00
Daniel Ehrenberg a295b28652 define-partial-eval framework in propagation pass makes it easy to add transforms; moving some transforms from stack checker to propagation, making them stronger 2009-07-16 00:34:50 -05:00
Slava Pestov bff5a44c70 compiler.cfg: Fix regressions from recent changes 2009-07-14 20:43:06 -05:00
Slava Pestov 1d29dfa2d6 compiler.cfg.branch-splitting: don't split if there's one predecessor 2009-07-14 20:42:50 -05:00
Slava Pestov b65ef327ce compiler.cfg.value-numbering: merge in compiler.cfg.branch-folding 2009-07-14 20:05:01 -05:00
Slava Pestov a8d3bd1d24 compiler.cfg.intrinsics.fixnum: don't generate -imm forms anymore since value numbering does it 2009-07-14 19:18:57 -05:00
Slava Pestov bea69ea325 compiler.cfg.value-numbering: branch folding 2009-07-14 19:17:12 -05:00
Slava Pestov a41f452f68 Fix codegen test 2009-07-14 16:11:14 -05:00
Slava Pestov 1cf5eadf5c Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 16:05:35 -05:00
Slava Pestov 2e6ae2153c compiler.cfg.value-numbering: more optimizations 2009-07-14 16:05:25 -05:00
Daniel Ehrenberg 324aeb0672 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 14:25:42 -05:00
Daniel Ehrenberg ad301b07ae new is inlined in the propagation pass when the class is known 2009-07-14 14:16:39 -05:00
Slava Pestov 1e8e24946c compiler.cfg.value-numbering: add some unit tests 2009-07-14 13:25:07 -05:00
Slava Pestov a17293a828 compiler.cfg: update unit tests for compiler.cfg.comparisons 2009-07-14 12:06:55 -05:00
Daniel Ehrenberg 581fbb5af2 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 01:24:08 -05:00
Daniel Ehrenberg c6c5be4eb0 call( and execute( inline known quotations/words in the propagation pass 2009-07-14 01:12:45 -05:00
Slava Pestov dff25199cb Merge branch 'master' of git://factorcode.org/git/factor 2009-07-13 22:59:19 -05:00
Doug Coleman 83d8c8606d clean up value numbering conversion of ##add/sub to ##add/sub-imm 2009-07-13 19:02:05 -05:00
Slava Pestov 1eae4286cd compiler.cfg: split off condition codes into a comparisons sub-vocabulary 2009-07-13 14:42:52 -05:00
Slava Pestov eda950a3bf compiler.cfg.value-numbering: fix ##compare and ##compare-branch rewrites 2009-07-13 12:33:58 -05:00
Slava Pestov 01f9addc3a compiler.cfg.branch-splitting: split blocks with successors 2009-07-13 10:44:08 -05:00
Slava Pestov 31ae0845f3 compiler.cfg.linear-scan.resolve: get it to work on CFGs with critical edges 2009-07-12 23:00:33 -05:00
Slava Pestov 07d8bed106 compiler.cfg: Some code cleanups, update stack-analysis and phi-insertion to work on CFGs with critical edges 2009-07-12 22:22:46 -05:00
Slava Pestov 75b2e114f3 compiler.cfg.linear-scan: disable unit test for unimplemented feature 2009-07-10 07:48:49 -05:00
Slava Pestov 2c3fb59f4f compiler.cfg.linear-scan: fix fencepost error in spill insertion 2009-07-10 03:58:51 -05:00
Slava Pestov 0be3f33296 insn. doesn't print numbers 2009-07-10 03:05:45 -05:00
Slava Pestov e48b805bde compiler.cfg.linear-scan.allocation: fix broken spill slot reuse logic 2009-07-10 00:25:46 -05:00
Slava Pestov 713c2411f7 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-09 23:14:45 -05:00
Slava Pestov fe32e13fb0 compiler.cfg.value-numbering: factor out value renaming into a separate compiler.cfg.renaming vocabulary 2009-07-09 23:14:26 -05:00
Slava Pestov 71f1986ace compiler.cfg: move back-edge? word from stack-analysis to top-level vocab 2009-07-09 23:13:30 -05:00
Slava Pestov f93a71e978 compiler.cfg.linear-scan: two live intervals which are coalesced will use the same spill slot 2009-07-09 23:12:49 -05:00
Daniel Ehrenberg 55e5d60b23 Adding authors to compiler.tree.modular-arithmetic 2009-07-09 23:09:49 -05:00
Daniel Ehrenberg bf706063e2 Improving modular arithmetic optimization to be aware of words like set-alien-unsigned-2 2009-07-09 23:07:38 -05:00
Slava Pestov 387c48fcc5 Revert "Remove unused vocabulary" -- committed patch from the wrong machine
This reverts commit 04c3c15411.
2009-07-09 19:50:15 -05:00
Slava Pestov 04c3c15411 Remove unused vocabulary 2009-07-09 19:10:36 -05:00
U-SLAVA-DFB8FF805\Slava 7f8c0d1e25 compiler.cfg.optimizer: fix irrelevant test 2009-07-09 06:17:10 -05:00
Slava Pestov 511ca9dea0 compiler.tree.propagation: better length propagation 2009-07-09 02:28:30 -05:00
Slava Pestov 4d3382431f compiler.cfg.linear-scan: fixing unit tests 2009-07-09 00:48:00 -05:00
Slava Pestov 279733adfb compiler.cfg.linear-scan: more code cleanups, and working on split-to-fit algorithm 2009-07-09 00:20:03 -05:00
Slava Pestov b02590cd58 compiler.cfg.linear-scan: code cleanups 2009-07-08 23:28:28 -05:00
Slava Pestov 65cb2d84a7 compiler.cfg.linear-scan: split off parallel mapping code from resolve pass, use it in assignment pass to resolve parallel copies 2009-07-08 23:07:06 -05:00
Slava Pestov 4ef76762e3 compiler.cfg.linear-scan: debugging spilling, add more assertions 2009-07-07 13:01:27 -05:00
Slava Pestov 39e660d8f6 compiler.cfg.linear-scan: code cleanup 2009-07-07 03:45:27 -05:00
Slava Pestov 15134e61e0 compiler.cfg.linear-scan: Re-implement spilling, add some additional runtime assertions, simplify assignment pass since it doesn't have to track spill slots anymore; just assume a live value that's not in active or inactive is spilled 2009-07-07 03:28:55 -05:00
Slava Pestov d6f45a5216 compiler.cfg.linear-scan: minor fixes 2009-07-05 22:51:53 -05:00
Slava Pestov dd56f4158a compiler.cfg.linear-scan: Get cycle breaking in resolve pass to work by allocating a spare spill slot for this purpose 2009-07-05 21:32:23 -05:00
Slava Pestov 0a634ec4ec Fix compiler.cfg.linear-scan.resolve test failure 2009-07-04 16:30:16 -05:00
Slava Pestov 3d7addbbf5 compiler.cfg.value-numbering.rewrite: disable ##compare optimizations for now 2009-07-04 03:26:37 -05:00
Slava Pestov 577a3cb968 compiler.cfg.value-numbering.rewrite: fix ##compare-imm rewrite rule 2009-07-04 02:50:50 -05:00
Slava Pestov c431e0db99 compiler.cfg.linear-scan.resolve: More fixes 2009-07-04 00:45:06 -05:00
Slava Pestov ab5fdc70ac compiler.cfg.linear-scan: redo resolve pass to fix a correctness issue 2009-07-03 23:38:52 -05:00
Slava Pestov 12cbbbd6ad compiler.cfg: clean up GC check generation to use spill-slot data type 2009-07-03 23:11:23 -05:00
Slava Pestov 3d92117ef1 compiler.cfg.linear-scan: assign spill slots to vregs globally, so that resolve pass never has to perform a memory->memory transfer 2009-07-03 22:51:40 -05:00
Slava Pestov e21cf72927 compiler.tree.dead-code: methods on flushable generics should be flushable 2009-07-03 21:31:26 -05:00
Doug Coleman 2ef03895ee convert ##compare with immediates to ##compare-imm 2009-07-03 19:19:33 -05:00
Slava Pestov a406a5aa23 compiler.cfg.predecessors: delete dead predecessors from phi nodes 2009-07-03 18:45:03 -05:00
Doug Coleman 779401d938 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-02 19:04:50 -05:00
Doug Coleman 9ce34bf972 add constant folding for integer ops, refactor some rewrites 2009-07-02 19:03:21 -05:00
Slava Pestov 1da42c2111 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-02 18:36:49 -05:00
Doug Coleman d69c5ae260 Revert "fix a unit test so it's sure to overflow 64bit machines"
This reverts commit 88a545a215.
2009-07-02 18:18:50 -05:00
Doug Coleman 88a545a215 fix a unit test so it's sure to overflow 64bit machines 2009-07-02 18:05:55 -05:00
Doug Coleman 29dc6fc837 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-02 18:01:58 -05:00
Doug Coleman da9883b762 unit test to make sure adds are not optimized incorrectly 2009-07-02 18:01:00 -05:00
Doug Coleman f4d3daea7d fix bug in rewriting #add -- wasn't checking small-enough?, and change negative adds to subtractions/negative subtractions to adds 2009-07-02 17:55:35 -05:00
Slava Pestov 086ebcdda4 half-floats: Add some more unit tests 2009-07-02 17:52:53 -05:00
Slava Pestov fc029299d8 compiler.cfg.liveness: update for new ##phi node representation 2009-07-02 17:28:02 -05:00
Slava Pestov 2a63722c91 compiler.cfg: change representation of ##phi nodes. The input slot of ##phi nodes is now an assoc mapping predecessors to values, rather than a sequence of values. This ensures that optimization which delete predecessors can be implemented 2009-07-02 17:10:50 -05:00
Doug Coleman 89f33a1e45 rewrite rules for add/sub/mul/and/or/xor-imm, rewrite load-immediate/add to be add-imm 2009-07-02 11:35:31 -05:00
Doug Coleman fe3ab1a0ac simplify sub and sub-imm 2009-07-02 11:33:15 -05:00
Doug Coleman c3f190daff add a utility word vreg>constant 2009-07-02 11:32:23 -05:00
Slava Pestov 9605ffc0dc compiler.cfg.dce: now performs three passes over the CFG to fix a phase ordering issue 2009-07-02 03:17:19 -05:00
Slava Pestov 49250ea56b compiler.cfg.dce: minor renamings 2009-07-02 02:41:10 -05:00
Daniel Ehrenberg d9d665480f Merge branch 'master' of git://factorcode.org/git/factor 2009-07-02 02:31:06 -05:00
Daniel Ehrenberg f07100739b Dead code elimination eliminates some dead allocations 2009-07-02 02:30:46 -05:00
Slava Pestov 8364f1146c compiler.cfg.optimizer: enable branch folding 2009-07-02 01:05:59 -05:00
Slava Pestov 04508f2ece compiler.cfg: bug fixes in GC check insertion and fixnum intrinsics 2009-07-02 00:51:06 -05:00
Slava Pestov ca0b05cd1d compiler.cfg.linear-scan: fix spilling 2009-07-01 22:37:27 -05:00
Slava Pestov 2b5df8c298 compiler.tree.optimizer: Remove redundant call to compute-def-use 2009-07-01 17:41:20 -05:00
Slava Pestov 14bce3b400 compiler.cfg.linear-scan: debugging spilling and resolve pass 2009-07-01 17:41:07 -05:00
Slava Pestov 720ad7cfa7 compiler.cfg.stack-analysis: fix unit tests for useless-blocks renaming and ##no-tco instruction 2009-06-30 23:17:33 -05:00
Slava Pestov 0963e6b73a Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 23:07:36 -05:00
Slava Pestov 4983091344 compiler.cfg.optimizer: disable branch folding for now 2009-06-30 23:07:27 -05:00
Slava Pestov 0837732c10 compiler.cfg.builder: emit less crap after a #terminate node 2009-06-30 23:03:25 -05:00
Doug Coleman b82bea4004 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 23:02:04 -05:00
Doug Coleman ccd847083e optimize fixnum*fast and fixnum-shift-fast 2009-06-30 23:01:44 -05:00
Doug Coleman 0ad81de3b6 combine add-imm instructions into a single add 2009-06-30 22:59:53 -05:00
Slava Pestov cdd95472c7 compiler.cfg.branch-folding: fold away branches where both inputs are the same register. This results in 'push' being compiled slightly better 2009-06-30 22:43:32 -05:00
Slava Pestov 19036c5105 Fix possible infinite loop in skip-empty-blocks and remove redundant test in compiler.cfg.useless-conditionals 2009-06-30 22:43:02 -05:00
Slava Pestov 139bb68f8e Change branch splitting around a bit, rename useless-blocks to useless-conditionals and rewrite it 2009-06-30 22:11:15 -05:00
Slava Pestov 752aebf89a Fix conflict 2009-06-30 21:37:49 -05:00
Slava Pestov fa4f710095 compiler.cfg Remove height tracking for ##call instructions, wire in ##no-tco instruction 2009-06-30 21:21:46 -05:00
Slava Pestov 9bcdf463a1 compiler.cfg.tco: fix tail call optimization for ##fixnum-mul 2009-06-30 21:08:08 -05:00
Slava Pestov 46a3608e3a compiler.cfg.builder: fix stack effect 2009-06-30 21:07:55 -05:00
Slava Pestov 189043eae7 compiler.cfg.linear-scan.assignment: insert-copy did the wrong thing if the second interval had been split. Fixes compilation of 'trilerp' 2009-06-30 21:07:39 -05:00
Slava Pestov f6b537f4c6 Fix conflict 2009-06-30 20:16:09 -05:00
Slava Pestov 89fbc8efb4 compiler.cfg.tco: Tail call optimization moved out of compiler.cfg.builder into its own pass 2009-06-30 20:13:35 -05:00
Doug Coleman f824845433 remove duplicate using 2009-06-30 18:48:52 -05:00
Doug Coleman 116d55feac Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 18:48:10 -05:00
Doug Coleman 97ceba5000 make commutative operations with immediates output the same IR 2009-06-30 18:47:24 -05:00
Slava Pestov 79a60c8bc5 compiler.cfg.stack-analysis: fix tests 2009-06-30 18:22:54 -05:00
Slava Pestov dc96968b99 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 18:12:00 -05:00
Slava Pestov 6efe62a49a compiler.cfg.stack-analysis: enable global optimization 2009-06-30 18:11:45 -05:00
Slava Pestov 87aabfc053 compiler.cfg.linear-scan.assignment: get check-assignment? to work with coalescing 2009-06-30 18:10:53 -05:00
Doug Coleman eb2d574e79 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 16:45:57 -05:00
Doug Coleman c5ffb08f5b fix bug where traversal order was lost 2009-06-30 16:44:14 -05:00
Slava Pestov ecf44c98bc compiler.cfg.linear-scan: compute-free-pos was broken in the case where more than one inactive interval had the same physical register assigned 2009-06-30 16:07:58 -05:00
Doug Coleman d888d13efe spill to spill-temp, not to virtual spill addresses 2009-06-30 15:40:13 -05:00
Doug Coleman 228716a94e Merge branch 'master' of git://factorcode.org/git/factor 2009-06-30 15:32:11 -05:00
Doug Coleman 5ae6eb089d add branch splitting pass to compiler.cfg 2009-06-30 15:31:48 -05:00
Slava Pestov 7fc239d638 compiler.cfg.stack-analysis: fix typos in unit tests 2009-06-29 16:37:40 -05:00
Slava Pestov c2d4c42252 Fix conflict 2009-06-29 01:59:53 -05:00
Slava Pestov 5754bf0028 compiler.cfg.linear-scan.resolve: remove redundant vocabs from using list 2009-06-28 22:58:35 -05:00
Slava Pestov b63133f9f6 compiler.cfg.stack-analysis: fix another corner case with ##peek insertion, and fix changed-loc merging 2009-06-28 22:52:28 -05:00
Doug Coleman 2ed3edeb41 Merge branch 'master' of git://factorcode.org/git/factor 2009-06-28 16:43:45 -05:00
Doug Coleman b2d3b588f0 fix bug in linear-scan.resolve by rewriting entire algorithm 2009-06-28 16:43:17 -05:00
Slava Pestov 9ab1bd1edb Merge branch 'master' of git://factorcode.org/git/factor 2009-06-27 17:33:00 -05:00
Slava Pestov 12df05da5d compiler.cfg.stack-analysis: Fix case where both an ##inc-d/r and a ##peek get inserted 2009-06-27 17:32:37 -05:00
Doug Coleman 750d8c0a9a Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/compiler/cfg/linear-scan/resolve/resolve-tests.factor
2009-06-26 21:51:08 -05:00
Doug Coleman c7a04858ee add spill-temp to compiler.cfg.instructions, implement parallel register assignment in linear-scan.resolve 2009-06-26 21:48:21 -05:00
Slava Pestov 6cb4966075 Fix bootstrap and unit test 2009-06-26 17:44:33 -05:00
Slava Pestov 3b8733de01 Redesign compiler.cfg.stack-analysis to make compiler.cfg.height redundant, and to fix some problems 2009-06-26 17:29:55 -05:00
Slava Pestov 80f7594f75 compiler.cfg.stack-analysis: split up into three vocabs 2009-06-24 13:54:43 -05:00
Slava Pestov be1dcc04c2 compiler.cfg.linear-scan: fix unit tests 2009-06-24 13:54:12 -05:00