Commit Graph

2018 Commits (cfe4fec574293cc97654ad5d12cb94137ee8e98c)

Author SHA1 Message Date
Björn Lindqvist cfe4fec574 compiler.cfg.linear-scan.*: make it so cfg is given as an argument to next-spill-slot 2015-11-04 07:53:19 +01:00
Björn Lindqvist 4890239c3c compiler.tree.propagation.tests: #1370 specific test 2015-09-22 09:03:16 +02:00
Björn Lindqvist 804348287c Docs: fix a bunch of help-lint warnings 2015-09-22 08:52:59 +02:00
Björn Lindqvist c5b92cedcb compiler.*: even more compiler docs 2015-09-22 08:52:59 +02:00
Björn Lindqvist 4db173cadb compiler.*: random doc and tests updates 2015-09-22 08:52:59 +02:00
Björn Lindqvist 3e485652fe compiler.tree.propagation.slots: looks like you can do without the
constructor-output-class word
2015-09-22 08:52:59 +02:00
Björn Lindqvist 09ad5bd617 compiler.tree.propagation.slots: docs & tests for the vocab 2015-09-22 08:52:59 +02:00
Björn Lindqvist 4ee88bdc3d compiler.tree.propagation.info: better logic for comparing value-infos
Now the slots of the value infos only matter if the class of the first
info is at least as large as the class of the second info
2015-09-22 08:52:37 +02:00
Björn Lindqvist bc0cdff2c6 compiler.tree.propagation.info: fixed value-info<= so that it handles
slots correctly

if a slot is defined for a value-info, then it can't be <= a value-info
without that slot defined
2015-09-22 08:52:37 +02:00
Björn Lindqvist 86d35982ac compiler.cfg.linear-scan.allocation.splitting: better def for split-uses
it seems to be just as fast as the wordier one
2015-09-22 08:52:37 +02:00
Björn Lindqvist ea67379751 compiler.tree.*: new tests 2015-09-22 08:52:37 +02:00
Björn Lindqvist b9ce4910af compiler.tree.*: docs 2015-09-22 08:52:36 +02:00
Björn Lindqvist aaef9af863 compiler.cfg.*: random doc updates 2015-09-22 08:51:46 +02:00
Björn Lindqvist a1153e6de1 compiler.tree.propagation.info: more docs and tests for the vocab 2015-09-22 08:51:46 +02:00
Björn Lindqvist bb8b77419f compiler.tree.propagation.nodes: the loop-nesting variable appears unused 2015-09-22 08:51:05 +02:00
Björn Lindqvist 44092bf78d compiler.tree.propagation.*: better to use 2array than the "cuter" /\ word 2015-09-22 08:51:05 +02:00
Björn Lindqvist 9369f8216f compiler.tree.propagation.constraints: docs for this vocab 2015-09-22 08:51:04 +02:00
Björn Lindqvist 508ddc5c0b compiler.cfg.linear-scan.ranges: merge adjacent ranges when adding them
this way, the number of live interval ranges you have to deal with is
much smaller
2015-09-22 08:51:04 +02:00
Björn Lindqvist 89e261f673 compiler.cfg.linear-scan.ranges: remove the live-range definition and
use integer pairs instead

so instead of ranges being a sequence of live-ranges it is now a
sequence of integer pairs instead. That makes the
compiler.cfg.linear-scan.ranges simpler and easier to generalize
2015-09-22 08:51:04 +02:00
Björn Lindqvist 2943e7f246 compiler.cfg.linear-scan.ranges: new word ranges-endpoints and remove relevant-ranges 2015-09-22 08:51:04 +02:00
Björn Lindqvist 8c781639ed compiler.cfg.linear-scan.ranges: move more range-related features into
this vocab
2015-09-22 08:51:04 +02:00
Björn Lindqvist fb45bc278f compiler.cfg.linear-scan.live-intervals: the reg-class slot can be
removed

it's always the same as vreg>> rep-of reg-class-of so no need to store
that data twice
2015-09-22 08:51:04 +02:00
Björn Lindqvist 68c6654763 compiler.cfg.linear-scan.*: move words for splitting and intersecting ranges to the compiler.cfg.linear-scan.ranges vocab 2015-09-22 08:51:04 +02:00
Björn Lindqvist b8d47ed845 compiler.cfg.linear-scan.ranges: new vocab to contain all the range
related stuff from live intervals
2015-09-22 08:51:03 +02:00
Björn Lindqvist d0aae5cc20 compiler.cfg.linearization: number-blocks can set the number>> accessor
instead of using the numbers dynamic variable
2015-09-22 08:51:03 +02:00
John Benediktsson e477f6996f Fix comments to be ! not #!. 2015-09-08 16:15:10 -07:00
Björn Lindqvist bc7f9ee669 VM: always use undecorated names when loading ffi functions
For win32, Factor tries four different function names when loading
stdcall and fastcall functions, in case decorated names are used in the
dll. It seems to not be necessary because a dll meant for 3rd party use
will always export undecorated
names (http://blogs.msdn.com/b/oldnewthing/archive/2004/01/12/57833.aspx).
2015-09-02 21:54:41 +02:00
Björn Lindqvist 9725169ca7 compiler.cfg.intrinsics.misc: use the vm-special-object-offset word 2015-09-02 21:54:36 +02:00
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