Commit Graph

1188 Commits (2c82dfb51ba6923c2e7dcf3fac5109ae9da528f2)

Author SHA1 Message Date
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
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
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
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 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 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
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 56f1b87a6f basis, extra: Use zip-index. 2014-11-08 00:46:30 -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 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 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
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 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
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 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
Doug Coleman 712aa303db compiler, stack-checker docs: Fix for 32-bit builds. 2014-07-03 12:21:17 -07:00
John Benediktsson bf473ec943 compiler.cfg: fix some docs. 2014-06-08 18:20:27 -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 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 e2eebdec4d Docs: mostly fixes for doc errors found by help lint 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 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
Doug Coleman 33a4117787 compiler: Fix tuple literals in tests. 2013-03-24 01:09:37 -07:00
Doug Coleman 5f377c0849 compiler: Rename value-info, live-interval 2013-03-23 22:56:47 -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
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 b8097f9221 compiler: cleaner use of sets. 2013-03-10 17:21:27 -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 262a46a3f4 compiler.cfg.loop-detection: more use of hash-sets. 2013-03-08 12:38:50 -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 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 5908186301 compiler.cfg.alias-analysis: use clear-set. 2013-03-07 21:35:00 -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
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 b6c069f99a compiler.cfg.representations.selection: removing 10^ in favor of 10^. 2012-09-05 09:25:26 -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 4e72d80256 Using "same?" in more places. 2012-07-21 10:22:44 -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 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
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
Joe Groff 248066c710 code beautification 2011-11-13 16:10:26 -08:00
Joe Groff 873208f986 compiler: more peephole tests for shl/sar 2011-11-13 16:10:24 -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
Doug Coleman 6cca0ea468 compiler.cfg: Rename <##foo> to ##foo, in the low-level IR 2011-11-11 19:48:38 -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 c731dc6edb Rename lookup to lookup-word. 2011-11-06 16:00:00 -08: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
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