Commit Graph

16464 Commits (0df8aadce2c595ab0c3c9efb5215c42628bb76b2)

Author SHA1 Message Date
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
Joe Groff 7243d097cb pools docs, better implementation 2009-08-09 15:22:09 -04:00
Joe Groff e0624f37b3 pools vocab 2009-08-09 12:52:38 -04:00
Slava Pestov d0fe741746 tools.deploy.shaker: strip out specialized vector words 2009-08-09 04:48:44 -05:00
Slava Pestov 057a2d7b5c Rename some files in misc/Factor.tmbundle since Windows doesn't allow : in file names 2009-08-09 04:47:37 -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 926c46841b classes.intersection: make flatten-class more accurate. It is still not perfect, but it fixes the case where a generic word has a method on a tuple class, and another method on an intersection of a mixin with another tuple classes 2009-08-07 22:30:57 -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
Joe Groff fcfe16d8d0 make simplify-callable prettyprinting an optional load in extra 2009-08-07 16:19:46 -04:00
Slava Pestov fb80f21d75 help.tutorial: minor tweaks 2009-08-07 14:54:51 -05:00
Sam Anklesaria cdd311b3d1 removed basis dependent vocabs 2009-08-06 21:01:51 -05:00
Slava Pestov b06fe403c8 file-trees: load fix 2009-08-06 16:49:02 -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
Joe Groff 556904cf57 simplify-callable docs 2009-08-06 16:21:53 -04:00
Sam Anklesaria df371bd8bb magic scrollers hide sliders when not needed 2009-08-06 15:20:10 -05:00
Sam Anklesaria a621e381e3 merged control extras into basis 2009-08-06 15:19:28 -05:00
Joe Groff 0a4d926212 simplify dip/call/curry/compose in callable objects before prettyprinting 2009-08-06 16:16:17 -04: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 311774cb68 modules.rpc-server: don't start server by default 2009-08-05 22:56:19 -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
Sam Anklesaria 9d3fe3fd9a removed demo from poppers 2009-08-05 20:04:14 -05:00
Sam Anklesaria d65be18dce ui.gadgets.poppers: new ui gadget 2009-08-05 20:01:50 -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