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