Commit Graph

354 Commits (0c94d75efe379c30fd283de3af955de5c3b74884)

Author SHA1 Message Date
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
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