Björn Lindqvist
ded3760d46
compiler.*: merge of ##inc-r and ##inc-d into one instruction ##inc with a loc slot
...
this is nice because it leads to simpler code and matches how ##peek and ##replace instructions work
2015-04-29 09:31:53 -07:00
Björn Lindqvist
c7d9cb4c3d
compiler.cfg.*: new and improved docs
2015-04-29 09:31:53 -07:00
Björn Lindqvist
74ea76a3c9
compiler.cfg: unlikely? slot unused, lets get rid of it
2015-04-29 09:31:53 -07:00
Björn Lindqvist
bb504b7c3d
compiler.cfg.dependence: this vocab was only used by scheduling so it isn't needed anymore
2015-04-29 09:31:53 -07:00
Björn Lindqvist
b3ebb04d6d
compiler.cfg.*: since the height and scheduling compiler passes aren't used anymore lets remove them
2015-04-29 09:31:53 -07:00
Björn Lindqvist
e7fc6a789e
compiler.tree.*: more compiler tree docs
2015-02-05 11:01:05 +00:00
Doug Coleman
edf1bddd67
compiler.tests.optimizer: Re-enable the minor-gc test case that was
...
failing until bjourne's latest commits.
2015-01-22 13:03:28 -08:00
Doug Coleman
e4e6c0031a
compiler.cfg.stacks.clearing: Fix help-lint-all.
2015-01-22 12:30:49 -08:00
Björn Lindqvist
d2c0ae9fd9
compiler.cfg.stacks.*: more docs
2015-01-22 12:17:21 -08:00
Björn Lindqvist
71b054cf39
compiler.cfg.stacks.*: updated tests to match
2015-01-22 12:17:21 -08:00
Björn Lindqvist
3c1f223d90
compiler.cfg.stacks.*: use insn# as the key in the stack-record instead of the insn tuple itself
2015-01-22 12:17:21 -08:00
Björn Lindqvist
d19869f906
compiler.cfg.stacks.*: many new and fixed tests
2015-01-22 12:17:21 -08:00
Björn Lindqvist
d4493858da
compiler.cfg.stacks.*: vacant-peek checking readded
2015-01-22 12:17:20 -08:00
Björn Lindqvist
640759ffed
compiler.cfg.*: new step in finalization: clear-uninitialized
...
this step is supposed to analyze the cfg, find where there are peeks
that can cause stack underflow, and insert replace-imm instructions so
that there are no uninitialized stack locations if they do. could fix #1187
2015-01-22 12:17:20 -08:00
Björn Lindqvist
fd06e22e9a
compiler.cfg.stacks.map: new vocab for creating an assoc that contains the stack state for each instruction in a cfg
2015-01-22 12:17:20 -08:00
Björn Lindqvist
163fef12f9
compiler.cfg.*: detached the normalize-height and schedule-instructions passes
...
those stages cause uninitialized "holes" in the stacks which in turn
causes gc errors if stack underflows occur
2015-01-22 12:17:20 -08:00
Doug Coleman
ceebc1d6c1
compiler: Fix help-lint for @bjourne's recent awesome docs.
2015-01-17 14:02:59 -08:00
Doug Coleman
b4e9334d04
compiler.tests.stack-trace: Fix unit test.
2015-01-17 13:57:56 -08:00
Doug Coleman
c4fbeccfa8
compiler.tests.optimizer: Disable minor-gc test case for now. #1187 .
2015-01-17 11:02:05 -08:00
Björn Lindqvist
b6d25ba090
compiler.tests.stack-trace: unit tests against the #1265 bugs
2015-01-15 09:29:14 +00:00
Björn Lindqvist
d0dde922bd
compiler.cfg.*: new unit test vocabs
2014-12-31 03:37:17 +01:00
Björn Lindqvist
5782855343
compiler.cfg.*: more docs
2014-12-31 03:37:16 +01:00
Björn Lindqvist
0432b17409
compiler.cfg.*: refactoring away the compute-global-sets word
2014-12-31 03:37:16 +01:00
Björn Lindqvist
79d294e4bf
compiler.cfg.*: docs and more tests
2014-12-31 03:37:16 +01:00
Björn Lindqvist
1bd4525ac6
compiler.cfg.stacks.local: refactoring making stack-changes and height-changes take and return stuff instead of using variables and the make building
2014-12-31 03:37:16 +01:00
Björn Lindqvist
e87be7b5c8
compiler.cfg.parallel-copy: docs
2014-12-31 03:37:16 +01:00
Björn Lindqvist
24c9dbe160
compiler.cfg.stacks.height: these words are unused
2014-12-31 03:37:16 +01:00
Björn Lindqvist
2ccbcd6af6
compiler.cfg.*: more compiler docs
2014-12-31 03:37:16 +01:00
Björn Lindqvist
e968c16139
compiler.cfg.stacks.finalize: initial docs
2014-12-31 03:37:16 +01:00
John Benediktsson
c2c722891e
compiler.cfg.save-contexts: fix help-lint.
2014-12-15 15:11:06 -08:00
John Benediktsson
2a893a110a
compiler.cfg.linear-scan.allocation.state: don't use slot.syntax.
2014-12-15 13:10:59 -08:00
Björn Lindqvist
aee55f1b83
compiler.cfg.linear-scan.assignment: forgot that i removed live-intervals>min-heap
2014-12-15 21:04:53 +01:00
Björn Lindqvist
d6c1c075ff
compiler.cfg.linear-scan.allocation: using slurp-heap
2014-12-15 20:48:34 +01:00
Björn Lindqvist
84f8f26ce8
compiler.cfg.linear-scan.allocation.state: doc fixing
2014-12-15 20:44:53 +01:00
Björn Lindqvist
35d00da765
compiler.cfg.linear-scan.allocation.*: maybe a fix for #1227
...
The register allocator pops from the unhandled-intervals and
unhandled-sync-points heaps. If two live intervals share the same
start slot, then they can be popped in either order leading to
differently generated code. So instead use one
heap (unhandled-min-heap) and both the start and end slot as the heap
key to resolve tie-breakers
2014-12-15 20:44:53 +01:00
Björn Lindqvist
173f7c0869
compiler.cfg.scheduling: refactoring to use the simple-optimization combinator
2014-12-15 20:44:07 +01:00
Björn Lindqvist
8a011c8366
compiler.cfg.*: more docs
2014-12-15 20:44:07 +01:00
Björn Lindqvist
c810677b47
compiler.cfg.linear-scan.*: refactoring to simplify init-allocator and get rid of init-unhandled
2014-12-15 20:44:06 +01:00
Björn Lindqvist
fab478482e
compiler.cfg.linear-scan.allocation: refactoring to simplify the (allocate-registers) recursion
2014-12-15 20:44:06 +01:00
Björn Lindqvist
52c6009aeb
compiler.cfg.linear-scan.assignment: utility word heap-pop-while which lets you express expire-old-intervals and activate-new-intervals more nicely + tests
2014-12-15 20:40:49 +01:00
Björn Lindqvist
0af46ac4de
compiler.cfg.linear-scan.assignment: more docs and refactoring of the init-unhandled and assign-registers-in-block words
2014-12-15 20:40:49 +01:00
Björn Lindqvist
a7137f32ff
compiler.cfg.save-contexts: refactoring of the vocab, using the simple-optimization combinator and union classes you can shorten it a lot
2014-12-15 20:36:27 +01:00
John Benediktsson
e5c69d3e9b
compiler: try this for compiler.cfg.builder.alien.
2014-12-13 18:44:35 -08:00
John Benediktsson
a689211ae1
compiler.cfg.builder: use compiler.cfg.builder.alien.
2014-12-13 18:08:50 -08:00
John Benediktsson
c65877104e
compiler: cleanup usings.
2014-12-13 16:10:21 -08:00
John Benediktsson
46e0426795
compiler.cfg.stack-frame: fix tests.
2014-12-12 17:14:39 -08:00
John Benediktsson
1911b183a0
compiler.cfg.build-stack-frame: fix tests.
2014-12-12 15:22:22 -08:00
John Benediktsson
8f4c4ea2e1
compiler.cfg.build-stack-frame: some cleanup.
2014-12-12 11:59:23 -08:00
John Benediktsson
c3a4bdcf68
compiler.cfg.linear-scan.resolve: use if-empty.
2014-12-11 14:00:50 -08:00
John Benediktsson
068ddd6c7b
compiler: cleanup cfg passes to have stack effect ( cfg -- )
2014-12-11 12:48:43 -08:00
Björn Lindqvist
33500db79f
compiler.cfg.*: help-lint and test case fixes
2014-12-11 15:02:40 +01:00
Björn Lindqvist
08e9f18c3b
compiler.cfg.*: fix for test cases that broke due to stack effect changes
2014-12-11 14:30:47 +01:00
Björn Lindqvist
bfc0ef815b
compiler.cfg.dominance: fix for #1227 , the dom children needs to be sorted to ensure that the same instruction sequence is generated every time
2014-12-11 14:30:47 +01:00
Björn Lindqvist
628c87c5b1
compiler.cfg.utilities: adding connect-bbs and make-edges
2014-12-11 14:30:47 +01:00
Björn Lindqvist
00e2d9f116
compiler.cfg.dominance: some more docs
2014-12-11 14:30:47 +01:00
Björn Lindqvist
c85175c10c
compiler.cfg.*: new utility word apply-passes to improve the looks of long cleave's where each quotation only contains one word
2014-12-11 14:30:47 +01:00
Björn Lindqvist
e371327ec4
compiler.cfg.ssa.construction.tests: fix tc broken by previous commit
2014-12-11 14:30:47 +01:00
Björn Lindqvist
befbe0bb59
compiler.cfg.dominance: changed stack effect compute-dominance ( cfg -- cfg' ) to ( cfg -- )
2014-12-11 14:30:47 +01:00
Björn Lindqvist
e5866dfa80
compiler.cfg.*: changed stack effect of needs-predecessors from ( cfg -- cfg') to ( cfg -- )
2014-12-11 14:30:47 +01:00
Björn Lindqvist
76cb665a8d
compiler.cfg.dominance: change needs-dominance effect from ( cfg -- cfg') to ( cfg -- )
2014-12-11 14:30:46 +01:00
Björn Lindqvist
054982f24a
compiler.cfg.*: docs for compiler.cfg.dominance and compiler.cfg.ssa.construction
2014-12-11 14:30:46 +01:00
Björn Lindqvist
53b7f82368
Docs: more compiler docs
2014-12-11 14:30:46 +01:00
Björn Lindqvist
5fe9ce4235
compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- )
2014-12-11 14:30:46 +01:00
Björn Lindqvist
a0d4e9b417
compiler.cfg.stacks.uninitialized: this compiler pass isn't used anymore -- let's get rid of it
2014-12-11 14:30:46 +01:00
Björn Lindqvist
8744d908b6
compiler.cfg.*: fix stack effect of compiler passes in optimize-cfg
...
since they all modify the cfg in place, it is better if their stack
effect is ( cfg -- ) instead of ( cfg -- cfg' )
2014-12-11 14:30:45 +01:00
Björn Lindqvist
971a157369
compiler.cfg.instructions: ##alien-assembly should be in the alien-call-insn union but not gc-map-insn
2014-12-08 18:13:46 -08:00
Björn Lindqvist
52d3affeb8
compiler.cfg.*: the ##alien-assembly instruction does not use a gc-map
2014-12-08 18:13:46 -08:00
John Benediktsson
ad9d44aa2b
compiler.cfg.linear-scan.allocation.state: simplify init-unhandled.
2014-12-01 22:18:15 -08:00
John Benediktsson
c0d6fdedd1
classes.tuple: use slots>tuple when possible.
2014-11-29 16:54:50 -08:00
Doug Coleman
cd8b686639
compiler.tests.alien: Test demonstrates padding bytes breaking struct= on linux32. Disable for now.
2014-11-24 08:20:28 -08:00
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
Slava Pestov
e5a308d56a
compiler.tree.debugger: disable length limit when printing optimized. quotation
2011-10-29 17:11:03 -07:00
Joe Groff
402e1155a5
vm: resumably handle signals from leaf procedures
2011-10-27 21:18:18 -07:00
Joe Groff
c06be95816
compiler: no spurious safepoint at start of loops
2011-10-27 21:14:48 -07:00
Joe Groff
41c36752fc
compiler.cfg.tco: clean up commented-out old code
2011-10-27 21:14:47 -07:00
Joe Groff
6f75e84d93
compiler.cfg.tco: teach TCO about safepoints
2011-10-27 21:14:46 -07:00
Joe Groff
e449fef4e3
compiler.cfg.builder: safepoint loops and epilogs
2011-10-27 21:14:46 -07:00
Joe Groff
0c022f2454
compiler: add ##safepoint IR insn
2011-10-27 21:14:46 -07:00
Joe Groff
98fa51f0e0
compiler: rt-safepoint and rel-safepoint words
2011-10-27 21:14:45 -07:00
Doug Coleman
51c033a1f6
Fix all failures in the linux64 build email
2011-10-24 19:33:09 -07:00
Doug Coleman
f9257959fd
Rename class to class-of
2011-10-24 06:47:42 -05:00
John Benediktsson
f4a6e10818
More cleanup of unused stuff.
2011-10-19 11:01:16 -07:00
John Benediktsson
80e1c8e3f2
Eliminate duplicate syntax for stack effects "(" no longer drops and is identical to the old "((", which is now removed.
2011-10-18 13:19:39 -07:00
Joe Groff
dbda6cb40b
compiler.tree.dead-code: fix test
...
It was using "read" in an optimization test, but since "read" is now inline, it wasn't getting the expected optimized quotation back.
2011-10-17 21:23:10 -07:00
John Benediktsson
81714b8dc3
More lint cleanups.
2011-10-16 19:33:16 -07:00
John Benediktsson
378786599d
Cleanup lint warnings.
2011-10-14 11:47:24 -07:00
John Benediktsson
6417f36397
namespaces: adding a "with-global" word to replace "global [ ] bind".
2011-10-13 17:21:59 -07:00
John Benediktsson
1987deb359
Fix M: stack effects.
2011-10-13 16:41:17 -07:00
John Benediktsson
4baf14972f
sequences: adding ?last for symmetry.
2011-10-13 13:04:24 -07:00
Slava Pestov
ae286fb7ef
callback-error: don't use -e until we fix issue #245
2011-10-10 21:25:50 -07:00
Slava Pestov
7bc38641f9
compiler.tree.identities: the identity on mod was useless too, because we already have a rewrite rule which handles this case in compiler.tree.propagation
2011-10-10 12:34:21 -07:00
Slava Pestov
dc36fd712d
compiler.cfg.representations: fix unit test, it depended on hashing order which changed recently
2011-10-10 12:15:41 -07:00
Slava Pestov
3a0ffceed9
compiler.tree.propagation.transforms: fix rem and mod custom inlining
2011-10-10 12:12:53 -07:00
Slava Pestov
7a4ab74703
compiler.codegen.gc-maps: fix tests
2011-10-10 12:07:09 -07:00
Slava Pestov
901ee2434c
Fix custom-inlining for mod and rem, which was converting these calls to bitand in some cases, even if the input was not known to be an integer. Fixes #243
2011-10-09 13:51:35 -07:00
Slava Pestov
b4588629ab
Remove identities on / and rem, which were no-ops because integer-derived-ops would return an empty array
2011-10-09 13:51:03 -07:00
Doug Coleman
31175eb5cc
Mixin classes in redefine25 test are forgotten, but words still reference them -- forget those words, too. Fixes #143 .
2011-10-07 10:49:17 -07:00
Doug Coleman
181f11faa8
Make M\ throw an error upon lookup failure. Change method -> ?lookup-method, lookup-method is the throwing version of ?lookup-method. Fixes #229 .
2011-10-03 15:49:49 -07:00
Slava Pestov
f8e475485a
Add RT_INLINE_CACHE_MISS relocation type to avoid frequent dlsym lookups when compiling PICs. Fixes #123
2011-10-03 00:26:21 -07:00
Slava Pestov
72d3c6e791
Fix linkage-errors test to not clobber its own linkage error
2011-10-03 00:26:21 -07:00
Slava Pestov
05f7419f2f
Rework non-optimizing compiler backend to use compiler.codegen.relocation
2011-10-03 00:26:21 -07:00
Slava Pestov
b89e9a549b
Split up compiler.codegen.fixup into compiler.codegen.{gc-maps,labels,relocation}
2011-10-03 00:25:47 -07:00
Doug Coleman
44ef1d3698
compiler.tree.modular-arithmetic needs shallow-spread>quot
2011-10-02 22:21:11 -07:00
Slava Pestov
daf40ea0c6
Fix infinite loop and empty-dlist error when an error is thrown from a callback running in a thread other than the initial thread. This addresses part of issue #92
2011-10-02 21:59:09 -07:00
Slava Pestov
06218d5d12
compiler.cfg.builder.alien: fix compilation of callbacks which unconditionally throw errors
2011-10-02 19:52:12 -07:00
Doug Coleman
671f19d70f
Remove all non-core uses of (scan-token)
...
Add scan-datum
Add scan-number
Document more words
Fixes #225 .
2011-10-02 12:00:08 -07:00
Doug Coleman
76580da5d5
Refactor the lexer/parser to expose friendlier words for scanning tokens. The preferred top-level words now throw an exception on EOF.
...
CREATE -> scan-new
CREATE-CLASS -> scan-new-class
CREATE-WORD -> scan-new-word
CREATE-GENERIC -> scan-new-generic
scan -> (scan-token)
scan-token now throws on eof
(scan-word) returns word/number/f
scan-word now throws on eof
scan-word-name expects a non-number
Fixes #183 .
Fixes #209 .
2011-09-29 11:28:28 -07:00
Doug Coleman
3826febfae
Fixes the symptom but not the problem. See bug #201 .
2011-09-26 17:32:34 -07:00
John Benediktsson
4f42c72012
specialized-arrays: performed some cleanup.
...
Specifically,
• Created >c-array to be replacement for >T-array.
• Created cast-array to be generic replacement for all T-array-cast words.
• Created c-array@ to be generic replacement for T-array@ words.
• Replaced usages of <T-array> with T <c-array>
• Replaced usages of <direct-T-array> with T <c-direct-array>
• Replaced usages of >T-array with T >c-array
• Replaced usages of T-array-cast with T cast-array
• Replaced usages of malloc-T-array with T malloc-array.
• Removed malloc-T-array.
• Removed T-array-cast.
• Removed T-array@.
• Removed >T-array.
I also added (but didn't change any code to use):
• T c-array-type, returns T-array
• T c-array?, returns T-array?
• c-array{ T ... }, returns T-array{ ... }
Bootstraps just find on Mac OS X. Also `load-all test-all` works for me.
2011-09-26 11:37:51 -07:00
Joe Groff
2bd6de9a02
slots: pre-create the "at", "nth", and "global" slots to make deterministic the currently nondeterministic ambiguity between accessors:change-* and assocs:change-at, sequences:change-nth, and namespaces:change-global
2011-09-19 10:03:43 -07:00
Doug Coleman
bf2a96e9e0
Remove Windows CE from core/ basis/ and build-support/
...
Rename the winnt singleton to windows in core/ basis/ extra/
Rename boot images winnt -> windows
Fixes #84 .
2011-09-18 23:19:06 -05:00
John Benediktsson
499778d808
compiler.tree.escape-analysis.allocations: simplify stack effect.
2011-09-17 08:14:13 -07:00
Slava Pestov
736cebe729
Fix linkage-errors tests for recent changes
2011-09-13 20:42:36 -07:00
Joe Groff
d6668caf7d
compiler.cfg.builder.alien: fix caller-linkage to return the DLL and not the library tuple again; fixes issue #121
2011-09-13 15:10:48 -07:00
Joe Groff
5703e8d7a1
alien.libraries, compiler.cfg.builder.alien: if `dlopen` fails during `<library>`, call `dlerror` and store the error message in the library object; put the dlerror message in the linkage-error when a word from the library is compiled
2011-09-12 23:25:59 -07:00
Joe Groff
b6e0f0180b
alien.libraries, compiler.cfg.builder.alien: include the result of dlerror/GetLastError in the linkage-error for missing symbols
2011-09-12 23:25:59 -07:00
Slava Pestov
7c3827190b
Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93
2011-09-12 00:56:24 -07:00
Slava Pestov
edddffdadd
compiler.cfg.dependence: Add ##allot to control dependency chain, so that we don't re-order an allocation and initialization with an alien call. The alien call might GC, exposing uninitialized memory to the GC. Fixes #53 , fixes #58 , fixes #20 .
2011-08-28 21:25:39 -07:00
Slava Pestov
34f71ea042
compiler.cfg.debugger: add random-scheduling word.
...
Run 'random-scheduling "compiler" test' to find bugs in compiler.cfg.dependencies.
2011-08-28 21:25:37 -07:00
Slava Pestov
3ed1910ab1
compiler.cfg.scheduling: remove old scheduling test code, adding a better way of testing scheduling
2011-08-28 21:25:35 -07:00
Erik Charlebois
64252dbdbc
32 and 64 bit Linux PPC support
2011-05-23 23:36:14 -04:00
Slava Pestov
c36d73e242
Change do-callback to register the current thread with the callback, instead of busy waiting for the current callback to become the right one before returning. Fixes 100% CPU usage issue with system-alert. Thanks to Blei and ex-rzr for doing preliminary analysis of the issue
2011-04-12 21:48:54 -04:00
Slava Pestov
5a3c5c7749
compiler.cfg.branch-splitting was totally broken
2011-02-27 16:43:26 -08:00
Slava Pestov
6f7e4e32d0
compiler.cfg.ssa.construction: update unit tests for nths change
2011-02-25 21:05:38 -08:00
Slava Pestov
b0732bcb22
Fix unit test failures caused by alien.data change
2010-12-25 22:34:12 -08:00
Slava Pestov
75560699ea
Move <ref>, deref and little-endian? from alien.c-types to alien.data, remove <c-object>
2010-12-25 16:55:36 -08:00
Slava Pestov
675a420717
compiler.tests: update for <ref> deref
2010-10-25 22:23:03 -07:00
Doug Coleman
69487d1fd3
Fix a few tests that got broken in the <uint> *uint patches
2010-10-25 19:14:21 -05:00
Doug Coleman
67c37591ca
Remove <uint> *uint and friends. Hopefully remove the last usages of these words
2010-10-25 15:54:42 -05:00
Doug Coleman
4ca9bd0bba
Remove usages of <void*> and *void*
2010-10-25 13:22:50 -05:00
Doug Coleman
1f57dc326e
Remove many uses of <int> and *int etc
2010-10-25 12:49:12 -05:00
Slava Pestov
b052aa61cb
compiler.cfg.linear-scan: extend lifetime intervals of base pointers correctly (reported by Anton Gorenko)
2010-09-30 20:49:03 -07:00
Slava Pestov
6b5fffc026
compiler: preliminary implementation of tracking derived pointers in GC maps
2010-09-27 20:12:44 -07:00
Slava Pestov
53aed0805a
compiler.cfg.alias-analysis: fix bug in lazy alias class instantiation
2010-09-27 20:12:43 -07:00
Slava Pestov
546b81b697
compiler.cfg.scheduling: always run scheduling because heuristic was broken
2010-09-25 16:31:42 -07:00
Slava Pestov
80d7aab40b
compiler.cfg.alias-analysis: don't need to do a local live-in calculation anymore
2010-09-25 16:13:17 -07:00
Slava Pestov
ec2f42fd40
compiler.cfg.liveness: merge in compiler.cfg.liveness.ssa and simplify the code, since we don't compute live sets before SSA construction anymore
2010-09-25 14:36:58 -07:00
Slava Pestov
8bc2ea7a5c
compiler.cfg.ssa.construction: use the baller method for pruned SSA
2010-09-20 21:36:22 -07:00
Slava Pestov
a67c7c5739
compiler.cfg.write-barrier: fix soundness issue with ##copy that never came up but probably should've been fixed anyway
2010-09-06 17:01:44 -07:00
Slava Pestov
a605d5c9c9
compiler.cfg.alias-analysis: dead store elimination was too aggressive, can't eliminate dead stores across a GC call even for fresh allocations because GC will see uninitialized data
2010-09-06 16:57:56 -07:00
Slava Pestov
add75411a0
compiler.cfg.write-barrier: handle ##copy instructions
2010-09-05 23:07:30 -07:00
Slava Pestov
54f97557e6
compiler.cfg.dependence: compute dependency graph for write barrier instructions
2010-09-05 22:51:17 -07:00
Slava Pestov
c677c35de4
compiler.cfg: fix major facepalm with write barrier elimination
2010-09-05 21:39:45 -07:00
Slava Pestov
3323284db4
stack-checker.alien: get a bit more inlining going with callbacks, to expose another bug
2010-09-05 21:27:39 -07:00
Slava Pestov
25ed4dd298
compiler.tests: forgot to check in x87-regression test way back
2010-08-20 18:36:26 -07:00
Slava Pestov
3384fcd96d
compiler: update tests for void being parsed like a real word
2010-08-15 13:01:42 -07:00
Slava Pestov
1985705413
compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths
2010-08-13 23:59:19 -07:00
Slava Pestov
b5fc39c198
compiler.cfg: Reading the return value of a float-returning function on x86-32 had a side effect of popping the x87 stack, so it was not correct for DCE to just eliminate this if the return value was not used. Fix this by adding a new dead-outputs slot to alien-call-insns and having DCE move dead returns there
2010-08-13 23:19:56 -07:00
Slava Pestov
42b858b3f0
math.libm: fix regression: fsqrt intrinsic was not working ever since change was made to inline FUNCTION: bodies
2010-08-12 21:41:57 -07:00
Slava Pestov
723d780703
stack-checker.alien: generate a declaration for input parameter types
2010-07-30 15:50:05 -04:00
Slava Pestov
94f6ac98de
compiler.cfg.linear-scan: fix bad interaction between inactive intervals and sync points
2010-07-29 21:06:48 -04:00