Commit Graph

6074 Commits (e837a5cea8db17cdb6601466d1e858b62d051171)

Author SHA1 Message Date
Doug Coleman 761ed6356b fix HEREDOC:s, add DELIMITED: which is like a HEREDOC: where the terminator can appear anywhere 2009-08-18 03:44:54 -05:00
Slava Pestov d7594c3381 compiler: inline singleton predicates, and optimize predicate engines, reduces terrain demo deployed size by ~20kb 2009-08-17 23:59:24 -05:00
Slava Pestov 04397a63c7 windows.ole32: don't pull in debugger, reduces terrain demo deployed size by ~30kb 2009-08-17 23:58:44 -05:00
Slava Pestov 9839659dfd Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 22:38:21 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Slava Pestov 3047d4a451 compiler.tree.propagation: remove method inlining heuristic 2009-08-17 22:29:05 -05:00
Joe Groff 24d9a8635c Merge branch 'struct-classes' of git://factorcode.org/git/factor 2009-08-17 21:26:19 -05:00
Doug Coleman aa39423509 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 20:47:40 -05:00
Doug Coleman 7234b4bb08 fix multiline docs 2009-08-17 20:47:27 -05:00
Slava Pestov 630ffb8ae6 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 20:12:33 -05:00
Slava Pestov 4fac281b1a rpn: new demo, simple RPN calculator that doesn't use Factor's evaluator reflectively 2009-08-17 20:12:05 -05:00
Doug Coleman 9a9be2405b Merge git://github.com/mncharity/factor into mncharity 2009-08-17 19:00:41 -05:00
Doug Coleman f998a81a43 trivial factoring 2009-08-17 18:59:03 -05:00
Mitchell N Charity 747f2ab21c multiline: add HEREDOC: , slightly refactoring privates 2009-08-17 17:05:14 -04:00
Slava Pestov bf57d78b09 compiler.tree.modular-arithmetic: >fixnum elimination and value info annotations were too aggressive 2009-08-17 01:20:25 -05:00
Slava Pestov 5297be3e19 compiler.tree.modular-arithmetic: stronger optimization handles > 1 usages case as well as values defined and used in loops. Eliminates 5 out of 8 >fixnum calls in benchmark.yuv-to-rgb 2009-08-15 18:42:41 -05:00
Daniel Ehrenberg 478b960560 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 20:11:54 -05:00
Daniel Ehrenberg 3cec74867d Improving write barrier elimination; change to compiler.cfg.utilities to support this 2009-08-14 19:41:41 -05:00
Doug Coleman 7c92ab1ea5 move if-zero etc to math, remove 1-/1+ from math 2009-08-14 14:27:23 -05:00
Joe Groff 6fe7fe72c7 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 10:55:05 -04:00
Daniel Ehrenberg 8197d9356b Write barriers are hoisted out of loops when their target is slot-available 2009-08-13 20:26:44 -05:00
Doug Coleman 2ed4425b7a Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/calendar/calendar.factor
2009-08-13 19:40:02 -05:00
Doug Coleman 3f3d57032b Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -05:00
Daniel Ehrenberg 5a3e350490 Global write barrier elimination tracks newly allocated objects 2009-08-13 15:18:47 -05:00
Joe Groff a2569ea50b make direct-*-arrays prettyprint 2009-08-13 12:05:46 -04:00
Doug Coleman 4cca19b528 remove duplicate defintion of unless-zero from calendar 2009-08-13 00:48:50 -05:00
Daniel Ehrenberg ad772cd261 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-12 23:56:05 -05:00
Daniel Ehrenberg d35e1eb76c Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis 2009-08-12 23:52:29 -05:00
Joe Groff 287207df72 fix boa undo to work with structs 2009-08-12 16:09:25 -04:00
Joe Groff 875284f8ab S{ } syntax for structs 2009-08-12 15:59:33 -04:00
Joe Groff 25c3434892 pprint structs with tuple syntax 2009-08-12 13:16:43 -04:00
Slava Pestov 0df4436711 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-12 03:26:13 -05:00
Slava Pestov 4ecf5a904a More accurate wrap-interval in compiler.tree.propagation.info fixes test regression; constructing an interval with endpoints at infinity now outputs full-interval 2009-08-12 03:25:53 -05:00
Doug Coleman aabfc614a1 fix build errors 2009-08-11 23:07:13 -05:00
Doug Coleman 379c17a284 Throw typed errors instead of strings for calling/executing non-callables 2009-08-11 22:40:29 -05:00
Doug Coleman 14e8abd563 even better error handling for division by zero 2009-08-11 22:30:16 -05:00
Daniel Ehrenberg 1a7ab59f56 Making write barrier elimination global 2009-08-11 21:21:21 -05:00
Doug Coleman 415d89e821 use unless-empty 2009-08-11 21:18:43 -05:00
Doug Coleman 02becc26fc add docs for if-zero etc, add docs for 10^ 2009-08-11 18:45:01 -05:00
Doug Coleman c12d6fe543 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-11 18:16:30 -05:00
Doug Coleman 4a3d63e00a use if-zero in a few more places 2009-08-11 18:15:53 -05:00
Doug Coleman 4fef246ca4 add 10^ to math.functions and update usages 2009-08-11 18:00:24 -05:00
Slava Pestov 7bfbb0c5ac math.intervals: fix interval-rem 2009-08-11 16:49:28 -05:00
Slava Pestov 422dd24bad alien.complex: fix tests 2009-08-11 14:07:33 -05:00
Philipp Brüschweiler 26859a45eb various doc fixes 2009-08-11 16:58:47 +02:00
Brad Christensen f8405e9c55 A number of documentation fixes.
* Short-circuit combinators now show correct stack effect for quots
 * Groups and Clumps unchecked examples corrected, made runnable in listener
 * Class operations had duplicate link to class-types
 * Protocol slots readability fixed
 * Tuple word property for "tuple-layout" corrected to "layout"
 * cond>quot sentence started in lowercase
 * Method precedence code example missing stack effect for GENERIC:, M: integer explain changed to detail an integer
 * Motivation for default streams readability
 * Default input and output streams duplicate readln link removed from output stream words section
 * Looping combinators do description clarified
 * Make philosophy missing space
 * Linear order protocol duplicate after? link removed
 * Parsing words readability fix
 * Copied note regarding with-compilation-unit from define to define-declared and define-inline
2009-08-10 23:34:25 -07:00
Slava Pestov c473f59554 Merge branch 'master' of git://github.com/Blei/factor 2009-08-10 16:18:19 -05:00
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
Philipp Brüschweiler 230061783a misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644 2009-08-10 21:33:07 +02: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
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
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 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 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
Slava Pestov be0d134ebe Merge branch 'master' of git://factorcode.org/git/factor 2009-08-03 15:00:21 -05:00
Slava Pestov 841fc3a89a http.server.rewrite generalizes furnace.actions rest slot, so mention this in the docs 2009-08-03 15:00:05 -05:00
Slava Pestov 181d9ca07d http.server.rewrite: facility for making URLs prettier, and dynamic dispatching on the first part of a host name. Doug go nuts 2009-08-03 14:58:56 -05:00
Slava Pestov 3857006b71 Move furnace.actions:{param,params} and furnace.utilities:request-params to http.server 2009-08-03 14:58:18 -05:00
Slava Pestov e5114aa510 bootstrap.compiler.timing: fix load error 2009-08-03 13:34:28 -05:00
Slava Pestov b49e4c9c9b Merge branch 'master' of git://factorcode.org/git/factor 2009-08-03 10:31:27 -05:00
Slava Pestov d286a7f426 compiler.cfg.critical-edges: no longer neededed 2009-08-03 10:31:00 -05:00
Sam Anklesaria 07b34c6d0a Merge branch 'master' of git://factorcode.org/git/factor 2009-08-03 10:13:27 -05:00
Sam Anklesaria a211054962 textmate bundle work- stopped by modules bug 2009-08-03 10:12:20 -05:00
Slava Pestov d20d335447 compiler.cfg.stacks: more accurate deconcatenatization inserts fewer partially redundant ##peeks. 11% improvement on benchmark.beust2, 2% reduction in ##peek and ##replace instructions inserted 2009-08-03 07:08:28 -05:00
Slava Pestov 720bfe378f compiler.cfg.stacks.uninitialized: use bitand instead of min 2009-08-03 06:03:38 -05:00
Slava Pestov 89305e0bcb Merge branch 'master' of git://factorcode.org/git/factor 2009-08-03 01:02:14 -05:00
Slava Pestov 30fde00570 help.html: fix vocab help generation 2009-08-03 01:02:00 -05:00
Joe Groff 63e5b0d6d8 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-02 23:16:52 -05:00
Joe Groff a2fe9f1952 [ [ ... ] bi@ <=> ] sort => [ ... ] sort-with 2009-08-02 20:13:59 -05:00
Joe Groff 7c5ef08aab [ [ ... ] compare ] sort => [ ... ] sort-with 2009-08-02 20:09:23 -05:00
Slava Pestov dac7edd2ab compiler.cfg.def-use: remove compute-def-use word, passes have to call compute-defs or compute-uses now; compiler.cfg.ssa.liveness: don't compute dominance and def-use first since destruction does already 2009-08-02 19:12:32 -05:00
Slava Pestov df6c87d350 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-02 18:46:27 -05:00
Slava Pestov 32d9102feb Revert "SSA destruction uses new SSA liveness checking"
This reverts commit 98c7de8410.
2009-08-02 18:41:31 -05:00
Slava Pestov a15b20a671 Revert "compiler.cfg.liveness.ssa: remove"
This reverts commit 6144fee101.
2009-08-02 18:41:16 -05:00
Daniel Ehrenberg 665b3921d1 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-02 18:25:37 -04:00
Daniel Ehrenberg f7a53811c1 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:

	basis/compiler/cfg/ssa/liveness/liveness-tests.factor
2009-08-02 18:23:49 -04:00
Slava Pestov 634e1dd525 compiler.cfg.liveness.ssa: remove 2009-08-02 17:19:01 -05:00
Slava Pestov 16a7ba35d2 Merge branch 'master' of git://github.com/alaricsp/factor 2009-08-02 17:15:26 -05:00
Daniel Ehrenberg 765efc1a66 Removing phi-outs set in SSA liveness checking 2009-08-02 18:15:18 -04:00
Slava Pestov 777bda70dc Merge branch 'master' of git://factorcode.org/git/factor 2009-08-02 17:07:06 -05:00
Slava Pestov 8a8ebcb908 compiler.cfg.ssa.liveness: fix unit tests 2009-08-02 17:06:35 -05:00
Daniel Ehrenberg 3b78d03e2a minor SSA liveness code reorganization 2009-08-02 18:05:51 -04:00
Daniel Ehrenberg cf7ab59fb7 SSA destruction uses new SSA liveness checking 2009-08-02 18:04:45 -04:00
Daniel Ehrenberg d349cc565a def-use puts phi uses in respective predecessors 2009-08-02 18:04:07 -04:00
Alaric Snell-Pym 8dacd82707 FNV1 and FNV1a hashes implemented for 32, 64, 128, 256, 512, and 1024 bit widths. 2009-08-02 18:16:55 +01:00
Slava Pestov 73e7ead209 compiler.cfg.ssa.destruction: add optimization from old destruction pass: don't run on CFGs that have no phi instructions 2009-08-02 10:57:27 -05:00
Slava Pestov ba55633b19 compiler.cfg.ssa.interference: cleanup 2009-08-02 10:35:02 -05:00
Slava Pestov 82c1106945 compiler.cfg.ssa.destruction: new implementation: simpler and more correct 2009-08-02 10:26:52 -05:00
Slava Pestov c1c8424605 Compiler speedups 2009-08-02 09:16:21 -05:00
Slava Pestov 8aa41672ca compiler.cfg.ssa.destruction.copies: factor out add-instructions combinator into compiler.cfg.utilities 2009-08-02 08:20:50 -05:00
Slava Pestov cff5976a0d Move compiler.cfg.ssa.destruction.interference to compiler.cfg.ssa.interference 2009-08-02 08:15:36 -05:00
Slava Pestov 87e13db946 compiler.cfg.ssa.destruction.interference: fix a bug and add unit tests 2009-08-02 08:11:30 -05:00
Slava Pestov 7ec288b013 compiler.cfg.debugger: fix load error 2009-08-02 08:11:04 -05:00
Slava Pestov b5a978d4e5 compiler.cfg.ssa.destruction: add some unit tests 2009-08-02 06:17:44 -05:00
Slava Pestov c61b729125 compiler.cfg.critical-edges: update ##phi nodes 2009-08-02 06:17:22 -05:00
Slava Pestov 01f51a96cd compiler.cfg.utilities: add each-phi combinator to iterate over all ##phi instructions in a basic block 2009-08-02 06:16:58 -05:00
Slava Pestov 21489ce85e compiler tests: add test case for coalescing bug 2009-08-02 03:49:54 -05:00
Slava Pestov e1c7f7394a compiler.cfg: clean up unit tests using some new utilities 2009-08-02 03:49:25 -05:00
Slava Pestov 9bde92220b compiler.cfg.two-operand: if last instruction in a basic block is an overflowing arithmetic op of the form x = y op x, we now convert it correctly. This fixes compiler regression with benchmark.dawes after recent coalescing changes 2009-08-01 23:50:47 -05:00
Slava Pestov e01fc93812 compiler.tree.propagation.call-effect: fix case where quotation inlining could enter an infinite loop: [ dup call( quot -- ) ] dup call( quot -- ) etc 2009-08-01 23:34:14 -05:00
Slava Pestov 1ef9cd27d3 compiler.cfg.copy-prop: eliminate phi nodes that have the same inputs as a previous phi node in the basic block 2009-08-01 22:33:27 -05:00
Slava Pestov 05b7bb0079 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:22:51 -05:00
Slava Pestov 20ec574965 compiler.cfg.ssa.destruction: fix bug in trivial-interference heuristic, and type error in code path that didn't run before 2009-08-01 20:22:31 -05:00
Daniel Ehrenberg 0838beed1e Merge branch 'master' of git://factorcode.org/git/factor 2009-08-01 20:33:41 -04:00
Slava Pestov 76368cae9b compiler.cfg.liveness.ssa: fix bad bug discovered by littledan 2009-08-01 18:54:24 -05:00
Slava Pestov 2d719534cf compiler.cfg.stacks: kill set now includes all locations eliminated as a result of stack height decrease; reduces number of ##replace instructions generated by 2% 2009-08-01 06:12:43 -05:00
Slava Pestov 61fe034e3e cpu.ppc: put spill slots and GC roots in stack frame where subroutine calls can't clobber them 2009-07-31 23:47:07 -05:00
Slava Pestov 7c43f71c6d compiler: Oops, typos in unit tests 2009-07-31 22:33:02 -05:00
Slava Pestov 1993274d01 alien.libraries: add-library should now reload the library properly, instead of just leaking DLL handles 2009-07-31 19:46:18 -05:00
Slava Pestov d515715b0c compiler.cfg.ssa.destruction: fix bug in renaming triggered by sequence-parser:take-sequence 2009-07-31 18:34:15 -05:00
Slava Pestov 9a80fdb81b Merge branch 'master' of git://factorcode.org/git/factor 2009-07-31 17:59:00 -05:00
Slava Pestov 957a5b7b9b cpu.ppc: fix small typos 2009-07-31 17:57:15 -05:00
Doug Coleman 3258f9c4ef fix using list on win64 2009-07-31 16:27:18 -05:00
Sam Anklesaria 24e5d416a7 added various author files 2009-07-31 11:10:14 -05:00
Slava Pestov dd2dc2bb24 cpu.ppc: Updating PowerPC backend for codegen changes over the last two months: new shift intrinsics added, fixnum overflow intrinsics are now treated like conditionals, GC checks are more complex and have a different API 2009-07-30 21:44:22 -05:00
Slava Pestov 45770c6250 Move a bunch of GC check generation logic to platform-independent side 2009-07-30 21:28:27 -05:00
Slava Pestov 47920a7a0c Passing -profile-compiler switch to bootstrap collects timing information from optimizer passes 2009-07-30 21:27:52 -05:00
Slava Pestov b43c8b40ac Merge branch 'master' of git://factorcode.org/git/factor 2009-07-30 19:11:02 -05:00
Daniel Ehrenberg 8134d775a8 Faster SSA liveness testing 2009-07-30 15:23:47 -04:00
Joe Groff b6ddcafcbd Merge branch 'master' of git://factorcode.org/git/factor 2009-07-30 11:05:36 -05:00
Joe Groff 455956b16c add additional SSE2 packed integer operations 2009-07-30 11:05:12 -05:00
Slava Pestov be363d1a5b compiler.cfg: Get inline GC checks working again, using a dataflow analysis to compute uninitialized stack locations in compiler.cfg.stacks.uninitialized. Re-enable intrinsics which use inline allocation 2009-07-30 09:19:44 -05:00
Slava Pestov cd7a1d6c58 Oopsie 2009-07-30 08:27:52 -05:00
Slava Pestov d71e2f9577 cpu.x86: Fix shuffle bug. Shuffling bugs occurring in code that runs before optimizer/stack checker is online are only caught at runtime during bootstrap, what a pain 2009-07-30 05:12:40 -05:00
Slava Pestov d81dec5d45 cpu.x86: fix a bug in small-register logic on 32-bit. Also, on 32-bit, we don't need to do any special register shuffling to work with 16-bit operands since all registers have 16-bit variants. So now only 8-bit operands on x86-32 require special treatment 2009-07-30 05:04:46 -05:00
Slava Pestov e1caaca6df bootstrap.compiler: compile a few more words early, for a big bootstrap speed boost 2009-07-30 02:45:29 -05:00
Slava Pestov a9977d7c79 cpu.x86: update non-optimizing compiler backends for assembler vocab split 2009-07-30 02:22:37 -05:00
Slava Pestov 791fbe4003 compiler.cfg.linear-scan: fix case where a register can be made available for only a part of a live interval's lifetime, but there are no more usages after the split location. This case never came up until global stack analysis, at which point it started to be exercised on x86-32 2009-07-30 02:13:30 -05:00
Slava Pestov 6274c0337a compiler.cfg.ssa.destruction: fix 2009-07-29 23:43:00 -05:00
Slava Pestov b133649edd compiler.cfg.ssa.destruction: tweak in preparation for landing Dan's new SSA liveness analysis 2009-07-29 23:35:51 -05:00
Slava Pestov 1e8d13c1f1 cpu.x86.assembler: fix extended 8-bit registers (DIL, SIL, SPL, BPL) 2009-07-29 22:32:22 -05:00
Slava Pestov 8ca17d053c cpu.x86: use full set of 8-bit, 16-bit and 32-bit registers on x86-64 to avoid clumsy save/restore logic 2009-07-29 21:56:37 -05:00
Slava Pestov 73862a9a03 cpu.x86.assembler: move operands to operands sub-vocabulary, clean up small-reg-* code in compiler backend 2009-07-29 21:44:08 -05:00
Slava Pestov eda66805b2 Merge branch 'xml-fix' of git://tiodante.com/git/factor 2009-07-29 19:27:13 -05:00
Sam Anklesaria c54189ce19 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-29 15:51:33 -05:00
Slava Pestov cb36a40dc4 compiler.cfg.linear-scan: more test fixes 2009-07-29 07:04:52 -05:00
Slava Pestov cb7735ddf4 compiler.cfg: remove 'regs' slot from instruction tuples now that register allocation doesn't use it anymore 2009-07-29 06:50:46 -05:00
Slava Pestov 639a1cbb1f compiler.cfg.linear-scan.resolve: fix unit tests to not depend on hashing 2009-07-29 06:48:01 -05:00
Slava Pestov f3fa4debe3 bit-arrays: fix resize method regression after recent equal? method optimization 2009-07-29 06:47:50 -05:00
Slava Pestov 34432c5f18 compiler: fix test 2009-07-29 06:39:54 -05:00
Slava Pestov 74766d1ccd compiler.cfg.linear-scan.assignment: modifies instructions in place instead of storing a registers assoc for further compile-time performance improvement 2009-07-29 06:36:14 -05:00
Slava Pestov 1532a6f2e3 compiler.cfg.linear-scan.assignment: more efficient data structures 2009-07-29 06:12:33 -05:00
Slava Pestov 50bf6f52b4 compiler.cfg.linearization: fix bootstrap 2009-07-28 22:52:07 -05:00
Slava Pestov eabaf9fc40 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 21:31:25 -05:00
Slava Pestov 8c6b38533c compiler.cfg.linearization: rotate loops. 2x speedup with empty times loop, 1.5x speedup on benchmark.dawes 2009-07-28 21:31:08 -05:00
Sam Anklesaria fe86d9f56e Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 16:42:38 -05:00
Joe Groff f63b322859 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 14:38:25 -05:00
Joe Groff 7f1abec19e i just cut and pasted 2009-07-28 14:38:10 -05:00
Slava Pestov 9afa39aa3a compiler.cfg.ssa.destruction: rename coalesce word to destruct-ssa 2009-07-28 12:56:33 -05:00
Slava Pestov 09d89c0d17 Merge branch 'dcn' 2009-07-28 12:37:45 -05:00
Slava Pestov d913d7331f compiler.cfg: Minor optimization. Instructions can now only ever produce a single value; this eliminates 1array constructions and some iterations 2009-07-28 12:29:07 -05:00
Joe Groff 3e8d928d29 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-28 12:20:16 -05:00
Joe Groff 9f3c8a9959 SSE4 opcodes for x86 assembler 2009-07-28 12:19:37 -05:00
Slava Pestov 7d3b6892d5 compiler.cfg.ssa.construction: use the optimization from the pruned-SSA paper to minimize stack pushing and popping 2009-07-28 11:52:42 -05:00
Slava Pestov f1683f9fcf Move set-last from circular.private to sequences 2009-07-28 11:51:47 -05:00
Slava Pestov 4175585fd4 Merge branch 'master' into dcn 2009-07-28 11:20:43 -05:00
Slava Pestov 037fa69a21 Move Joe's HEX{ syntax to byte-arrays.hex in basis 2009-07-28 11:20:28 -05:00
Slava Pestov 7a6bdffaaa IN: fix for compiler test 2009-07-28 11:16:21 -05:00
Slava Pestov 62fe308776 compiler.cfg.ssa.construction: Use TDMSC algorithm to compute Phi placement 2009-07-28 11:16:10 -05:00
Slava Pestov 5fe3bcff4d Faster bit-array equality, add bit-set-subset? word 2009-07-28 11:14:57 -05:00
Slava Pestov d10993b837 compiler.cfg: Rename ssa to ssa.construction, coalescing to ssa.destruction 2009-07-28 09:34:08 -05:00
Slava Pestov 80e10f1bd0 compiler.cfg: Fix some unit tests 2009-07-28 08:56:14 -05:00
Slava Pestov d394dd3c36 compiler.cfg.branch-splitting: re-enable with a better heuristic 2009-07-28 08:48:05 -05:00
Slava Pestov ff81b055a5 compiler.cfg.utilities: add loop-entry? word 2009-07-28 08:47:50 -05:00
Slava Pestov e6f5eab598 compiler.cfg.linear-scan: fix resolve pass 2009-07-28 08:47:35 -05:00
Slava Pestov 3edf4a2b75 compiler.cfg.coalescing: cleanups 2009-07-28 08:47:03 -05:00
Slava Pestov cf26800dbd Revert "compiler.cfg.coalescing: some cleanups"
This reverts commit e5834c4ba7.
2009-07-28 07:51:44 -05:00
Slava Pestov 18717a449f compiler.cfg.linear-scan.resolve: unit tests 2009-07-28 07:41:41 -05:00
Slava Pestov 009cfbfc8d compiler.cfg.utilities: fix stack effect declaration 2009-07-28 07:40:09 -05:00
Slava Pestov 857ef94acc compiler.cfg.linear-scan: use compiler.cfg.parallel-copy in resolve pass 2009-07-28 07:39:46 -05:00
Slava Pestov f2c8f2824a compiler.cfg.coalescing: some cleanups 2009-07-28 07:37:50 -05:00
Slava Pestov 3e6e5278a4 compiler.cfg.utilities: fix load error 2009-07-28 06:51:03 -05:00
Slava Pestov 7c5e2f2933 tools.annotations: doc addition 2009-07-28 06:49:03 -05:00
Slava Pestov a4cb242396 compiler.cfg.coalescing: Only run if CFG has ##phi nodes, fix interference for case where value is not used in a block and is not live-in, forgot to run liveness analysis first 2009-07-28 06:48:20 -05:00
Slava Pestov cb07256ff5 Add some compiler tests 2009-07-28 06:45:31 -05:00
Slava Pestov 1878b0dc32 compiler.cfg.liveness: fix liveness computation in case where instruction uses a register it defines 2009-07-28 06:45:02 -05:00
Slava Pestov d2b158c8e4 compiler.cfg.critical-edges: reset RPO 2009-07-28 01:04:13 -05:00
Joe Groff 5372113fce SSE1–SSSE3 opcodes + branch hints for x86 assembler 2009-07-28 00:22:27 -05:00
Slava Pestov cf90945b4c Add some tests that directly generate low level IR 2009-07-27 22:29:33 -05:00
Slava Pestov 3cc71a1934 compiler.cfg.coalescing: precompute live intervals, add support for instructions where output cannot equal an input, split critical edges 2009-07-27 22:29:17 -05:00
Slava Pestov e8cf50ac3e compiler.cfg.two-operand: make it work in more cases 2009-07-27 22:28:29 -05:00
Slava Pestov 423d2996fa compiler.cfg.debugger: reset vreg counters 2009-07-27 22:28:13 -05:00
Slava Pestov bfb2a4c1fc cpu.x86: compile a load of zero, and adds, subs where dst = src1 more efficiently 2009-07-27 22:27:54 -05:00
Joe Groff 7493e07c68 disassemble method for byte-arrays. HEX{ abcd } syntax for byte-arrays 2009-07-27 22:14:26 -05:00
Sam Anklesaria 16e44372e3 Merge branch 'master' of git://factorcode.org/git/factor 2009-07-27 21:46:10 -05:00
Slava Pestov c5d7ed58a5 Debugging compiler.cfg.coalescing 2009-07-27 19:24:13 -05:00
Slava Pestov 1a765c38da compiler.cfg.parallel-copy: fix algorithm 2009-07-27 16:54:47 -05:00
Slava Pestov 31555b05cf compiler.codegen: collect instruction statistics 2009-07-27 03:58:15 -05:00
Slava Pestov 9fa71959b5 compiler.cfg.coalescing: fix shuffling bug 2009-07-27 03:58:01 -05:00
Slava Pestov e112b0d70e compiler.cfg.phi-elimination: no longer needed 2009-07-27 02:20:53 -05:00
Slava Pestov ba696b68b8 compiler.cfg.coalescing: more or less complete, now needs debugging 2009-07-27 02:20:45 -05:00
Slava Pestov a32cbdd231 compiler.cfg.coalescing: more work done 2009-07-27 00:31:21 -05:00
Slava Pestov 501629cf75 compiler.tree.propagation.info: fix load error 2009-07-27 00:30:24 -05:00
Slava Pestov a5e5510615 compiler.cfg.coalescing: work in progress 2009-07-26 21:11:26 -05:00
Slava Pestov e9935b6aad compiler.cfg.copy-prop: remove ##phi nodes where all inputs are copy-equivalent 2009-07-26 21:11:02 -05:00
Slava Pestov fc41140720 compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info 2009-07-26 21:10:33 -05:00
Slava Pestov 1319d8e549 compiler.cfg.def-use: build def-use chains 2009-07-26 21:10:14 -05:00
Slava Pestov 2137c9cc79 compiler.cfg.dominance: add pre order and max pre order numbers; use them to implement dominates? check 2009-07-26 21:10:05 -05:00
Joe Groff eeb02815bc set transform feedback format at program link 2009-07-25 21:19:56 -05:00
Slava Pestov 5bbd89f170 Merge branch 'dcn' of git://factorcode.org/git/factor into dcn 2009-07-24 20:30:11 -05:00
Slava Pestov 93764faad3 Merge branch 'master' of git://factorcode.org/git/factor into dcn 2009-07-24 20:29:09 -05:00
Slava Pestov 053de0af40 compiler.cfg.copy-prop: work in progress 2009-07-24 19:56:21 -05:00
Slava Pestov 2fb0198d48 compiler.cfg.parallel-copy: forgot to add this 2009-07-24 19:46:33 -05:00