Commit Graph

558 Commits (12cbbbd6adb1a5f2f0c29fea481fef7ebb088575)

Author SHA1 Message Date
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