Commit Graph

1958 Commits (2c5f00d865aa80c102e95f10b97ca5080d23de26)

Author SHA1 Message Date
Doug Coleman 20add9544a compiler.cfg: cfg>insns has to go in linearization because of bootstrap circularity. Fix usings. 2014-11-23 22:53:27 -08:00
Björn Lindqvist 4c07d04417 compiler.cfg.*: getting an instruction sequence from a cfg is used in a few tests so let's make a word for it 2014-11-24 06:25:34 +01:00
Björn Lindqvist 22c512788b compiler.codegen.gc-maps.tests: fix tests for win 64 2014-11-24 04:20:34 +01:00
Björn Lindqvist 9b7a873f6d compiler.cfg.build-stack-frame.tests: improved fix for the test case 2014-11-24 03:42:27 +01:00
Doug Coleman d40faa3bdc compiler.cfg: Add vocabulary for words defined just to test compiler.cfg. 2014-11-23 01:06:46 -08:00
Doug Coleman 3b3103b545 compiler.cfg.scheduling: Fix V{ } -> { } unit test. 2014-11-22 17:43:27 -08:00
Björn Lindqvist 964ae127a2 compiler.cfg.dependence: docs 2014-11-22 17:31:40 -08:00
Björn Lindqvist aca14563b0 compiler.cfg.dependence/scheduling: fix(?) for #1187, just avoid shuffling ##peek... 2014-11-22 17:31:40 -08:00
Björn Lindqvist 9d0379b9ba compiler.cfg.dependence: if node subclasses identity-tuple it doesn't need the number slot 2014-11-22 17:31:40 -08:00
Björn Lindqvist eb9ca1c6fe compiler.cfg.dependence: node class doesn't need parent attribute, that's nice 2014-11-22 17:31:40 -08:00
Björn Lindqvist 0feece123c compiler.cfg.dependence/scheduling.tests: new tests, some that doesnt work yet 2014-11-22 17:31:40 -08:00
Björn Lindqvist 8347f43f84 compiler.cfg.dependence/scheduling: refactoring to get rid of node's follows>> 2014-11-22 17:31:40 -08:00
Björn Lindqvist 645a70f1d4 compiler.cfg.scheduling: refactoring to get rid of the roots dynamic variable 2014-11-22 17:31:39 -08:00
Björn Lindqvist a96fff60af compiler.cfg.dependence: keys-for ?first is not deterministic, use tiebreak-parents to get predictable ordering 2014-11-22 17:31:39 -08:00
Björn Lindqvist 7ebceb50e5 compiler.cfg.dependence/scheduling: select-parent and roots moved to scheduling
the roots stuff is only used by compiler.cfg.scheduling, so it's more
simple to have it there than in compiler.cfg.dependence
2014-11-22 17:31:39 -08:00
Björn Lindqvist 586c47e5ab compiler.cfg.dependence/scheduling: more readable version of the select word 2014-11-22 17:31:39 -08:00
Björn Lindqvist b5754d32ef compiler.cfg.dependence: moved tree verification code to .tests
Since verify-trees just checked that make-trees worked correctly, it's
better to have that code in the test vocab instead of slowing down
every compile by running it
2014-11-22 17:31:39 -08:00
Björn Lindqvist 2ea1a999a4 compiler.cfg.dependence.tests: unit tests for the dependence vocab 2014-11-22 17:31:39 -08:00
Björn Lindqvist 3f3cc0eb8a compiler.cfg.dependence: now the nodes are on the stack instead of being saved in a dynamic variable (fp++) 2014-11-22 17:31:39 -08:00
Björn Lindqvist 2cfd55b864 compiler.cfg.dependence/scheduling: refactoring, trying to get rid of the ugly usage of nodes dynamic variable 2014-11-22 17:31:39 -08:00
Björn Lindqvist 0a7726b66d compiler.cfg.dependence: more docs for the vocab 2014-11-22 17:31:38 -08:00
Björn Lindqvist a1b20e451b compiler.cfg.scheduling: split-insns returns a 3-tuple instead of 3 items on the stack 2014-11-22 17:31:38 -08:00
Björn Lindqvist c777cb954a compiler.cfg.scheduling: refactor to use split-insns and compiler.cfg.linear-scan.numbering + tests 2014-11-22 17:31:38 -08:00
Björn Lindqvist 96396cb3ad compiler.*: use block>cfg and insns>block in many tests instead of wordier code 2014-11-22 17:31:38 -08:00
Björn Lindqvist c8a022423e compiler.cfg.utilities: move and rename the helper words block>cfg, insns>block and insns>cfg, they are useful to many testing vocabs 2014-11-22 17:31:38 -08:00
John Benediktsson 44f31ee13e use swapd instead of [ swap ] dip. 2014-11-21 11:56:17 -08:00
Doug Coleman 46174ab748 compiler.cfg.build-stack-frame: Fix test for win64 2014-11-18 14:21:45 -08:00
John Benediktsson 60d0937041 compiler.cfg.instructions: fix help-lint. 2014-11-16 16:22:13 -08:00
Björn Lindqvist 0d9316f4f9 Docs: more various compiler doc improvements 2014-11-16 06:25:55 -08:00
Björn Lindqvist 42a528bb28 compiler.codegen.gc-maps: docs and tests 2014-11-16 06:25:54 -08:00
Björn Lindqvist d3c91bea72 compiler.cfg.linear-scan.*: stub docs and tests 2014-11-16 06:25:54 -08:00
Björn Lindqvist 3b86d4b9ba compiler.cfg.def-use: docs 2014-11-16 06:25:54 -08:00
Björn Lindqvist 90b31d543b compiler.cfg.instructions: more docs 2014-11-16 06:25:54 -08:00
Björn Lindqvist f06f59b956 Docs: smallish improvements to compiler vocabs 2014-11-16 06:25:54 -08:00
Björn Lindqvist bc5c23b162 compiler.cfg.linear-scan.assignment: stub docs 2014-11-16 06:25:54 -08:00
Björn Lindqvist 1eac4afc8b compiler.cfg.linear-scan.allocation.state: sub docs and tests 2014-11-16 06:25:53 -08:00
Björn Lindqvist 0a30bd9218 compiler.cfg.stack-frame: stub docs and tests for vocab 2014-11-16 06:25:53 -08:00
Björn Lindqvist 8a0b4c3d26 compiler.cfg.build-stack-frame: stub docs and tests for vocab 2014-11-16 06:25:53 -08:00
Björn Lindqvist cbc8681187 Docs: compiler.cfg.instructions improvements 2014-11-16 06:25:53 -08:00
Björn Lindqvist 18d7be2c05 compiler.tests.alien: tests to make sure #1021 stays dead 2014-11-12 19:41:32 -08:00
Doug Coleman 466fe4559d ffi_test: Can actually test 62 and 63 on windows. 2014-11-10 10:30:35 -08:00
Doug Coleman 564a67ce7e compiler.tests.alien: Don't test ffi calls 61-63 on Windows. 2014-11-09 10:52:16 -08:00
Doug Coleman 7cfa9d9518 assocs: Make map-index-as support seq or assoc exemplars and move map-index, map-index-as to assocs because they need to use new-assoc. Make zip-index-as support assoc exemplars. Fix up docs and tests.
assocs.extras: Remove zip-as and move tests to assocs.
2014-11-08 18:18:00 -08:00
Doug Coleman 1b5711cc42 compiler.tests.alien: Add structs with uint and ulonglong pairs and return them from an FFI call. macosx32 seems to be working, hopefully this will break it or confirm that it's working. Linux32 is broken, hopefully this will show how. 2014-11-08 13:39:47 -08:00
Doug Coleman 56f1b87a6f basis, extra: Use zip-index. 2014-11-08 00:46:30 -08:00
Doug Coleman e494e3965b compiler.tests.alien: Check in a failing unit test. Structure is getting returned improperly. 2014-11-07 15:34:10 -08:00
Benjamin Pollack 2c3dd8c3c8 Remove executable bit from tons of files that aren't 2014-11-05 20:40:42 -08:00
Doug Coleman 1ee9a8ea13 compiler.cfg.stacks.local: Have unit test load prettyprint implementation for ds-loc so that it always prints as "D 4". 2014-10-22 10:31:27 -07:00
Björn Lindqvist cb83f3b39b compiler.tests.alien: use the with-callback combinator to plug the memory leaks in the tests 2014-10-22 07:02:55 -07:00
John Benediktsson af2a53239e compiler: resolve duplicate doc for "compiled". 2014-10-19 08:27:59 -07:00
Björn Lindqvist 961d0c4eb9 compiler.codegen.gc-maps: update docs so that they match how factors gc-maps currently work 2014-10-19 14:17:54 +02:00
Björn Lindqvist a617855aef Docs: fixing smaller help-lint nitpicks 2014-10-19 14:05:06 +02:00
Björn Lindqvist 164af978ba compiler.cfg.*: more stub docs for cfg construction words 2014-10-19 13:45:42 +02:00
Björn Lindqvist 81a84266d3 compiler.codegen.*: help for resolve-label misplaced -- move it 2014-10-19 13:41:45 +02:00
Björn Lindqvist 83cf4b9d57 compiler,cpu: more docs 2014-10-17 23:18:57 +02:00
Björn Lindqvist 476ebf5b25 compiler.cfg.*: more docs, tests and a small refactoring of the
admissible-registers word
2014-10-17 23:18:57 +02:00
Björn Lindqvist 88fb349bd0 stack-checker,compiler: docs for stack-checker and compiler words 2014-10-17 23:18:57 +02:00
Björn Lindqvist 425031e4b3 compiler.codegen.gc-maps: initial docs 2014-10-17 23:17:49 +02:00
Björn Lindqvist 275082d603 compiler.*: doc improvements 2014-10-17 23:17:49 +02:00
Björn Lindqvist be372831f5 compiler.tests.alien: wrap all callback tests in special
unit-test-with-destructor blocks, that way they dont leak memory in the
callback heap
2014-09-29 07:30:22 -07:00
Doug Coleman 4c6435934b compiler.cfg.stacks.vacant: Fix docs for word rename. 2014-09-08 17:48:22 -07:00
Björn Lindqvist ffacc8370d compiler.cfg.stacks.vacant: ##call instructions clear the set of overinitialized locations 2014-09-08 14:54:18 -07:00
Björn Lindqvist 9836d6a1d0 VM: move the stack scrubbing logic to call_frame_slot_visitor to avoid visiting the callstack twice
primitive_minor_gc() iterates the stack twice, first to scrub stack
locations, then to trace overinitialized ones and gc roots. By running
visit_callstack() before visit_stack_elements() you only need to do it
once.
2014-09-08 14:54:18 -07:00
Björn Lindqvist 8cd2eee8e0 compiler.codegen.gc-maps: the gc-map-needed? word can be called with f 2014-09-08 14:54:17 -07:00
Björn Lindqvist 8c0f9698de compiler.codegen.gc-maps: check-d>> and check-r>> now used in the code generator
the approach looks sound and now the gc can be fixed to take advantage
of the extra info.
2014-09-08 14:54:17 -07:00
Björn Lindqvist 46082d836a compiler.cfg.stacks.vacant: invert meaning of 0/1 for overinit:ed locs to make some logic simpler 2014-09-08 14:54:17 -07:00
Björn Lindqvist 70e4f2a8b7 compiler.cfg.instructions: added check-d and check-r slots to gc-map
the data is output from compiler.cfg.stacks.vacant in a reasonable
format but not yet used for code generation.
2014-09-08 14:54:17 -07:00
Björn Lindqvist ecead801c1 compiler.cfg.stacks.vacant: more docs and removed usage of byte-arrays 2014-09-08 14:54:17 -07:00
Björn Lindqvist ab5e629243 compiler.cfg.stacks.vacant: sub docs seeded with a stolen comment from uninitialized.factor 2014-09-08 14:54:17 -07:00
Björn Lindqvist 40ee3cdcbb compiler.cfg.stacks.vacant: fix usings and remove commented out code 2014-09-08 14:54:17 -07:00
Björn Lindqvist e961a03837 compiler.cfg.stacks.vacant: compiler pass replacing uninitialized for more accurate stack maps
This pass uses a better algorithm for keeping track of all stack
manipulations which means that the stack maps it assigns are much more
precise.
2014-09-08 14:54:17 -07:00
Björn Lindqvist d1032c159a compiler.cfg.dataflow-analysis: generic for configuring the "block skipping"
To accurately record uninitialized/overinitialized stack locations,
kill blocks needs to be analyzed. Now you can make it so by overriding
ignore-block?.
2014-09-08 14:54:17 -07:00
Björn Lindqvist 3a6c14765d vm: add the gc-info struct 2014-08-25 14:52:11 -07:00
John Benediktsson 7609ab6eda compiler.cfg: fix some help-lint warnings. 2014-08-14 09:59:27 -07:00
Björn Lindqvist c3253406e3 compiler.cfg.*: more docstrings for compiler words 2014-08-13 11:01:11 -07:00
Björn Lindqvist c6784020aa compiler.cfg.*: initial docs for dataflow analysis vocabs 2014-08-13 11:01:11 -07:00
Björn Lindqvist 6560778d2a compiler.cfg.*: stub docs for register scheduling vocabs 2014-08-13 11:01:11 -07:00
Björn Lindqvist 769ca5550f compiler.cfg.*: docs for compiler words 2014-08-13 11:01:11 -07:00
Björn Lindqvist 1225abeeaf Docs: more compiler-related documentation 2014-08-13 11:01:10 -07:00
Björn Lindqvist 60ffe0680e kernel: new combinator 2with = with with 2014-07-22 07:40:13 -07:00
Doug Coleman 8c8f58dfee compiler.codegen-docs: Make example clickable. 2014-07-18 13:37:38 -05:00
Doug Coleman f9d9d8d64c compiler.cfg.instructions: Messed up a patch. oops. 2014-07-17 18:19:10 -05:00
Doug Coleman 1d0f0fb98a compiler.cfg.instructions: Fix using. 2014-07-17 15:48:41 -05:00
Doug Coleman d173da94c1 compiler.cfg: Rename doc -> docs in filenames so the docs load. 2014-07-17 15:32:29 -05:00
John Benediktsson e0801a632e compiler.tree.modular-arithmetic: make a partial test and add some information to the XXX: comment. 2014-07-09 09:27:13 -07:00
John Benediktsson cc7dfc146b Revert "compiler.tree.modular-arithmetic: revert strict patch so we can investigate further."
This reverts commit ec8377e125.
2014-07-08 19:18:34 -07:00
John Benediktsson ec8377e125 compiler.tree.modular-arithmetic: revert strict patch so we can investigate further. 2014-07-08 16:59:58 -07:00
Doug Coleman beb2d1df3a ffi: Add some tests to ensure that 64bit integers are handled properly. 2014-07-07 17:02:36 -07:00
Doug Coleman 712aa303db compiler, stack-checker docs: Fix for 32-bit builds. 2014-07-03 12:21:17 -07:00
Doug Coleman a6ce3e9113 compiler.tree.modular-arithmetic: Don't require that fixnum+ works on tuple slots marked fixnum. This is probably a speed regression. XXX revisit 2014-07-03 12:12:46 -07:00
John Benediktsson bf473ec943 compiler.cfg: fix some docs. 2014-06-08 18:20:27 -07:00
John Benediktsson 14f425c57c compiler.tree.modular-arithmetic: strict versions shouldn't be here. 2014-06-08 16:16:24 -07:00
John Benediktsson b573c40402 compiler.tree: teaching it bignum>fixnum-strict. 2014-06-08 13:40:38 -07:00
Björn Lindqvist 280620c55f Docs: docs for compiler-related words 2014-06-08 11:48:31 -07:00
Björn Lindqvist 160df8b3f1 Docs: for compiler.cfg.* vocabs 2014-06-08 11:48:31 -07:00
Björn Lindqvist 9c901b9c0e Docs: for compiler, vm and combinators 2014-06-08 11:48:30 -07:00
Björn Lindqvist 2d7f344109 Docs: more docs for compiler.cfg.* words 2014-06-08 11:48:30 -07:00
Björn Lindqvist 3d7b0dbf0a Docs: for compiler.cfg.regsters 2014-06-08 11:48:30 -07:00
Björn Lindqvist 395a490b90 Docs: documentation for stack-checker.* and compiler.* vocabs 2014-06-08 11:48:30 -07:00
Björn Lindqvist fa097c7a56 Docs: for compiler.cfg and cpu.architecture words
Conflicts:
	basis/cpu/architecture/architecture-docs.factor
2014-06-08 11:48:30 -07:00
Björn Lindqvist c76a994f27 Docs: new stub documentation for vocabs in compiler.cfg 2014-06-08 11:48:29 -07:00
Björn Lindqvist c3f9c0a9a3 compiler.cfg.intrinsics.simd: the ulonglong case is correct, it just shouldn't convert the value to a fixnum 2014-06-07 17:00:52 +02:00
Björn Lindqvist 644dac1fc0 compiler.cfg.intrinsics.simd: remove a case in sign-bit-mask that is probably unused 2014-06-07 14:39:19 +02:00
Björn Lindqvist 4f49edaa66 VM: tests that rely on the integer values of the vm_error_type needs to be updated 2014-06-07 12:13:59 +02:00
John Benediktsson 05c35ebda3 kernel: change errors to be in kernel.private. 2014-06-04 14:33:02 -07:00
Björn Lindqvist 6627a3327b kernel: symbolic constants for the various kernel errors 2014-06-04 23:16:40 +02:00
John Benediktsson 57f9d78892 improve help by linking to types directly. 2014-05-23 20:20:15 -07:00
John Benediktsson 25ff85331c compile.codegen.relocation: make doc example work on 32-bit. 2014-05-11 08:22:01 -07:00
Björn Lindqvist e2eebdec4d Docs: mostly fixes for doc errors found by help lint 2014-05-10 17:13:49 -07:00
Björn Lindqvist 5bccede3b6 Docs: docs for compiler.* and cpu.* words 2014-05-10 17:13:49 -07:00
Björn Lindqvist 4f9f2b862f Docs: docs for compiler-related vocabs 2014-05-10 17:13:49 -07:00
Björn Lindqvist ea48d13731 Docs: for compiler.cfg and compiler.codegen 2014-05-10 17:13:49 -07:00
Björn Lindqvist 4cd49e56b2 Docs: for node and #call tuples 2014-05-10 17:13:49 -07:00
Björn Lindqvist 0bb3e2397b Docs: more compiler documentation 2014-05-10 17:13:48 -07:00
Björn Lindqvist 6a8336047d Docs: initial docs for the compiler.cfg.* vocabs 2014-05-10 17:13:48 -07:00
Björn Lindqvist b11e912b44 Docs: initial docs for compiler.tree.propagation.* vocabs 2014-05-10 17:13:48 -07:00
Björn Lindqvist 669bb0a77e Docs: stub docs for some compiler-related words 2014-05-10 17:13:48 -07:00
John Benediktsson 9d3a654443 namespaces: removing make-assoc in favor of explicit get's. 2014-04-24 09:16:14 -07:00
John Benediktsson b910ca090c compiler.tree.propagation.transforms: previous H{ } and HS{ } optimization no longer necessary. 2014-01-08 09:56:08 -08:00
John Benediktsson 47a0ebcc99 compiler.tree.propagation.transforms: faster H{ } and HS{ } clone. 2013-11-25 16:42:59 -08:00
John Benediktsson 97530d86d4 compiler.tree.propagation.transforms: rename to non-negative-fixnum?. 2013-11-25 12:58:21 -08:00
John Benediktsson 9bb5e34762 compiler.tree.propgation.transforms: make bit? use integer>fixnum. 2013-11-25 12:48:48 -08:00
John Benediktsson 9e65ccaf9f compiler.tree.propagation.simple: check output types length. 2013-04-26 17:21:22 -07:00
John Benediktsson 5e0e6119e3 compiler.tree.propagation.transforms: intersect and diff should return type of set2. 2013-03-27 07:21:39 -07:00
John Benediktsson 77a3641bb6 compiler.tree.propagation.transforms: also fix diff. 2013-03-26 19:06:05 -07:00
John Benediktsson c4d832ce4d compiler.tree.propagation.transforms: fix intersect and add intersects?. 2013-03-26 19:04:50 -07:00
Doug Coleman 33a4117787 compiler: Fix tuple literals in tests. 2013-03-24 01:09:37 -07:00
Doug Coleman 8160bb036d compiler.cfg.linear-scan.live-inervals: Rename live-interval 2013-03-23 22:59:18 -07:00
Doug Coleman 5f377c0849 compiler: Rename value-info, live-interval 2013-03-23 22:56:47 -07:00
Doug Coleman 97f6d171ed compiler.tree: Fix compiler test with merge-state 2013-03-23 22:56:16 -07:00
Doug Coleman ee4f4ec997 source-files.errors: Rename error-type. 2013-03-23 21:25:19 -07:00
Doug Coleman fa0b4c1a5b compiler: Use lookup-library. 2013-03-23 21:23:23 -07:00
John Benediktsson d0ad18a64e compiler.cfg.ssa.construction.tdmsc: fix previous broken commits. 2013-03-23 18:44:49 -07:00
John Benediktsson 15f9ba2763 Revert "compiler.cfg.ssa.construction.tdmsc: more use of ?adjoin."
This reverts commit 6bf55a6d89.
2013-03-23 18:39:15 -07:00
John Benediktsson 3f1a426210 Revert "compiler.cfg.ssa.construction.tdmsc: pass visited set on stack."
This reverts commit ec2834300b.
2013-03-23 18:25:53 -07:00
John Benediktsson 7744498ad2 compiler.cfg.ssa.construction.tdmsc: pass visited set on stack. 2013-03-23 18:13:17 -07:00
John Benediktsson 56a7cf4df2 compiler.cfg.ssa.construction.tdmsc: more use of ?adjoin. 2013-03-23 17:57:41 -07:00
John Benediktsson 93fb7805b0 compiler: more use of ?adjoin. 2013-03-23 17:47:07 -07:00
Doug Coleman f820215b1e alien.libraries: Rename library to lookup-library. 2013-03-23 17:16:46 -07:00
Doug Coleman eb20c5e22e compiler.tree.modular-arithmetic: Fix test for iota change. 2013-03-23 17:12:16 -07:00
Doug Coleman 9f92b12e3b compiler.tests: Fix test for <groups> change. 2013-03-23 17:11:27 -07:00
Doug Coleman 033711bf6a compiler.errors: Rename linkage-error. 2013-03-23 17:10:11 -07:00
Doug Coleman 8c19602ae9 assocs: Add of and ?of. Change all the things at once! Fixes #701. 2013-03-23 14:59:07 -07:00
Doug Coleman f9ea61bf91 basis/extra: Update last usages of <sliced-groups> to <groups>. 2013-03-23 12:08:18 -07:00
Doug Coleman 8917ae9ad7 grouping: Remove <groups>, old <sliced-groups> is now <groups>. Fixes 2013-03-23 11:37:51 -07:00
John Benediktsson 460d19f56c compiler.tree: fewer namespace lookups. 2013-03-21 19:36:07 -07:00
John Benediktsson 7da4a74588 compiler: fewer namespace lookups. 2013-03-21 19:11:20 -07:00
John Benediktsson 972281987c compiler.cfg.intrinsics: intrinsics on inline words are not supported. 2013-03-20 10:59:45 -07:00
John Benediktsson 2bbec0dd61 stack-checker: more use of hash-sets. 2013-03-16 13:41:51 -07:00
Doug Coleman 875e45a640 sequences: Add some short useful factors. Clean up the use of longest. 2013-03-11 17:47:52 -07:00
John Benediktsson b8097f9221 compiler: cleaner use of sets. 2013-03-10 17:21:27 -07:00
John Benediktsson 7f3f90eb8d compiler: more use of hash-sets. 2013-03-10 16:13:31 -07:00
John Benediktsson 1776893c36 compiler.tree.dead-code.simple: curry live-values. 2013-03-10 16:13:31 -07:00
John Benediktsson ac95c024f3 compiler.cfg.loop-detection: more use of hash-sets. 2013-03-10 10:06:48 -07:00
John Benediktsson c7c951f207 compiler.cfg.ssa.construction: more use of hash-sets. 2013-03-10 10:03:11 -07:00
John Benediktsson 229e85459e compiler.tree.tuple-unboxing: simpler checks. 2013-03-10 09:36:52 -07:00
John Benediktsson 2025ffe292 compiler.tree.modular-arithmetic: more use of hash-sets. 2013-03-08 15:58:16 -08:00
John Benediktsson 262a46a3f4 compiler.cfg.loop-detection: more use of hash-sets. 2013-03-08 12:38:50 -08:00
John Benediktsson ff9af6423f compiler.tree.recursive: more use of hash-sets. 2013-03-08 12:34:23 -08:00
John Benediktsson 9d43e21563 compiler.cfg.write-barrier: more use of hash-sets. 2013-03-08 12:30:37 -08:00
John Benediktsson 88626d38ca compiler.cfg.ssa.construction: more use of hash-sets. 2013-03-08 12:24:06 -08:00
John Benediktsson af1b167c28 compiler.tree.propagation.info: inline <value-info>. 2013-03-08 12:19:24 -08:00
John Benediktsson b97a1a0753 compiler: fix stack effects to indicate visited is same object. 2013-03-08 12:16:02 -08:00
John Benediktsson bf35114fec compiler: use hash-sets to track visited sets. 2013-03-08 11:04:47 -08:00
John Benediktsson 04af5f2ffb hash-sets: faster implementation based on hashtables. 2013-03-07 21:43:17 -08:00
John Benediktsson 5908186301 compiler.cfg.alias-analysis: use clear-set. 2013-03-07 21:35:00 -08:00
John Benediktsson 5751f6d309 compiler.tree.propagation.transforms: use integer>fixnum-strict in shift. 2013-03-05 08:19:31 -08:00
John Benediktsson 7a3a801bde words: adding inline-recursive?. 2013-03-04 16:09:56 -08:00
John Benediktsson 5a7e7b8d9b compiler.tree.propagation.known-words: retry this change, some issue with use vocabs. 2013-01-22 07:09:49 -08:00
John Benediktsson f5c898734c Revert "compiler.tree.propagation.known-words: adding known outputs for some words."
This reverts commit 16d8e6555b.
2013-01-22 06:42:58 -08:00
John Benediktsson 7a63013916 compiler.tree.propagation.known-words: adding known outputs for some words. 2013-01-21 20:28:17 -08:00
Doug Coleman fe677bac2f compiler.tree.propagation.recursive: Generalizing intervals in the propagation pass ignored types. Fixes #770. 2013-01-01 18:47:23 -08:00
Doug Coleman 63e55ac813 compiler.cfg.liveness: Break the infinite loop--add the base-pointer as f to start with, and replace it with the real one if there's not a circular chain. Fixes #22 again. 2013-01-01 14:47:54 -08:00
Doug Coleman 125e4befd3 compiler.cfg.liveness: Add parallel-copy method for lookup-base-pointer*. Adjust lookup-base-pointer* stack effect to take two parameters. Still retain stack overflows, but more correct now... 2013-01-01 14:16:51 -08:00
Alex Vondrak 8b44af4717 compiler.cfg.renaming.functor: fix ##parallel-copy methods 2012-12-31 11:26:46 -08:00
Alex Vondrak e90ce0865c compiler.cfg.ssa.destruction.leaders: break off leader-map to resolve circular dependencies (oops) 2012-12-31 11:20:57 -08:00
Alex Vondrak dcb27c51e4 compiler.cfg.liveness: still kill defs by leaders, but keep original
vregs in the live-sets so accurate info (e.g., representations) can
still be looked up (issue #22)
2012-12-31 11:05:05 -08:00
Alex Vondrak fc91dcf530 compiler.cfg.ssa.destruction: alien-call-insns are too hairy to coalesce (issue #22) 2012-12-31 11:04:57 -08:00
Alex Vondrak 86a15ad47b compiler.cfg.liveness: look up leaders (if possible) so liveness analysis doesn't break after leaving SSA (issue #22) 2012-12-31 11:04:52 -08:00
Alex Vondrak b08c077023 compiler.cfg.parallel-copy: make sure new vregs used to break cycles in parallel-copy-rep update the leader-map (issue #22) 2012-12-31 11:04:44 -08:00
Alex Vondrak ff1c2c293b compiler.cfg.ssa.interference.live-ranges: fix kill-indices for ##parallel-copy (issue #22) 2012-12-31 11:04:38 -08:00
Alex Vondrak ae0b77a0c4 compiler.cfg.ssa.cssa: split the definitions of ##phis so live-ranges don't interfere (issue #22)
See the explanation after the proof of Lemma 1 in "Revisiting Out-of-SSA
Translation for Correctness, Code Quality, and Efficiency" (Boissinot et
al.) for why this is necessary.
2012-12-31 11:04:26 -08:00
Doug Coleman a0dd953e33 starting point - Fix bootstrap; I broke it in merging. Disable environment variables because the compiler isn't loaded yet and can't call C ffi functions, and tools.test loads this vocab.
Disable intrinsics in cpu.x86.64 for now, since they invoke the compiler
Fix ##branch renaming to ##branch,
To work on this branch:
./factor -include=math -i=boot.image
./factor -run=listener
USE: compiler USE: tools.test save
enable-optimizer

Error message is now:
T{ vregs-shouldn't-interfere f 409 424 }
2012-12-31 11:03:45 -08:00
Slava Pestov 07227f22f9 WIP 2012-12-31 11:03:33 -08:00
John Benediktsson 013160df9a change some "2drop 2drop" to "4drop". 2012-10-23 12:21:30 -07:00
John Benediktsson cf3c197743 compiler.tree.propagation: revert cleanup, this was more correct. 2012-10-05 15:00:49 -07:00
John Benediktsson f7d58fff90 compiler.tree.propagation: throw the proper error in >fixnum methods. 2012-10-05 09:54:51 -07:00
John Benediktsson 80b39bd4f2 compiler.tree.propagation: cleanup known-words a bit. 2012-10-05 09:47:27 -07:00
John Benediktsson 040b94f5ce compiler.tree.propagation: make sure integer>fixnum-strict infers a fixnum. 2012-10-05 04:17:43 -07:00
Alex Vondrak f75f99ecc9 compiler.cfg.copy-prop: kludge to make sure ##phis get updated 2012-09-12 15:14:11 -07:00
Alex Vondrak 4008edfdf8 move compiler.cfg.graphviz & compiler.cfg.gvn from basis to extra, just to keep organized 2012-09-12 15:14:07 -07:00
Alex Vondrak 51b3b1fd87 compiler.cfg.graphviz: tweak code & output a little 2012-09-12 15:14:06 -07:00
Alex Vondrak d6849da7ec compiler.cfg.graphviz: refactoring 2012-09-12 15:14:06 -07:00
Alex Vondrak 64b541759e add crappy experimental code for compiler.cfg.graphviz & compiler.cfg.gvn 2012-09-12 15:14:06 -07:00
John Benediktsson e72e1a340f compiler.tree.propagation: fix >fraction types. 2012-09-11 07:42:39 -07:00
John Benediktsson e84e508256 math.ratios: speed up some operations on ratios. 2012-09-10 19:53:25 -07:00
John Benediktsson ec6baefce3 compiler.tree.cleanup: fix "-1 shift" tests. 2012-09-10 19:24:23 -07:00
John Benediktsson a4f264509d math: cleaner "2/" speedup by using custom inlining. 2012-09-10 17:59:03 -07:00
John Benediktsson b6c069f99a compiler.cfg.representations.selection: removing 10^ in favor of 10^. 2012-09-05 09:25:26 -07:00
Doug Coleman 27f445d505 assocs: Add sift-keys and sift-values. Remove three other implementations
of sift-values and use the new one.
2012-08-23 22:36:10 -07:00
John Benediktsson 465a969b61 layouts: defining "fixnum-bits". 2012-08-21 18:05:59 -07:00
Doug Coleman cd9dd9d752 core: Throw an error when assigning a bignum to a fixnum tuple slot if the bignum doesn't fit. Fixes #594. 2012-08-03 14:59:59 -07:00
John Benediktsson 6a183718fa compiler.cfg: don't need to escape the symbol here. 2012-08-02 15:14:42 -07:00
John Benediktsson 3a7a7ac86b compiler.codegen: instruction counter is a global. 2012-08-02 15:06:04 -07:00
Doug Coleman 2996ef41ff sequences: Fix tests that broke when nth could only be integers. Undo integer>fixnum in iota nth. See bug #582. 2012-07-25 22:17:24 -07:00
Doug Coleman c936f9d5e5 modular-arithmetic: Fix unit test. Should expect integer>fixnum, not >fixnum. 2012-07-23 11:51:44 -07:00
Doug Coleman fb4e3ad9bc compiler: Fix bitand on ratios, floats. Fix shift on ratios, floats. Add integer>fixnum. Fixes #500. 2012-07-23 09:31:12 -07:00
John Benediktsson 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -07:00
Doug Coleman bf8d455e9c compiler: Fix /mod simplications in dead-code, add unit tests. Fixes #544 2012-07-21 03:41:42 -07:00
Doug Coleman d979478bc4 stack-checker: meta-d was a word and symbol, now meta-d word and (meta-d) symbol
issuse #358
2012-07-20 12:30:14 -07:00
Doug Coleman 99ec318a98 compiler.tree.debugger: Remove make-assoc 2012-07-19 17:48:02 -07:00
John Benediktsson 559b5bfa5b using the new H{ } make. 2012-07-19 09:50:09 -07:00
Doug Coleman 42f4dc36b2 namespaces: Rename ``bind`` to ``with-variables``. Update a few places that called ``global [ ] with-variables`` to use ``with-global``. 2012-07-19 00:02:47 -07:00
Doug Coleman 7c77597b09 issue #358: fix a couple compiler errors 2012-06-21 08:35:47 -07:00
Doug Coleman 1c3deddf61 issue #358: Rename all of the words depends-on-* to add-depends-on* 2012-06-21 08:35:45 -07:00
John Benediktsson d1f3b326e5 math: using if-zero in more places. 2012-06-18 14:32:39 -07:00
Doug Coleman 3507b9bad7 classes:
- Allow methods to dispatch off union{ } and intersection{ } classes.
- Add not{ } anonymous-complement syntax.
- Define class-name for anonymous-union/intersection/complement and maybes, and clean up pprint.
- Change maybe: foo to maybe{ foo }
- Call sort-classes when making anonymous-union/anonymous-intersection classes so that they are canonicalized.
2012-05-03 19:45:30 -07:00
Joe Groff c86d92a219 fix compiler.codegen tests 2011-12-14 12:51:12 -08:00
Joe Groff c9cc98d124 compiler.constants: remove unused constants 2011-12-14 09:56:45 -08:00
Joe Groff e21f316583 vm: store stack frame size in code blocks
Change modify-code-heap primitive so it takes a sixth element in each array for the frame size.
2011-12-14 09:56:45 -08:00
Joe Groff 47fc91e948 command-line: don't pull in tools.errors
tools.errors brings the debugger with it, which bloats deploy image size
2011-12-07 10:52:58 -08:00
Joe Groff 2e4d6f724b compiler: fix failing test 2011-12-06 21:11:44 -08:00
Doug Coleman 80385770ef compiler: The non-optimizing compiler is too slow with smart combinators in the compiler. Speed up bootstrap by not using them. 2011-12-05 14:50:51 -08:00
Doug Coleman 2b87eaa1b5 generalizations: Refactor stack-checker so that smart combinators can be used with curry and compose. 2011-11-27 20:25:22 -08:00
Joe Groff 943596575a use radix literals 2011-11-23 19:03:40 -08:00
Joe Groff f225bf7f55 compiler.cfg.finalization: reenable scheduling
Prolog safepoint appears to work with it enabled
2011-11-23 11:11:27 -08:00
Joe Groff 6498bc65ce compiler: emit safepoints in optimized prologs 2011-11-23 11:11:25 -08:00
Doug Coleman f7700809c5 compiler tests: fix using, add tests to make sure instance? inlines 2011-11-23 01:01:11 -08:00
Doug Coleman b37bebb17f compiler.tree.propagation.transforms: fix infinite recursion that was breaking prettyprint 2011-11-23 00:48:05 -08:00
Doug Coleman f90bc5cdb6 classes: optimize instance? for classoids 2011-11-22 20:38:07 -08:00
Doug Coleman 82c5388f68 classes: add syntax for intersection{ and union{ anonymous classes. make classoid a mixin. 2011-11-22 18:49:42 -08:00
Doug Coleman cab0369fec classes: Make methods dispatch on maybes. Fix a couple bugs in the implementation of maybe. classoid? is now a dumb test if an object could be a well-formed classoid; valid-classoid? tests for well-formedness. Move maybe tests. Make pprint* work better on methods. 2011-11-22 15:12:20 -08:00
Doug Coleman fac17c10ba classes.maybe: move maybe definition from classes.union to classes.maybe 2011-11-22 02:46:36 -08:00
Doug Coleman 067f9830ef classes.union: Define a maybe: word that makes a tuple that acts as an anonymous union for a type and f. Updated all the places we define UNION: ?foo foo POSTPONE: f ;. Fixes #416 and lots of headaches. 2011-11-22 01:56:13 -08:00
Joe Groff 248066c710 code beautification 2011-11-13 16:10:26 -08:00
Joe Groff 9a19f82470 compiler.tree.propagation: missed using 2011-11-13 16:10:25 -08:00
Joe Groff 873208f986 compiler: more peephole tests for shl/sar 2011-11-13 16:10:24 -08:00
Joe Groff 4261d8bb8d compiler: tighten (simd-select) output class
Ints and smaller (or shorts and smaller on 32-bit) can be assumed to be fixnums. Fixes #393
2011-11-13 16:10:23 -08:00
Joe Groff d79b462f75 compiler: add intrinsic for PMOVMSKB/MOVMSKP[SD]
Combined with a fast bit-count this will let us rice byte-counting.
2011-11-13 16:10:20 -08:00
Slava Pestov 910748819d Now that #foo and ##foo are symbols we can remove a bunch of \ 2011-11-12 22:04:26 -08:00
Joe Groff e0dc236725 cpu.*.bootstrap: clear faulting flag directly
No reason to go through a safepoint in unwind-native-frames really.
2011-11-12 13:02:57 -08:00
Doug Coleman 6cca0ea468 compiler.cfg: Rename <##foo> to ##foo, in the low-level IR 2011-11-11 19:48:38 -08:00
Joe Groff c31530caec vm: strip out call-counting profiler
This makes the separate "code" and "entry_point" fields in word and quotation redundant, so also remove them to reclaim an additional cell per word and quotation object, which should help with #318.
2011-11-10 16:01:07 -08:00
Doug Coleman eb2a0c611b compiler.cfg: Change low-level IR constructors from ##foo to <##foo> 2011-11-06 23:02:46 -08:00
Doug Coleman d65bd97a54 compiler.tree: Renamed high-level IR node constructors to <#foo> from #foo. Moving towards making classes/word names not conflict. 2011-11-06 23:02:45 -08:00
Doug Coleman 9048233d27 compiler.tree.dead-code: Rewrite /mod to /i or mod in the dead-code pass in the high level optimizer. Fixes #279. 2011-11-06 19:23:26 -08:00
Doug Coleman c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08:00
Joe Groff 8cf18d1a82 remove BSD,solaris,etc. misc platform support code 2011-11-02 17:13:51 -07:00
Slava Pestov 70056d756b compiler.cfg.builder: add test to ensure that fast union predicates do not contain a conditional 2011-10-29 17:11:04 -07:00
Slava Pestov 5a46b45312 compiler.tree.propagation: more accurate output type for 'tag' primitive 2011-10-29 17:11:04 -07:00