Slava Pestov
|
9fb0dcd9bd
|
alien: need to differentiate between the type of the result before and after boxing; the former is used by propagation for #alien-invoke nodes and the latter is used by specialized arrays. This fixes FFI unit test failures
|
2009-08-10 16:17:33 -05:00 |
Slava Pestov
|
7e35723db0
|
compiler.tree.propagation: be more careful with intervals, ensuring that the inferred interval of a value is a subset of the value class's interval. This improves accuracy, for example [ >fixnum 1 + >fixnum most-positive-fixnum <= ] constant-folds to true
|
2009-08-10 01:16:49 -05:00 |
Slava Pestov
|
50e366bbe1
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-09 16:31:03 -05:00 |
Slava Pestov
|
8a9c15ab0b
|
compiler.tree.escape-analysis: if the output of an #introduce node has an immutable tuple class type declaration, and it is not passed to any subroutine calls, or returned from the word, then unbox it. This speeds up vector arithmetic words on specialized arrays, because the specialized array is unboxed up-front, eliminating an indirection on every loop iteration
|
2009-08-09 16:29:21 -05:00 |
Slava Pestov
|
d19c403fee
|
alien.structs: struct-type now has a class slot; fix specialized complex-float/double arrays
|
2009-08-09 16:10:11 -05:00 |
Slava Pestov
|
d0fe741746
|
tools.deploy.shaker: strip out specialized vector words
|
2009-08-09 04:48:44 -05:00 |
Slava Pestov
|
cc5476c823
|
_gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length
|
2009-08-09 03:08:13 -05:00 |
Slava Pestov
|
1cb0f3370b
|
math.vectors.specialization: first attempt at some call site splitting for vector ops. Specialized array types generate customized variants of all vector words, if input types are known at compile time, a call to the specialized version is inserted
|
2009-08-09 03:07:33 -05:00 |
Slava Pestov
|
687454878a
|
compiler.cfg.linearization: change order to fit older unit tests
|
2009-08-08 23:06:57 -05:00 |
Slava Pestov
|
83e0c60573
|
tools.test: flush the output stream
|
2009-08-08 23:03:53 -05:00 |
Slava Pestov
|
e400d80d8b
|
More accurate interval inference for mod, rem, and propagation can now infer intervals in the case where a value might be f. so, [ [ 127 bitand ] [ drop f ] if dup [ 0 >= ] [ not ] if ] now constant-folds down to 't'!
|
2009-08-08 23:03:45 -05:00 |
Slava Pestov
|
61ea749bb6
|
More accurate interval-mod and interval-rem
|
2009-08-08 22:01:12 -05:00 |
Slava Pestov
|
24a50c8006
|
compiler.cfg.two-operand: sometimes we can eliminate a copy in the x = y <op> y case
|
2009-08-08 20:03:42 -05:00 |
Slava Pestov
|
55acddef3f
|
compiler.cfg.representation: OK to unbox output of ##load-reference globally
|
2009-08-08 20:03:13 -05:00 |
Slava Pestov
|
d0c393aa60
|
compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.
|
2009-08-08 20:02:56 -05:00 |
Slava Pestov
|
11dc0a23a8
|
compiler.cfg.ssa.liveness: fix tests
|
2009-08-08 16:15:45 -05:00 |
Slava Pestov
|
1bf8a0cac7
|
compiler.cfg.representations: emit-conversion should not be private since CSSA construction uses it
|
2009-08-08 04:13:30 -05:00 |
Slava Pestov
|
4b7ba38aab
|
compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case
|
2009-08-08 04:02:18 -05:00 |
Slava Pestov
|
e21ca289c3
|
compiler.cfg.representations: new pass to make global unboxing decisions, relies on new compiler.cfg.loop-detection pass for loop nesting information
|
2009-08-08 00:24:46 -05:00 |
Slava Pestov
|
b85d842ca6
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-07 17:45:09 -05:00 |
Slava Pestov
|
725280d424
|
Split off the notion of a register representation from a register class
|
2009-08-07 17:44:50 -05:00 |
Slava Pestov
|
fb80f21d75
|
help.tutorial: minor tweaks
|
2009-08-07 14:54:51 -05:00 |
Slava Pestov
|
2e73038043
|
Revert basis UI gadget changes
|
2009-08-06 16:46:48 -05:00 |
Sam Anklesaria
|
6f607ed5a9
|
fixed ui.gadgets.tables multi-selection bug
|
2009-08-06 16:31:35 -05:00 |
Sam Anklesaria
|
827d30a95b
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-06 15:40:57 -05:00 |
Sam Anklesaria
|
a621e381e3
|
merged control extras into basis
|
2009-08-06 15:19:28 -05:00 |
Slava Pestov
|
ef97fdf0c5
|
ui.gadgets.tables: some band-aid fixes
|
2009-08-06 01:28:30 -05:00 |
Slava Pestov
|
7734bd9bcd
|
vocabs.hierarchy: fix load-all
|
2009-08-05 23:08:14 -05:00 |
Slava Pestov
|
fde421a880
|
Merge branch 'bogie'
|
2009-08-05 23:04:49 -05:00 |
Slava Pestov
|
b4f97dc632
|
vocabs.hierarchy: load word now tries to load the vocab named by the prefix itself
|
2009-08-05 23:04:34 -05:00 |
Slava Pestov
|
926797d485
|
ui.gadgets.tables: more fixes
|
2009-08-05 22:56:08 -05:00 |
Slava Pestov
|
dba67b1815
|
ui.gadgets.tables: little cleanup
|
2009-08-05 22:45:56 -05:00 |
Slava Pestov
|
805b0b2430
|
Merge branch 'master' of git://github.com/bogiebro/factor into bogie
|
2009-08-05 22:20:40 -05:00 |
Sam Anklesaria
|
a352e7411e
|
reindented ui.gadgets.tables
|
2009-08-05 21:29:48 -05:00 |
Slava Pestov
|
370f4c081d
|
compiler.cfg: convert code into two-operand form before SSA destruction; SSA destruction now operates on a relaxed SSA form where multiple defs of the same vreg are allowed, but only within a single basic block. This makes linear scan's coalescing redundant, allowing it to be removed completely
|
2009-08-05 18:57:46 -05:00 |
Slava Pestov
|
eb3bd1edea
|
cpu.x86.assembler: make some words private
|
2009-08-05 18:30:42 -05:00 |
Sam Anklesaria
|
e426bc4be8
|
moved patterns to persistency for new db prep
|
2009-08-05 16:45:22 -05:00 |
Sam Anklesaria
|
0c4b9a0d58
|
simplified ui.gadgets.tables
|
2009-08-05 16:24:56 -05:00 |
Slava Pestov
|
b1a85133dc
|
http.server.rewrite: fix typo in docs
|
2009-08-05 03:35:31 -05:00 |
Slava Pestov
|
97ec3ea1b4
|
compiler.graphviz: add high-level IR call graph rendering
|
2009-08-05 03:33:06 -05:00 |
Slava Pestov
|
fb03a93763
|
compiler.tree.recursive: have to check tail call flag of call tree edges too
|
2009-08-05 02:14:49 -05:00 |
Slava Pestov
|
50fd4f17c3
|
Oops
|
2009-08-05 01:15:06 -05:00 |
Slava Pestov
|
eb0ecb68cd
|
ui.tools.debugger: (:edit) got renamed to edit-error
|
2009-08-04 21:14:43 -05:00 |
Slava Pestov
|
3b2fd98e7c
|
Refactor source-file-errors a little bit to remove some code duplication, and so that clicking 'Edit' in error list tool works for parse errors in unit tests
|
2009-08-04 21:01:21 -05:00 |
Slava Pestov
|
c3d60e5899
|
compiler.tree.recursive: more accurate loop detection
|
2009-08-04 19:18:40 -05:00 |
Slava Pestov
|
eed4f4dcfc
|
compiler.tree.recursive: add some more more loop detection tests
|
2009-08-04 16:23:14 -05:00 |
Sam Anklesaria
|
70428241bd
|
textmate bundle scaffolding
|
2009-08-04 16:05:37 -05:00 |
Slava Pestov
|
9aba341bdb
|
furnace.sessions: fix tests, requests must have a method set now
|
2009-08-03 21:26:06 -05:00 |
Sam Anklesaria
|
1145f49a47
|
Merge branch 'master' of git://factorcode.org/git/factor
|
2009-08-03 20:09:05 -05:00 |
Doug Coleman
|
5d19f868fb
|
fix using list
|
2009-08-03 17:32:56 -05:00 |