Commit Graph

2040 Commits (b51bd7981900ee8d9d5e00be3d0b43cec34b2e20)

Author SHA1 Message Date
Björn Lindqvist 22887c5816 VM: get rid of the odd RT_EXCEPTION_HANDLER relocation
The address to the win32 relocation handler can be stored in a special
object and be accessed by jit-install-seh. Doing it that way is better
because you can remove a lot of special code related to that relocation
type.
2015-09-02 21:54:30 +02:00
Björn Lindqvist 85e45ae29e compiler.constants: remove a bunch of constants that are unused
(or only used by the defunkt arm backend)
2015-09-02 21:54:24 +02:00
Björn Lindqvist a89b0c2b30 Docs: reorg of the compiler.constants docs a little 2015-09-02 21:54:21 +02:00
Björn Lindqvist 883f65d0e4 VM: fix one callstack overflow problem by "unlocking" the callstacks
border pages

Also a new vocab compiler.tests.callstack-overflow which is supposed to
contain all tests for callstack overflow-related problems.
2015-08-14 20:19:58 -07:00
Björn Lindqvist bdc4880b17 compiler.cfg.save-contexts: context-save-needed not needed because it's
the same as gc-map-insn
2015-08-14 20:19:51 -07:00
John Benediktsson 0216f9f6d1 namespaces: rename namestack* to (get-namestack) for consistency. 2015-08-13 17:53:07 -07:00
John Benediktsson ceb75057da change ERROR: words from throw-foo back to foo. 2015-08-13 16:13:05 -07:00
Doug Coleman ce046b77c8 compiler: rename D to D: because it wants a token. Same for R -> R: 2015-08-13 15:23:10 -07:00
Doug Coleman 62686907fe compiler: fix rename 2015-08-13 12:55:28 -07:00
Doug Coleman c21a154056 core: callstack is a builtin type and a class name. rename the *stack words that grab the current stack get-foostack to avoid the callstack builtin conflict and for better symmetry with set-foostack. 2015-08-13 10:11:59 -07:00
Doug Coleman b6be8685c3 basis: ERROR: changes. 2015-08-13 03:20:39 -07:00
Doug Coleman 225c28f23a compiler.tree.propagation: Fix build error 2015-08-13 02:53:03 -07:00
Doug Coleman e3ddd337e0 compiler, alien: fix some duplication in ERROR: definitions. hope this doesnt trigger more failing builds than it fixed... 2015-08-12 13:58:38 -05:00
Doug Coleman e0d1b14e5c factor: don't need FROM: namespaces => set or namespaces:set anymore 2015-08-12 11:25:57 -05:00
Doug Coleman 46587f8457 factor: arch -> arch-name. fix breakage caused by other patch. 2015-08-12 11:08:24 -05:00
Doug Coleman 28dcd0667a factor: rename set to unordered-set. 2015-08-12 10:54:19 -05:00
Doug Coleman 330c7ba156 factor: Removing SLOT: nth/at/global in favor of using change: at for tuple slots named ``at`` and change-at for hashtables.
Redo many FROM: and QUALIFIED: and using lists.
2015-08-12 08:49:02 -05:00
Doug Coleman 00338f62f3 factor: put inline on same line as ; for experimentation 2015-08-10 12:55:27 -05:00
Doug Coleman 0bdc27053b compiler: oops, assoc-empty? vs empty?. undo harvest-values here. 2015-08-08 12:27:36 -05:00
Doug Coleman 76cb13ac52 basis: use harvest-values 2015-08-08 12:24:22 -05:00
Doug Coleman 43fb73fae6 factor: Rename I[ ]I to [I I]. Fix places where we do "string"token without whitespace. 2015-08-06 17:05:12 -05:00
John Benediktsson 136d793c6e compiler.tests: remove some tests that can't work now.
check-combination-effect raises an error at parse-time.
2015-08-05 18:01:16 -07:00
Björn Lindqvist 22b871d82e compiler.cfg.utilities: make it so block>cfg initializes spill-area-align 2015-07-29 13:01:24 +02:00
John Benediktsson 38afea84bf fix doc using. 2015-07-28 20:20:40 -07:00
John Benediktsson 4ded3c491c fix some help-lint errors. 2015-07-28 20:06:59 -07:00
Björn Lindqvist 8a731681bf compiler.cfg.*: tests against #1308 2015-07-28 17:58:29 -07:00
Björn Lindqvist a8c0a25d87 compiler.cfg.ssa.destruction.coalescing: refactor and maybe a fix for #1308
the eliminatable-copy? word is the fix. the previous code only checked
that the registers had the same register class, but you also need to
check that they dont have the same representation size. because a copy
from double-rep -> double-2-rep is not eliminatable
2015-07-28 17:58:29 -07:00
Björn Lindqvist b544c1b352 compiler.cfg.*: some extra unit tests for the compiler 2015-07-28 17:58:29 -07:00
Björn Lindqvist 820207c5b0 compiler.cfg.ssa.destruction.coalescing: simpler code for setting up the
initial leader-map and class-element-map
2015-07-28 17:58:28 -07:00
Björn Lindqvist 5e29aac0a6 Docs: various more compiler-related docs 2015-07-28 17:58:28 -07:00
Björn Lindqvist aca610813d compiler.cfg.representations.selection: use a union instead of a generic
to see if an insn is peephole-optimizable + test
2015-07-28 17:58:28 -07:00
Björn Lindqvist 44c9b2c8e8 compiler.tree.*: new docs 2015-07-28 17:58:28 -07:00
Björn Lindqvist 2c5f00d865 compiler.cfg.*: even more docs 2015-07-28 17:58:28 -07:00
Björn Lindqvist e095b54644 compiler.tree.escape-analysis.*: new doc files 2015-07-28 17:58:28 -07:00
Björn Lindqvist 06560b24a6 compiler.tree.escape-analysis.allocations: stub doc file from comments 2015-07-28 17:58:27 -07:00
Björn Lindqvist b4e4792cb6 compiler.cfg.*: a bunch of docs updates 2015-07-28 17:58:27 -07:00
Björn Lindqvist cdf9a8535b compiler.cfg.representations.selection: some initial docs from comments 2015-07-28 17:58:27 -07:00
Björn Lindqvist 31aae02916 compiler.cfg.linear-scan.live-intervals: simpler code for finding the
sync points in the cfg
2015-07-28 17:58:27 -07:00
Björn Lindqvist 78d5c0a743 compiler.cfg.instructions: ##read -> read-insn and ##write -> write-insn 2015-07-28 17:58:27 -07:00
Björn Lindqvist 81c7659360 compiler.cfg.instructions: rename ##allocation to allocation-insn,
because it's nicer if all instruction unions have the -insn suffix and
the ## prefix is reserved for tuples
2015-07-28 17:58:27 -07:00
Doug Coleman 1fcf96cada factor: remove """ string syntax for now. there are HEREDOC:, STRING:, escaping \", and something else soon. 2015-07-25 22:59:56 -07:00
John Benediktsson 9ec74563ba compiler.cfg: use "f [ or ] reduce" instead of "map [ ] any?" 2015-07-21 09:54:44 -07:00
Björn Lindqvist d24733e703 compiler.cfg.build-stack-frame: refactoring which removes the
frame-required? variable
2015-07-21 13:40:50 +02:00
Björn Lindqvist 80ea6b8997 compiler.*: fix the tests that broke because i removed the stack-frame variable 2015-07-21 13:40:49 +02:00
Björn Lindqvist eba939c0f2 compiler.cfg.stacks.map: this vocab is subsumed by
compiler.cfg.stacks.padding which works much better
2015-07-21 13:36:11 +02:00
Björn Lindqvist bc8525bf5b compiler.cfg.build-stack-frame: the frame-required? variable needs to be
reset so that stack frames aren't included in words that doesn't need them
2015-07-21 13:35:22 +02:00
Björn Lindqvist b5333ec7aa compiler.cfg.stack-frame: using cfg get stack-frame>> instead of the
stack-frame variable that pointed to the same instance
2015-07-21 13:35:22 +02:00
John Benediktsson 5eec781b40 use ``if*`` instead of ``dup [ ] [ drop ] if``. 2015-07-20 22:24:30 -07:00
Doug Coleman bcc78ab220 basis: whitespace. 2015-07-20 17:13:52 -07:00
John Benediktsson 3ea9f09f6a fix some sets:members. 2015-07-20 09:32:31 -07:00
Doug Coleman 2adeed9cb3 factor: rename classes:members to class-members so it doesn't conflict with sets:members. ugh. 2015-07-20 00:32:42 -07:00
Doug Coleman 618330b31e factor: rename system:vm -> vm-path to differentiate it from vm:vm (which is a STRUCT:) 2015-07-20 00:10:29 -07:00
Doug Coleman 1e22e9b814 factor: all FUNCTION: rename complete 2015-07-19 22:55:24 -07:00
Doug Coleman b3e8ecf738 factor: more function messups 2015-07-19 20:09:21 -07:00
Doug Coleman 6f6007570a factor: Fix rename issues. 2015-07-19 19:56:16 -07:00
John Benediktsson c25fb5f55e update some more MACRO: effects. 2015-07-19 11:42:46 -07:00
Doug Coleman 2c257f399c factor: Rename MACRO: and MACRO: to have quot as the output in stack effects. 2015-07-18 22:16:11 -07:00
John Benediktsson 8a3c5c2634 Fix some tests broken by optimized? rename. 2015-07-15 11:47:03 -07:00
John Benediktsson 4c2c8f133f vm: rename some primitives, and some cleanup.
* quot-compiled? => quotation-compiled?
* optimized? => word-optimized?
2015-07-15 11:13:52 -07:00
Doug Coleman 128c262429 compiler.cfg.value-numbering: tests need to have this loaded. 2015-07-06 22:44:36 -07:00
Doug Coleman 892c62e1dc factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test 2015-07-03 09:39:59 -07:00
Doug Coleman 40892c0302 tests: prefer ${ } instead of 1array 2015-07-02 14:56:14 -07:00
Doug Coleman 59f3b1ea57 Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
Needs a bit more work.

This reverts commit 7e54cc2824.
2015-07-02 13:47:06 -07:00
Doug Coleman 7e54cc2824 factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool! 2015-07-02 11:36:08 -07:00
Doug Coleman 999aa7c897 factor: clean up spaces in -tests files 2015-07-02 10:34:01 -07:00
Doug Coleman 352e5de16a core, basis, extra: Remove DOS line endings from files.
Remove whitespace from end of lines.
Add a newline to the end of each file.
2015-06-29 17:25:40 -07:00
Björn Lindqvist 95fa3eba19 compiler.tree.propagation.known-words: better way to assign the
"outputs" to the mod words + some more tests
2015-06-27 16:14:58 +02:00
Björn Lindqvist 0d02ff8e40 compiler.tree.propagation.*: new and fixed tests for the new propagation
behaviour for mod
2015-06-27 16:14:58 +02:00
Björn Lindqvist 2f835d3666 compiler.tree.propagation.*: implements downgrading to fixnum for the
mod word, maybe a first step in solving #224

factor_vm::primitive_bignum_mod is changed so that it outputs a fixnum
if the value is small enough. Then the compiler can take advantage of
knowing that expressions like [ >bignum 10 mod ] always result in a
fixnum [-9,9] and inline more arithmetic.
2015-06-27 16:14:58 +02:00
Björn Lindqvist 72fe466ac9 compiler.tree.propagation.known-words: more precise output class
assignment for all mod words

The compiler can better optimize a quotation like [ 20 fixnum-mod 55 + ]
if it knows fixnum-mod outputs a fixnum.
2015-06-27 16:14:57 +02:00
Doug Coleman 09e4606791 compiler.cfg.debugger: alien-invoke insn nodes were printing double quotes in the dot file output. If you would pprint a string, instead print that string so the double quotes are not present in the output. 2015-06-24 18:46:39 -07:00
John Benediktsson 16abe47b03 compiler.tree.propagation: fix tests for bit? inlining. 2015-06-17 20:52:05 -07:00
John Benediktsson 621b50a8e5 cpu: enable bit-test intrinsic for fixnum-bit?. 2015-06-17 19:11:10 -07:00
John Benediktsson 423b2afb91 compiler.cfg.linear-scan.allocation: fix docs for free-position. 2015-06-16 20:38:34 -07:00
Björn Lindqvist 3678f62508 x86.64: change the register order so that RBX is allocated before RCX 2015-06-16 18:28:32 -07:00
Björn Lindqvist 8c8605d11a compiler.cfg.linear-scan.*: more tests and docs for allocation and state 2015-06-16 18:28:32 -07:00
Björn Lindqvist 78fe8bf1dc compiler.cfg.linear-scan.*: dont use a hashtable here, it fixes register
allocation so it's always in the same order as machine-registers
2015-06-16 18:28:32 -07:00
John Benediktsson d4e3adca57 compiler.cfg.ssa.destruction.coalescing: lookup variable once not twice. 2015-06-15 09:11:16 -07:00
Björn Lindqvist aeaed40d9c compiler.cfg.ssa.destruction.coalescing: new vocab to refactor and
simplify the prepare-insn code in compiler.cfg.ssa.destruction
2015-06-15 12:28:31 +02:00
Björn Lindqvist c5ec490f39 compiler.cfg.ssa.destruction: the natural-sort was malplaced, only sort
inputs from ##phi, should fix remainder of #1345
2015-06-15 12:28:30 +02:00
Björn Lindqvist c0645ecafe compiler.cfg.linear-scan.*: fix help-lint errors 2015-06-14 16:44:37 +02:00
Björn Lindqvist 5ad35fabd1 compiler.cfg.*: lots of more compiler docs 2015-06-14 16:44:37 +02:00
Björn Lindqvist 418438ab13 compiler.cfg.linear-scan.*: change compute-live-intervals so that it
returns only one sequence, it makes some words a little simpler
2015-06-14 16:44:37 +02:00
Björn Lindqvist f37ab939f0 compiler.*: more compiler docs 2015-06-14 16:44:37 +02:00
Björn Lindqvist 91118ae5df compiler.cfg.linear-scan.allocation.state: fix #1345 by adding vreg to
the heap key

By having { start end vreg } as the key in the min-heap ordering is
guaranteed even if two intervals share the same start and end.
2015-06-14 16:44:37 +02:00
Björn Lindqvist 9dbb3e9171 compiler.codegen.gc-maps: simplies largest-spill-slot and refactors serialize-gc-maps 2015-06-14 16:44:37 +02:00
Björn Lindqvist ca2d64af68 compiler.cfg.ssa.destruction: try and sort the vreg pairs before
elimination, this way you always get the same leader info
2015-06-14 16:44:36 +02:00
Björn Lindqvist be342e8638 compiler.cfg.ssa.destruction: refactors maybe/must-eliminate-copy into
one try-eliminate-copy
2015-06-14 16:44:36 +02:00
Björn Lindqvist 98ae0eb02e compiler.cfg.ssa.destruction: small refactoring which removes
class-elements and maybe-eliminate-copy-later
2015-06-14 16:44:36 +02:00
Björn Lindqvist ceff23339c compiler.cfg.ssa.destruction: a bunch of new docs 2015-06-14 16:44:36 +02:00
Björn Lindqvist b4f881a9be compiler.cfg.ssa.destruction.tests: a bunch of new tests 2015-06-14 16:44:36 +02:00
John Benediktsson dfa763434e Fix tests broken by word hashcode change. 2015-06-09 20:37:55 -07:00
John Benediktsson d68175f48f Some more general fixes for recent refactors. 2015-06-08 19:15:29 -07:00
Doug Coleman 6e60c811ac core: Rename create to create-word, create-in to create-word-in. 2015-06-08 12:47:35 -07:00
Doug Coleman fa2bf33659 compiler.tree: renaming is hard. cleanup -> cleanup-tree 2015-06-05 23:18:43 -07:00
Doug Coleman 16094d283b compiler.tree.debugger: more "cleanup" 2015-06-05 23:04:05 -07:00
Doug Coleman a0cb7b4fd8 compiler.tree.cleanup: Fix docs 2015-06-05 21:22:50 -07:00
Doug Coleman 808342076d compiler: rename cleanup to cleanup-tree, cleanup* to cleanup-tree* 2015-06-05 21:08:18 -07:00
John Benediktsson a66bed77b3 compiler.cfg.stacks.clearing: fix help-lint. 2015-05-18 10:02:35 -07:00
John Benediktsson c7ea419874 compiler.cfg.stacks.clearing: fix tests. 2015-05-17 09:32:44 -07:00