Commit Graph

5938 Commits (3507616f3ba86092740da54c1284d1ab27f69151)

Author SHA1 Message Date
Slava Pestov 8aa41672ca compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities 2009-08-02 08:20:50 -05:00
Slava Pestov cff5976a0d Move compiler.cfg.ssa.destruction.interference to compiler.cfg.ssa.interference 2009-08-02 08:15:36 -05:00
Slava Pestov 87e13db946 compiler.cfg.ssa.destruction.interference: fix a bug and add unit tests 2009-08-02 08:11:30 -05:00
Slava Pestov 7ec288b013 compiler.cfg.debugger: fix load error 2009-08-02 08:11:04 -05:00
Slava Pestov b5a978d4e5 compiler.cfg.ssa.destruction: add some unit tests 2009-08-02 06:17:44 -05:00
Slava Pestov c61b729125 compiler.cfg.critical-edges: update ##phi nodes 2009-08-02 06:17:22 -05:00
Slava Pestov 01f51a96cd 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 21489ce85e compiler tests: add test case for coalescing bug 2009-08-02 03:49:54 -05:00
Slava Pestov e1c7f7394a compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
Slava Pestov 9bde92220b 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 e01fc93812 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 1ef9cd27d3 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 05b7bb0079 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:22:51 -05:00
Slava Pestov 20ec574965 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 0838beed1e Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:33:41 -04:00
Slava Pestov 76368cae9b compiler.cfg.liveness.ssa: fix bad bug discovered by littledan 2009-08-01 18:54:24 -05:00
Slava Pestov 2d719534cf 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 61fe034e3e cpu.ppc: put spill slots and GC roots in stack frame where subroutine calls can't clobber them 2009-07-31 23:47:07 -05:00
Slava Pestov 7c43f71c6d compiler: Oops, typos in unit tests 2009-07-31 22:33:02 -05:00
Slava Pestov 1993274d01 alien.libraries: add-library should now reload the library properly, instead of just leaking DLL handles 2009-07-31 19:46:18 -05:00
Slava Pestov d515715b0c compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence 2009-07-31 18:34:15 -05:00
Slava Pestov 9a80fdb81b Merge branch 'master' of git://factorcode.org/git/factor 2009-07-31 17:59:00 -05:00
Slava Pestov 957a5b7b9b cpu.ppc: fix small typos 2009-07-31 17:57:15 -05:00
Doug Coleman 3258f9c4ef fix using list on win64 2009-07-31 16:27:18 -05:00
Sam Anklesaria 24e5d416a7 added various author files 2009-07-31 11:10:14 -05:00
Slava Pestov dd2dc2bb24 cpu.ppc: Updating PowerPC backend for codegen changes over the last two months: new shift intrinsics added, fixnum overflow intrinsics are now treated like conditionals, GC checks are more complex and have a different API 2009-07-30 21:44:22 -05:00
Slava Pestov 45770c6250 Move a bunch of GC check generation logic to platform-independent side 2009-07-30 21:28:27 -05:00
Slava Pestov 47920a7a0c Passing -profile-compiler switch to bootstrap collects timing information from optimizer passes 2009-07-30 21:27:52 -05:00
Slava Pestov b43c8b40ac Merge branch 'master' of git://factorcode.org/git/factor 2009-07-30 19:11:02 -05:00
Daniel Ehrenberg 8134d775a8 Faster SSA liveness testing 2009-07-30 15:23:47 -04:00
Joe Groff b6ddcafcbd Merge branch 'master' of git://factorcode.org/git/factor 2009-07-30 11:05:36 -05:00
Joe Groff 455956b16c add additional SSE2 packed integer operations 2009-07-30 11:05:12 -05:00
Slava Pestov be363d1a5b 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 cd7a1d6c58 Oopsie 2009-07-30 08:27:52 -05:00
Slava Pestov d71e2f9577 cpu.x86: Fix shuffle bug. Shuffling bugs occurring in code that runs before optimizer/stack checker is online are only caught at runtime during bootstrap, what a pain 2009-07-30 05:12:40 -05:00
Slava Pestov d81dec5d45 cpu.x86: fix a bug in small-register logic on 32-bit. Also, on 32-bit, we don't need to do any special register shuffling to work with 16-bit operands since all registers have 16-bit variants. So now only 8-bit operands on x86-32 require special treatment 2009-07-30 05:04:46 -05:00
Slava Pestov e1caaca6df bootstrap.compiler: compile a few more words early, for a big bootstrap speed boost 2009-07-30 02:45:29 -05:00
Slava Pestov a9977d7c79 cpu.x86: update non-optimizing compiler backends for assembler vocab split 2009-07-30 02:22:37 -05:00
Slava Pestov 791fbe4003 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 6274c0337a compiler.cfg.ssa.destruction: fix 2009-07-29 23:43:00 -05:00
Slava Pestov b133649edd 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 1e8d13c1f1 cpu.x86.assembler: fix extended 8-bit registers (DIL, SIL, SPL, BPL) 2009-07-29 22:32:22 -05:00
Slava Pestov 8ca17d053c cpu.x86: use full set of 8-bit, 16-bit and 32-bit registers on x86-64 to avoid clumsy save/restore logic 2009-07-29 21:56:37 -05:00
Slava Pestov 73862a9a03 cpu.x86.assembler: move operands to operands sub-vocabulary, clean up small-reg-* code in compiler backend 2009-07-29 21:44:08 -05:00
Slava Pestov eda66805b2 Merge branch 'xml-fix' of git://tiodante.com/git/factor 2009-07-29 19:27:13 -05:00
Sam Anklesaria c54189ce19 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-29 15:51:33 -05:00
Slava Pestov cb36a40dc4 compiler.cfg.linear-scan: more test fixes 2009-07-29 07:04:52 -05:00
Slava Pestov cb7735ddf4 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 639a1cbb1f compiler.cfg.linear-scan.resolve: fix unit tests to not depend on hashing 2009-07-29 06:48:01 -05:00
Slava Pestov f3fa4debe3 bit-arrays: fix resize method regression after recent equal? method optimization 2009-07-29 06:47:50 -05:00
Slava Pestov 34432c5f18 compiler: fix test 2009-07-29 06:39:54 -05:00
Slava Pestov 74766d1ccd 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 1532a6f2e3 compiler.cfg.linear-scan.assignment: more efficient data structures 2009-07-29 06:12:33 -05:00
Slava Pestov 50bf6f52b4 compiler.cfg.linearization: fix bootstrap 2009-07-28 22:52:07 -05:00
Slava Pestov eabaf9fc40 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 21:31:25 -05:00
Slava Pestov 8c6b38533c 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
Sam Anklesaria fe86d9f56e Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 16:42:38 -05:00
Joe Groff f63b322859 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 14:38:25 -05:00
Joe Groff 7f1abec19e i just cut and pasted 2009-07-28 14:38:10 -05:00
Slava Pestov 9afa39aa3a compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa 2009-07-28 12:56:33 -05:00
Slava Pestov 09d89c0d17 Merge branch 'dcn' 2009-07-28 12:37:45 -05:00
Slava Pestov d913d7331f 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 3e8d928d29 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 12:20:16 -05:00
Joe Groff 9f3c8a9959 SSE4 opcodes for x86 assembler 2009-07-28 12:19:37 -05:00
Slava Pestov 7d3b6892d5 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 f1683f9fcf Move set-last from circular.private to sequences 2009-07-28 11:51:47 -05:00
Slava Pestov 4175585fd4 Merge branch 'master' into dcn 2009-07-28 11:20:43 -05:00
Slava Pestov 037fa69a21 Move Joe's HEX{ syntax to byte-arrays.hex in basis 2009-07-28 11:20:28 -05:00
Slava Pestov 7a6bdffaaa IN: fix for compiler test 2009-07-28 11:16:21 -05:00
Slava Pestov 62fe308776 compiler.cfg.ssa.construction: Use TDMSC algorithm to compute Phi placement 2009-07-28 11:16:10 -05:00
Slava Pestov 5fe3bcff4d Faster bit-array equality, add bit-set-subset? word 2009-07-28 11:14:57 -05:00
Slava Pestov d10993b837 compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction 2009-07-28 09:34:08 -05:00
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 7c5e2f2933 tools.annotations: doc addition 2009-07-28 06:49: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
Joe Groff 5372113fce SSE1–SSSE3 opcodes + branch hints for x86 assembler 2009-07-28 00:22:27 -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 bfb2a4c1fc cpu.x86: compile a load of zero, and adds, subs where dst = src1 more efficiently 2009-07-27 22:27:54 -05:00
Joe Groff 7493e07c68 disassemble method for byte-arrays. HEX{ abcd } syntax for byte-arrays 2009-07-27 22:14:26 -05:00
Sam Anklesaria 16e44372e3 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-27 21:46:10 -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
Joe Groff eeb02815bc set transform feedback format at program link 2009-07-25 21:19:56 -05:00
Slava Pestov 5bbd89f170 Merge branch 'dcn' of git://factorcode.org/git/factor into dcn 2009-07-24 20:30:11 -05:00
Slava Pestov 93764faad3 Merge branch 'master' of git://factorcode.org/git/factor into dcn 2009-07-24 20:29:09 -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
Doug Coleman c762d2b422 scaffold tools now uses the boolean type instead of "a boolean" 2009-07-24 18:09:14 -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 548e575ad9 Merge branch 'master' into dcn 2009-07-23 21:25:52 -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
Doug Coleman f7b2e4a155 remove call to check-c-name 2009-07-23 18:14:07 -05:00
Doug Coleman 9bb38b870c allow FUNCTION: to parse pointers in the name field 2009-07-23 18:05:09 -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
Doug Coleman 555309ba86 fix another typo in ffi 2009-07-23 17:49:04 -05:00
Doug Coleman 37a9f01adc fix typo in x11 binding 2009-07-23 17:39:12 -05:00
Doug Coleman 78bbf96a6d move signed-le> to io.binary, clean up using list for math.bitwise 2009-07-23 15:54:57 -05:00
Doug Coleman bad8e05937 Disallow C functions and parameter names that contain an asterisk 2009-07-23 15:48:10 -05:00
Joe Groff 739d99d4e8 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-23 13:39:52 -05:00
Slava Pestov 7f87335afe Merge branch 'master' into dcn 2009-07-22 21:12:14 -05:00
Slava Pestov dd2bbc51b3 unix.types: define <time_t> alias; use it in calendar.unix to avoid clobbering data 2009-07-22 21:12:04 -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
Slava Pestov d29c275089 compiler.cfg.builder: Fix construction of ##return instructions from #return-recursive nodes 2009-07-22 19:17:21 -05:00
Bruno Deferrari d8434ceed2 basis.xml: A fix for <pull-xml> (calls init-parser so that the spot variable is binded) 2009-07-22 20:49:57 -03:00
Bruno Deferrari 8bf389e9b5 basis.xml: Add test to check that pull-event doesn't raise an exception when called on a pull-xml object 2009-07-22 20:48:38 -03:00
Joe Groff ac2c65e920 OR gl extension testing 2009-07-22 12:06:30 -05:00
Sam Anklesaria cc38d1ada6 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/functors/functors.factor
	basis/io/launcher/launcher.factor
	basis/ui/gadgets/tables/tables.factor
2009-07-22 10:02:09 -05:00
Slava Pestov 091d2d07f2 Merge branch 'master' into dcn 2009-07-22 06:19:44 -05:00
Slava Pestov 995a96d7e4 compiler.cfg.dominance: fix unit tests 2009-07-22 06:19:31 -05:00
Slava Pestov 26a5d51d93 compiler.cfg.ssa: now builds pruned SSA form 2009-07-22 06:08:04 -05:00
Slava Pestov d864214119 compiler.cfg.dominance: add algorithm for computing iterated dominance frontiers 2009-07-22 06:07:51 -05:00
Slava Pestov 89db2e745d 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 31491df5f1 Removed unused code from compiler.cfg.def-use 2009-07-22 06:05:33 -05:00
Slava Pestov 44bcd258f6 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 1e5ce41364 Fix bootstrap 2009-07-22 03:26:27 -05:00
Slava Pestov 25c42d04fd compiler.cfg: Fix conflicts after merging local optimization refactoring into DCN branch 2009-07-22 03:17:53 -05:00
Slava Pestov 21a012e3d7 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 55111bdc24 Merge branch 'master' into dcn 2009-07-22 02:07:08 -05:00
Slava Pestov c105b033ef Merge branch 'master' of git://factorcode.org/git/factor 2009-07-22 02:06:47 -05:00
Slava Pestov e6a323dfaa compiler.cfg.dataflow-analysis: iterative dataflow analysis framework 2009-07-22 02:06:35 -05:00
Slava Pestov dce020ca71 functors: add MIXIN:, SINGLETON: 2009-07-22 02:06:24 -05:00
Slava Pestov b39b0dd393 compiler.cfg.dcn.global: redo using compiler.cfg.dataflow-analysis 2009-07-22 02:05:40 -05:00
Slava Pestov b869e1250c compiler.cfg.stack-analysis: Out with the old, in with the new 2009-07-22 00:52:25 -05:00
Slava Pestov 86df665f78 Merge branch 'master' of git://factorcode.org/git/factor into dcn 2009-07-22 00:14:53 -05:00
Slava Pestov 1aa6c9a0d5 compiler.cfg: Fix unit tests 2009-07-21 22:25:19 -05:00
Slava Pestov e49de006c4 compiler.cfg.dcn: Fixing various bugs, hook up with optimizer 2009-07-21 22:24:50 -05:00
Slava Pestov cfb584ed8d Merge branch 'master' into dcn 2009-07-21 17:51:22 -05:00
Slava Pestov ead57fc5dd compiler.cfg.registers: minor optimization 2009-07-21 17:49:44 -05:00
Slava Pestov e7e5bee9a2 compiler.cfg.ssa: Cytron's SSA construction algorithm 2009-07-21 17:49:30 -05:00
Slava Pestov 802b4ffdf5 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 441c2bae2d Merge branch 'master' into dcn 2009-07-21 03:08:42 -05:00
Slava Pestov 3136549f48 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 fd9a353fd6 Move conjoin-at from compiler.cfg.liveness to sets 2009-07-21 03:02:06 -05:00
Slava Pestov e16acae2f5 compiler.cfg.dcn: flesh out rewrite pass 2009-07-21 01:24:19 -05:00
Slava Pestov fdef772d67 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 0a95ddd105 compiler.cfg.dcn: Implement height tracking 2009-07-19 19:45:23 -05:00
Slava Pestov 605b37a949 compiler.cfg.builder: annotate calls with height changes, once again 2009-07-18 23:08:53 -05:00
Slava Pestov ec1407bdae compiler.cfg.dcn: starting work on deconcatenatization pass to replace compiler.cfg.stack-analysis 2009-07-18 22:27:42 -05:00
Slava Pestov a716e4cddb ui.tools.listener: selecting a word from a completion popup now behaves like a USE: followed by a FROM: 2009-07-18 06:55:15 -05:00
Slava Pestov db3991125f FROM: and RENAME: give a more meaningful error if the vocabulary does not exist 2009-07-18 06:51:29 -05:00
Slava Pestov 9cbd6c52a6 compiler.cfg.stack-analysis: fix outdated tests 2009-07-18 06:38:42 -05:00
Slava Pestov 4191deb525 combinators.short-circuit: fix unoptimized behavior to match optimized behavior, improved unit tests 2009-07-18 06:38:34 -05:00
Slava Pestov 4ee1f68e30 Documentation fixes 2009-07-18 06:32:57 -05:00
Slava Pestov 32e4a97855 compiler.cfg.linear-scan: fix tests 2009-07-18 06:10:01 -05:00
Slava Pestov 60f4f4c16e combinators.short-circuit: speed up in non-optimized code 2009-07-18 03:33:45 -05:00
Slava Pestov 343151fd62 compiler.tree.finalization: undo a change that resulted in a compile time regression 2009-07-18 03:33:24 -05:00
Slava Pestov 3ee68d1ff5 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 389b689796 slightly faster heaps, add benchmark 2009-07-18 00:52:24 -05:00
Slava Pestov ea69566ddd compiler.cfg.linear-scan: algorithmic optimizations 2009-07-18 00:14:39 -05:00
Slava Pestov 5061db2a48 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 b83f27af74 compiler.cfg.builder: remove some dead code 2009-07-17 21:52:33 -05:00
Slava Pestov 43fab5b2ae Remove some unnecessary work from stack-analysis pass 2009-07-17 18:39:41 -05:00
Slava Pestov b76165facf Move ptrdiff_t arrays to specialized-arrays.ptrdiff_t 2009-07-17 03:51:23 -05:00
Slava Pestov fca74191ce Split off annotation code from opengl into opengl.annotations to reduce deployed image size 2009-07-17 01:06:34 -05:00
Slava Pestov e88e7f70be Merge branch 'master' of git://factorcode.org/git/factor 2009-07-17 00:03:13 -05:00
Slava Pestov 1d735bc32d compiler.tree.propagation.transforms: fix shift transform 2009-07-17 00:02:57 -05:00
Slava Pestov 3fb4fc1bde 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
Slava Pestov 7692c5d219 bit-arrays: specialize set-bits and clear-bits 2009-07-16 23:49:13 -05:00
Daniel Ehrenberg 8ea2996438 Removing two unused words in compiler.cfg.two-operand 2009-07-16 22:59:38 -05:00
Daniel Ehrenberg 3ca5665ad6 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-16 22:42:39 -05:00
Daniel Ehrenberg 8477cf8e91 Phi elimination doesn't have the swap problem now 2009-07-16 22:42:13 -05:00
Slava Pestov afec68db24 help.lint.checks: don't throw strings 2009-07-16 21:38:54 -05:00
Slava Pestov 490ea139a9 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-16 18:30:14 -05:00
Slava Pestov e76dce8aff 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 685e32b091 compiler.cfg.stack-analysis: global optimization work in progress 2009-07-16 16:43:14 -05:00
Joe Groff 622b5954fe Merge branch 'master' of git://factorcode.org/git/factor 2009-07-16 09:56:18 -05:00
Slava Pestov fc0e0f1924 compiler.cfg.block-joining: relax join heuristic 2009-07-16 05:50:44 -05:00
Slava Pestov 884e41dd9c compiler.cfg.linear-scan.live-intervals: remove bogus assertion 2009-07-16 02:42:01 -05:00
Slava Pestov 9f926ab88c 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 062e33f8fb fixing stupid bug in propagation 2009-07-16 00:43:54 -05:00
Daniel Ehrenberg ee3e84a1f8 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
Joe Groff e90c947062 gl-break word and interactive debugging aids 2009-07-15 22:44:03 -05:00
Joe Groff 8e58f5e5aa in kazakhstan, they say that a world is like a context-world 2009-07-15 22:39:23 -05:00
Slava Pestov b4c522f045 Merge branch 'marshall' of git://github.com/jedahu/factor 2009-07-15 19:25:41 -05:00
Slava Pestov a226907836 Merge branch 'inlinec' of git://github.com/jedahu/factor 2009-07-15 19:03:18 -05:00
Slava Pestov 45d466c126 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-15 19:02:54 -05:00
Joe Groff eba4749e5f Merge branch 'master' of git://factorcode.org/git/factor 2009-07-15 13:54:29 -05:00
Joe Groff b7dd3d5d35 report opengl function name in gl-errors 2009-07-15 13:53:57 -05:00
Slava Pestov ebcd0dc252 compiler.cfg: Fix regressions from recent changes 2009-07-14 20:43:06 -05:00
Slava Pestov 4ac74e9304 compiler.cfg.branch-splitting: don't split if there's one predecessor 2009-07-14 20:42:50 -05:00
Slava Pestov 11731f8d48 compiler.cfg.value-numbering: merge in compiler.cfg.branch-folding 2009-07-14 20:05:01 -05:00
Slava Pestov a75d558b30 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 73a2222541 compiler.cfg.value-numbering: branch folding 2009-07-14 19:17:12 -05:00
Slava Pestov 03cd550b93 Fix codegen test 2009-07-14 16:11:14 -05:00
Slava Pestov 2f39e851f8 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 16:05:35 -05:00
Slava Pestov 2ace87370e compiler.cfg.value-numbering: more optimizations 2009-07-14 16:05:25 -05:00
Daniel Ehrenberg 6c32e61098 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 14:25:42 -05:00
Daniel Ehrenberg bb06facb01 new is inlined in the propagation pass when the class is known 2009-07-14 14:16:39 -05:00
Slava Pestov d1eea090b6 compiler.cfg.value-numbering: add some unit tests 2009-07-14 13:25:07 -05:00
Slava Pestov c860a3b1e6 compiler.cfg: update unit tests for compiler.cfg.comparisons 2009-07-14 12:06:55 -05:00
Joe Groff 8bf1fd5f2a throw-gl-errors, log-gl-errors annotations for all OpenGL functions 2009-07-14 12:00:37 -05:00
Joe Groff 4b8132d777 factor compilation unit from tools.annotations:reset 2009-07-14 11:43:32 -05:00
Joe Groff c0e99e738e fix inaccuracy in tools.annotations docs 2009-07-14 11:43:11 -05:00
Jeremy Hughes 79dd644e57 moved alien.inline and alien.marshall to extra 2009-07-14 22:39:27 +12:00
Jeremy Hughes 48bd9aaacf alien.marshall.syntax: added documentation 2009-07-14 22:36:59 +12:00
Jeremy Hughes cddc5a3188 alien.marshall.syntax: arg renaming 2009-07-14 22:36:45 +12:00
Jeremy Hughes 586cf9547f alien.marshall: fixed char* unmarshalling bug 2009-07-14 22:33:23 +12:00
Jeremy Hughes 90b7ca501b alien.(inline,marshall): removed unused doc helper words and made the rest private 2009-07-14 22:32:37 +12:00
Jeremy Hughes 010af379bb alien.marshall.structs: added documentation 2009-07-14 20:51:32 +12:00
Jeremy Hughes 92e38530a3 alien.marshall.structs: made some words private 2009-07-14 20:50:52 +12:00
Jeremy Hughes 3b56dc8b13 alien.marshall.structs: moved struct-wrapper dispose* method to alien.marshall 2009-07-14 20:50:20 +12:00
Daniel Ehrenberg 79afab82d8 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-14 01:24:08 -05:00
Daniel Ehrenberg 4aa3e2135a Unit tests for inference behavior of call( and execute( 2009-07-14 01:23:21 -05:00
Daniel Ehrenberg 47500fad06 call( and execute( inline known quotations/words in the propagation pass 2009-07-14 01:12:45 -05:00
Slava Pestov afdd537681 tools.annotations: add (annotate) word which doesn't create a compilation unit for use in loops 2009-07-13 23:35:21 -05:00
Slava Pestov 5ccf7bc99f Merge branch 'master' of git://factorcode.org/git/factor 2009-07-13 22:59:19 -05:00
Joe Groff 2d0483b3df Merge branch 'master' of git://factorcode.org/git/factor 2009-07-13 22:35:50 -05:00
Joe Groff a06948298b ensure resize-world never happens before begin-world 2009-07-13 22:35:36 -05:00
Doug Coleman ccae9b59a4 clean up value numbering conversion of ##add/sub to ##add/sub-imm 2009-07-13 19:02:05 -05:00
Jeremy Hughes f65adc1a63 alien.marshall: added documentation 2009-07-14 10:26:45 +12:00
Jeremy Hughes fd23b4070f alien.marshall: marshalling word fixes 2009-07-14 10:26:26 +12:00