Commit Graph

452 Commits (208aeae79c7d24f5e695d3bdb136bb303e003ad2)

Author SHA1 Message Date
Doug Coleman 40bdadcac4 Remove many uses of <int> and *int etc 2010-10-25 12:49:12 -05:00
Slava Pestov ef5731ae88 stack-checker.alien: get a bit more inlining going with callbacks, to expose another bug 2010-09-05 21:27:39 -07:00
Slava Pestov f3dfae04ba compiler: now that FFI has been deconcatenatized, we no longer need the special ##unary-float-function and ##binary-float-function fastpaths 2010-08-13 23:59:19 -07:00
Slava Pestov 82694f60af stack-checker.alien: generate a declaration for input parameter types 2010-07-30 15:50:05 -04:00
Slava Pestov 801197a58d classes.algebra: make it work better to fix bug reported by Sascha Matzke 2010-07-29 19:57:23 -04:00
Slava Pestov 7d792778f5 FFI rewrite part 7: compile callback bodies with the optimizing compiler 2010-07-28 00:49:26 -04:00
Slava Pestov 4415a0924c compiler.tree.finalization: record dependencies on inlined predicates 2010-07-23 16:31:15 -07:00
Slava Pestov df9fefade5 compiler.tree.propagation.known-words: don't want a type function on clone, all the methods are inline and it was wrong (reported by Joe Groff) 2010-07-07 17:25:32 -04:00
Slava Pestov 04579f27d6 Revert guarded method inlining
This reverts commit 44a835e3fc, reversing
changes made to d45926bda0.
2010-06-24 12:35:21 -04:00
Daniel Ehrenberg ac15409baa Fixing typo in modular arithmetic unit test (should use iota, not integer sequences, and just happened to work still) 2010-06-15 16:15:49 -04:00
Daniel Ehrenberg f34630252d Merge branch 'master' into propagation 2010-06-15 13:26:01 -04:00
Slava Pestov b8ec5c6176 Stack allocation improvements
- New with-out-parameters combinator
- Inhibit tail call optimization in frames with local allocation, to ensure that passing a stack allocated value to the last word in the quotation works
- local allocations are now aligned properly
- spill slots are now aligned properly aligned in frames which have parameter and local allocation areas
2010-05-22 02:37:00 -04:00
Slava Pestov 70f6717713 compiler.tree.propagation.known-words: fix load error 2010-05-19 00:51:03 -04:00
Slava Pestov 84e7076474 alien.data: add with-scoped-allocation combinator for stack-allocating C data 2010-05-19 00:33:36 -04:00
Slava Pestov c0f39aa99d Move remaining sequence operations from generalizations to sequences.generalizations where they belong 2010-05-18 18:36:47 -04:00
Daniel Ehrenberg 476ef2d3ef Inlining no-method when a generic word has no method 2010-05-14 20:28:09 -05:00
Daniel Ehrenberg 056951fd0c Merge branch 'master' of git://factorcode.org/git/factor into propagation
Conflicts:

	basis/compiler/tree/propagation/propagation-tests.factor
2010-05-14 18:59:39 -05:00
Joe Groff 40c75a996e math.vectors.simd.intrinsics: fix scalar fallback for (simd-vshuffle2-elements) 2010-05-14 02:47:39 -07:00
Slava Pestov db0f40e481 compiler: small fixes and cleanups 2010-05-13 02:48:20 -04:00
Slava Pestov d2d466de29 Language change: tuple slot setter words with stack effect ( value object -- ) are now named FOO<< instead of (>>FOO) 2010-05-06 17:21:02 -04:00
Daniel Ehrenberg 786752bcef Fixing bug in dependency tracking for guarded method inlining 2010-05-04 16:47:00 -05:00
Daniel Ehrenberg 3e7d7f0014 Bug fix in method inlining 2010-05-04 16:46:39 -05:00
Daniel Ehrenberg 12cff99809 Removing hack with >fixnum, now subsumed by a more general optimization 2010-05-04 16:46:39 -05:00
Daniel Ehrenberg 83feb6a758 Adding dependency checking and proper handing of dispatch# to the new method inlining 2010-05-04 16:46:38 -05:00
Daniel Ehrenberg c68ec50080 Improving method inlining change, but there's still a bug 2010-05-04 16:46:08 -05:00
Daniel Ehrenberg 6a3cd17ecd Changes to compiler.tree.propagation.inlining 2010-05-04 16:46:08 -05:00
Daniel Ehrenberg 7d4d4578ff Fixing another bug in the method inlining improvement 2010-05-04 16:46:08 -05:00
Daniel Ehrenberg 5fcc960728 Fixing optimization for improved method inlining 2010-05-04 16:46:07 -05:00
Daniel Ehrenberg ff907e0505 splitting generic word callsites when only one method is applicable 2010-05-04 16:46:07 -05:00
Daniel Ehrenberg 3760b1792f instance? optimizes null checks 2010-05-04 16:46:07 -05:00
Slava Pestov df25d4ca1c compiler.tree.propagation: fix both-fixnums? trick 2010-05-03 17:34:30 -04:00
Slava Pestov c724550291 compiler.cfg: fuse ##load-integer/##load-reference into ##replace to form ##replace-imm 2010-05-03 17:34:28 -04:00
Slava Pestov 9b770c09fb compiler.tree.propagation: fix tests 2010-05-03 17:34:14 -04:00
Slava Pestov fd84bb98bc strings: move string-nth primitive out of the VM and into the library 2010-05-03 17:34:12 -04:00
Slava Pestov bcede96e6c compiler.tree.propagation.transforms: open-code >fixnum when input is already a fixnum or f 2010-04-19 01:14:00 -05:00
Slava Pestov 1d7089dc04 compiler: combine ##load-constant followed by ##alien-double into a ##load-double on x86-32, saving an integer register 2010-04-18 21:42:45 -05:00
Slava Pestov e3ea77be7d compiler.tree.propagation.recursive: more fine-grained generalize-counter-interval eliminates overflow checks from binary-search 2010-04-18 21:42:45 -05:00
Slava Pestov 07d6a1f20f compiler.tree.propagation: fix scalability issue with constraints 2010-04-14 17:19:26 -07:00
Slava Pestov 6b337d8bc6 compiler.tree.propagation: don't constant-fold boa constructors of identity-tuple subclasses 2010-03-26 22:44:56 -04:00
Daniel Ehrenberg 1b61e2e5cf Merge branch 'bags' of git://github.com/littledan/Factor
Conflicts:

	basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor
	basis/furnace/auth/auth.factor
	basis/stack-checker/backend/backend.factor
2010-03-16 13:28:00 -04:00
Joe Groff c4f50b982a Merge branch 'master' into row-polymorphism 2010-03-10 11:48:41 -08:00
Slava Pestov 0c94d75efe compiler.tree.propagation: clean up 2010-03-10 15:15:49 +13:00
Daniel Ehrenberg bff3da2833 Propagation tracks length just like any other read-only slot 2010-03-09 15:58:44 -05:00
Joe Groff 13cf49c45c fix stack effects in compiler tests 2010-03-08 23:46:20 -08:00
Joe Groff d4a0a69eb1 generalize stack effects so we can bootstrap with the stricter stack effect checking 2010-03-08 23:38:10 -08:00
Joe Groff 8a36d57505 make effect variables part of effect syntax, stored out of band in effect tuple 2010-03-05 13:30:10 -08:00
Daniel Ehrenberg bf73129238 Changing some uses of prune to use members 2010-02-27 13:14:03 -05:00
Daniel Ehrenberg 0f0571e48a Moving new-sets to sets 2010-02-26 16:01:01 -05:00
Daniel Ehrenberg 8b219ef472 Making it fast to create a new hashset 2010-02-26 13:24:26 -05:00
Daniel Ehrenberg 9943f225d9 Making propagation and tuple.parser refer to new-sets; adding some missing features from sets into new-sets 2010-02-26 12:07:37 -05:00
Slava Pestov daf2e5270c Get foldable and flushable declarations working on typed words 2010-02-24 00:16:55 +13:00
Slava Pestov 58d035f1c7 Fix two problems with recompilation: predicate constant folding was recording unsatisfied dependencies in some cases, and literal tuple instances of forgotten classes would cause problems for method inlining 2010-02-20 12:01:47 +13:00
Slava Pestov 4fa46fba2d compiler.tree.escape-analysis: fix bug that comes up when inheritance is used 2010-02-16 14:44:13 +13:00
Slava Pestov 6bf88d104b compiler.tree.propagation.transforms: tweak 2^ transform to fix performance regression in benchmark.beust2; introduced by 47d6507548 2010-02-16 01:03:09 +13:00
Slava Pestov 4cc907e1af compiler.tree.propagation, compiler.tree.escape-analysis: make these passes handle constants in a more robust way in compilation units involving tuple reshaping 2010-02-12 02:50:59 +13:00
Slava Pestov fd11ad30dc compiler.tree.propagation.inlining: remove some unused words 2010-02-11 16:29:48 +13:00
Slava Pestov ca9852b541 compiler.tree.propagation.call-effect: hack so that call( doesn't clear the last error 2010-02-03 23:11:33 +13:00
Slava Pestov edbb980e3f Revert "macros: macro body is now defined in its own subword, for compile-time stack effect checking"
This reverts commit 24de7c52f0c3f21cfcdb80235cac7296b0401c85.
2010-02-03 23:11:29 +13:00
Slava Pestov c3f66d49a3 Better error message for call( when quotation has the wrong effect 2010-02-03 23:11:25 +13:00
Slava Pestov 29e1d268b7 generic: rename method-body predicate class to method 2010-02-03 23:11:24 +13:00
Slava Pestov 0ff526f478 macros: macro body is now defined in its own subword, for compile-time stack effect checking 2010-02-03 23:11:22 +13:00
Slava Pestov 8f763fe8da Merge git://github.com/littledan/Factor into littledan 2010-01-31 02:54:58 +13:00
Slava Pestov 65ba4b58d9 stack-checker.dependencies: add tuple layout dependencies for use by 'new' and 'boa' 2010-01-30 09:29:00 +13:00
Slava Pestov df16224ab2 Re-work flushed dependencies into new compiler cross-referencing framework 2010-01-30 09:29:00 +13:00
Slava Pestov 13f920babb Add some utility words to stack-checker.dependencies in preparation for a refactoring 2010-01-30 09:28:59 +13:00
Slava Pestov 468a3a74f1 Re-defining a tuple class now invalidates cached quotation stack effects 2010-01-30 09:28:59 +13:00
Slava Pestov 2138b55708 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov dba5b0be08 compiler.tree.propagation.call-effect: clear out dependency tracking variables to ensure that infer calls made by call( as part of the compile process doesn't pollute the dependencies of the word being compiled 2010-01-30 09:28:57 +13:00
Slava Pestov 1da446d8fc Code cleanups 2010-01-30 09:28:56 +13:00
Slava Pestov 0738e85df1 Work in progress: record constant-folds of predicate words, and call-next-method invocations, in the same way that method inlining are recorded, for greater recompilation accuracy 2010-01-30 09:28:56 +13:00
Daniel Ehrenberg 8837fe5792 Tests for propagation additions; making fixnum-bit? inline 2010-01-25 20:15:17 -06:00
Daniel Ehrenberg 8b04f0f417 Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:

	basis/compiler/tree/propagation/transforms/transforms.factor
2010-01-20 00:15:55 -06:00
Daniel Ehrenberg 2e5f16da00 Adding compiler transforms in propagation 2010-01-20 00:10:49 -06:00
Slava Pestov 875053d645 compiler.tree.propagation.call-effect: eliminate some dispatch from call( expansion 2010-01-19 21:08:45 +13:00
Slava Pestov e19c6fd76f compiler.tree.escape-analysis: make tests a bit more robust; a change to boa constructors recently meant dead curries were showing up on certain expansions, this was throwing off the escape-analysis test's unboxed allocation counting. Fix this by having the test run DCE first, and remove a few tests that no longer make sense now 2010-01-18 23:32:34 +13:00
Slava Pestov 4bf62e6b41 compiler.tree.propagation: ensure that we don't call 'equal?' or 'hashcode' on literals in words being compiled 2010-01-16 20:00:48 +13:00
Slava Pestov 880fb747fc Removing integers-as-sequences 2010-01-15 07:15:33 +13:00
Slava Pestov 5770a5f9b3 Fix input-classes of /i and mod, and add some regression tests with various reductions of the original test-case from the terrain demo 2010-01-14 18:15:51 +13:00
Slava Pestov 005db61ad6 Rework min and max so that behavior with floats and NaNs is consistent between generic arithmetic and open-coded float intrinsics 2010-01-13 22:20:16 +13:00
Slava Pestov 1e2c0327ee Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S 2010-01-07 17:39:22 +13:00
Slava Pestov 1e137b6d6a compiler.tree: remove some code duplication concerning #alien nodes 2010-01-07 16:06:07 +13:00
Joe Groff d674ff8191 simd intrinsic implementation for v*high, v*hs+, vavg, and vsad 2009-12-05 14:52:18 -08:00
Joe Groff ebcaaa0d64 Merge branch 'master' into simd-cleanup 2009-11-26 16:14:46 -08:00
Joe Groff ea7c5b6d86 fix buggy simd intrinsics 2009-11-26 13:28:40 -08:00
Joe Groff 804c8c3bcc fix simd intrinsic compilation 2009-11-24 11:37:28 -08:00
Joe Groff faf4df9043 scalar fallbacks for simd intrinsics 2009-11-23 21:24:55 -08:00
Joe Groff 3b17573c7c break simd intrinsics into a separate vocab so they can be intrinsified before the simd methods compile 2009-11-19 11:53:46 -08:00
Slava Pestov 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov 6d0598a385 heap-size now has a partial-eval instead of being foldable, and the partial-eval adds a dependency on the C type word. Fixes problem where redefining a struct didn't update specialized array 2009-11-15 11:26:37 -06:00
Joe Groff 993631e44c Merge branch 'master' of git://factorcode.org/git/factor into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-14 21:02:39 -06:00
Joe Groff 9efff4a322 backend fixups 2009-11-14 20:59:03 -06:00
Slava Pestov aaad7b6b16 compiler.tree.propagation.branches: fix recent constraints change 2009-11-13 07:16:41 -06:00
Slava Pestov b201cc4a6f Fixing call( inline caching 2009-11-13 04:32:33 -06:00
Slava Pestov eb165a5450 Instead of bumping the definition counter every time in the VM, bump it only if stack effects changed or macros were redefined 2009-11-13 03:52:14 -06:00
Slava Pestov 6c7ce97380 compiler.tree.propagation: fix bug in constraints that caused retain stack overflow 2009-11-13 03:22:57 -06:00
Slava Pestov a841083ebe compiler.tree.propagation.transforms: inline push if types are known. Speeds up reverse-complement, sort, sum-file benchmarks 2009-11-12 17:24:32 -06:00
Slava Pestov 2e861d2ff8 compiler.tree.propagation: implementing missing case in branch constraints 2009-11-12 17:24:11 -06:00
Slava Pestov 06fb247b8c Invalidate inline caches used by call( and execute( when words are redefined 2009-11-12 16:09:07 -06:00
Slava Pestov 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov e0d3878c00 stack-checker: tighten some screws in error reporting 2009-11-09 00:17:24 -06:00