Commit Graph

1459 Commits (2e7935d66e209549011b6b44790ef6e11fff7eaf)

Author SHA1 Message Date
Slava Pestov 82fb1879af Debugging untagged fixnums 2010-05-03 17:34:02 -04:00
Slava Pestov 5d3a7a7362 Untagged fixnums work in progress 2010-05-03 17:34:02 -04:00
Slava Pestov 503c0fcfde compiler: Start using tagged-rep for stuff, and split up compiler.cfg.representations into several sub-vocabularies 2010-05-03 17:34:01 -04:00
Erik Charlebois baab8c060d Remove ENUM: f and replace uses with CONSTANTs.
Fix bootstrap and load-all errors from enum classes.
2010-04-19 20:08:40 -07:00
Joe Groff 4bc915d526 C-ENUM: -> ENUM: 2010-04-19 20:07:16 -07:00
Slava Pestov d143aa64b2 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 2517b2fc2b 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 8f0739197e compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch 2010-04-18 21:42:45 -05:00
Slava Pestov bc9241d2b7 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 2aaf24412a compiler: change how 'f' is represented in low level IR to simplify some code, and fuse a ##load-constant of a word with a ##compare into a ##compare-imm on x86-32. This eliminates a spill from binary-search 2010-04-18 21:42:45 -05:00
Daniel Ehrenberg fbb1eb98a9 Improving dependence graph correctness 2010-04-18 19:59:52 -05:00
Daniel Ehrenberg 865285cdd7 Merge branch 'master' of git://factorcode.org/git/factor into s3 2010-04-17 14:05:40 -05:00
Slava Pestov c1a870fe72 sequences: remove stupid <flat-slice> word 2010-04-17 00:58:30 -05:00
Daniel Ehrenberg 6892bac1ca Making some scheduling assertions only run in unit tests 2010-04-15 17:36:43 -05:00
Daniel Ehrenberg 74de7d0e2a Merge branch 'master' of git://factorcode.org/git/factor into s3 2010-04-15 17:28:53 -05:00
Slava Pestov bd4e920995 compiler.tree.propagation: fix scalability issue with constraints 2010-04-14 17:19:26 -07:00
Slava Pestov 4f16212840 compiler.tests.redefine23: test wasn't testing anything 2010-04-13 00:56:48 -07:00
Slava Pestov 88f627a402 compiler.tests.alien: fix tests on Win64 2010-04-13 01:24:04 -05:00
Slava Pestov 918b202b9a compiler.tests.alien: get it passing when VM is compiled with MINGW by disabling certain tests and using the MINGW ABI for others, and fix fastcall alien-indirect tests for name decoration 2010-04-12 18:14:18 -05:00
Slava Pestov 67e24b1d2a compiler.codegen: need to do name decoration with fastcall as well 2010-04-12 18:10:25 -05:00
Slava Pestov 1434a305c8 vm: add a new rc-absolute-1 relocation class to allow storing values in 8-bit operands, and optimized code sequences for inline caches using this 2010-04-12 14:22:41 -07:00
Slava Pestov 145e6428ba Fixing load errors 2010-04-10 17:24:44 -07:00
Slava Pestov 0aab7aa872 compiler.tests.alien: fix typo 2010-04-10 00:41:20 -07:00
Joe Groff 3e0d86f355 Merge branch 'master' of git://factorcode.org/git/factor into abi-symbols
Conflicts:
	basis/compiler/tests/alien.factor
2010-04-06 12:30:15 -07:00
Daniel Ehrenberg aae69daa96 Fixing USING: line of scheduling to remove unnecessary vocabs 2010-04-05 15:45:06 -05:00
Daniel Ehrenberg e22f66daf4 Scheduling has to come before representation selection, since the latter inserts memory operations 2010-04-05 00:24:12 -05:00
Daniel Ehrenberg 601b6f8457 Merge branch 'master' of git://factorcode.org/git/factor into s3 2010-04-04 19:43:15 -05:00
Slava Pestov 74640b7f71 Get green threads working on Windows
- store stack base and limit in TIB
- set up a frame-based structured exception handler in each context's callstack
- boot.x86.32.image has now been replaced by boot.winnt-x86.32.image and boot.unix-x86.32.image
2010-04-03 20:24:33 -04:00
Joe Groff 1c5f718e80 add tests for fastcall callbacks 2010-04-02 00:23:39 -07:00
Joe Groff 47f3ace5ac test fastcall indirect struct return 2010-04-02 00:00:34 -07:00
Joe Groff 43d73dcd4d remove fastcall struct param tests because GCC appears to behave differently from VC++ here and again, who cares 2010-04-01 23:54:08 -07:00
Joe Groff 5dcfb383a6 add tests for struct returns from fastcall 2010-04-01 23:52:56 -07:00
Joe Groff 69abcd4b9b test indirect fastcalls 2010-04-01 23:43:55 -07:00
Joe Groff fd0569e553 compiler.tests.alien: add back fastcall float and struct tests 2010-04-01 22:47:16 -07:00
Joe Groff 88fbcba067 flatten non-integral types to (stack-value) on x86.32 2010-04-01 20:56:43 -07:00
Joe Groff 88da92543c add a test that multiple stdcalls or fastcalls in the same word behave correctly 2010-04-01 18:48:12 -07:00
Joe Groff 553b9fcd93 make "fastcall" symbol private since it doesn't really work in all cases 2010-04-01 18:34:15 -07:00
Joe Groff 9c1a9158be retire mixed int/float fastcall tests because who cares 2010-04-01 18:25:56 -07:00
Slava Pestov eceabbc57e compiler: new set-special-object intrinsic; more efficient special-object intrinsic 2010-04-01 20:09:14 -04:00
Joe Groff c743608456 check gc after fastcall ffi tests like stdcall tests 2010-04-01 14:15:34 -07:00
Joe Groff a191937c47 typos in ffi tests 2010-04-01 03:02:36 -07:00
Joe Groff 4fd61f0b5c cpu.architecture: alter param-regs to take abi as an (ignored for now) argument 2010-04-01 02:53:40 -07:00
Joe Groff fca8ba3d0a add fastcall functions to ffi tests 2010-04-01 02:22:42 -07:00
Joe Groff f3dd625de6 "stdcall" -> stdcall 2010-03-31 19:29:04 -07:00
Joe Groff 65c3259761 "cdecl" -> cdecl 2010-03-31 19:20:35 -07:00
Slava Pestov d98e752199 compiler: add intrinsic for context-object primitive 2010-03-27 02:56:11 -04:00
Slava Pestov e6a15c0b33 compiler.tree.propagation: don't constant-fold boa constructors of identity-tuple subclasses 2010-03-26 22:44:56 -04:00
Slava Pestov 560c119cd2 vm: actually use context callstacks when running code 2010-03-26 22:44:43 -04:00
Daniel Ehrenberg 31f23c8eba Scheduling uses sets where appropriate 2010-03-24 10:38:52 -04:00
Daniel Ehrenberg 12db8a6c77 Merge branch 's3' of git://github.com/littledan/Factor into s3 2010-03-23 16:46:28 -04:00
Joe Groff 1d4d6f4ce8 factor code duplication in compiler.cfg.intrinsics.simd.backend 2010-03-20 10:57:04 -07:00
Joe Groff f82a368602 compiler.cfg.intrinsics.simd.backend: eliminate duplicated work done on successful insn sequence 2010-03-20 02:51:49 -07:00
Joe Groff ee4913702f compiler.cfg.intrinsics.simd.backend: use less grotesque metaprogramming to determine simd instruction sequences 2010-03-20 02:16:50 -07:00
Slava Pestov 6aee6b3adc Add context-specific special object table, generalizing catchstack_save and current_callback_save fields of context struct 2010-03-18 22:06:00 +13:00
Daniel Ehrenberg 248730d39f Cleaning up compiler.cfg.ssa.construction 2010-03-17 20:12:10 -04:00
Daniel Ehrenberg 512fe14e4e 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 f24a74f66c Merge branch 'master' into row-polymorphism 2010-03-10 11:48:41 -08:00
Slava Pestov 7744559a46 compiler.tree.propagation: clean up 2010-03-10 15:15:49 +13:00
Daniel Ehrenberg 8e227bc874 Propagation tracks length just like any other read-only slot 2010-03-09 15:58:44 -05:00
Joe Groff bcbc7632c6 fix stack effects in compiler tests 2010-03-08 23:46:20 -08:00
Joe Groff 191ac353fd generalize stack effects so we can bootstrap with the stricter stack effect checking 2010-03-08 23:38:10 -08:00
Joe Groff af57d4dfa9 fix ... in compiler.cfg.linearization 2010-03-05 14:27:58 -08:00
Joe Groff a3033e885a make effect variables part of effect syntax, stored out of band in effect tuple 2010-03-05 13:30:10 -08:00
Daniel Ehrenberg e3481a7ed7 compiler.cfg.def-use uses sets 2010-03-02 19:23:34 -05:00
Daniel Ehrenberg 1e5f202998 Maing vocabs.hierarchy use sets; modifying alias analysis's use of sets 2010-02-28 22:55:22 -05:00
Daniel Ehrenberg 1217dc9c6e Making alias analysis use sets 2010-02-28 22:42:10 -05:00
Daniel Ehrenberg 434605c0b5 Changing some uses of prune to use members 2010-02-27 13:14:03 -05:00
Daniel Ehrenberg 7cd3360cdd Fixing ambiguity between sets and namespaces in many unit tests and furnace.auth 2010-02-26 17:17:40 -05:00
Daniel Ehrenberg 6298203b4c Making all of basis and extra unambiguous for sets/namespaces 2010-02-26 16:28:38 -05:00
Daniel Ehrenberg 7074979745 Moving new-sets to sets 2010-02-26 16:01:01 -05:00
Daniel Ehrenberg a72e2cc96c Finishing converting compiler.cfg.ssa.construction.tdmsc to new-sets 2010-02-26 13:53:20 -05:00
Daniel Ehrenberg 73a990a4b8 Making it fast to create a new hashset 2010-02-26 13:24:26 -05:00
Daniel Ehrenberg b76c82048d 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
Daniel Ehrenberg a3c168cb5e Merge branch 'master' of git://factorcode.org/git/factor into bags 2010-02-26 10:00:57 -05:00
Daniel Ehrenberg aa438efc35 Merge branch 'master' of git://factorcode.org/git/factor into s3 2010-02-24 21:38:24 -06:00
Daniel Ehrenberg 2034e1ef05 Fewer unnecessary dependence edges between stack operations, implemented by reviving stack height normalization. Now, 40% of spills and reloads are eliminated in total 2010-02-24 14:20:43 -06:00
Joe Groff 4cfa1a6c77 rename current string-mangling "char*" to "c-string". char* is now just a boring old pointer to char 2010-02-23 11:42:02 -08:00
Slava Pestov ae25cfe712 Get foldable and flushable declarations working on typed words 2010-02-24 00:16:55 +13:00
Slava Pestov eb3f8632dd stack-checker.alien: now that C types are words, the compiler can add dependencies on them when compiling alien words. This triggers the necessary recompilation when C types are redefined 2010-02-22 21:32:41 +13:00
Slava Pestov 6501480a0e 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
Daniel Ehrenberg 04878057af Compiler.cfg.{dce,linearization} use new-sets 2010-02-16 15:48:07 -06:00
Daniel Ehrenberg 30cc248bb3 Bit sets use new new set protocol, and compiler.cfg.ssa.construction.tdmsc is updated for it 2010-02-16 15:14:32 -06:00
Slava Pestov b963d56aac compiler.tree.escape-analysis: fix bug that comes up when inheritance is used 2010-02-16 14:44:13 +13:00
Slava Pestov 64a37d2db6 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
Daniel Ehrenberg 6d36bfd104 Modifying dependence graph construction for faster compile time 2010-02-13 21:35:40 -06:00
Daniel Ehrenberg 7565588f4f Merge branch 'master' of git://factorcode.org/git/factor into s3 2010-02-13 20:26:14 -06:00
Daniel Ehrenberg 4f7fd41cf2 Using original instruction order as a tiebreaker in scheduling 2010-02-11 23:12:17 -06:00
Daniel Ehrenberg 5a3d0fb883 Scheduling doesn't have such redundant data structures anymore 2010-02-11 21:21:22 -06:00
Daniel Ehrenberg a6f255a985 Scheduling schedules more BBs--it was leaving out some ones that shouldn't've been. Now it's almost 30% of spills and reloads that are eliminated 2010-02-11 21:02:02 -06:00
Slava Pestov a118f208dc 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
Daniel Ehrenberg edae2fa2d3 Making the fan-in tree generation work. Finally: a 20% reduction in spills and reloads on x86! 2010-02-11 00:19:53 -06:00
Daniel Ehrenberg 6fe9aa50f7 Working on fixing scheduling 2010-02-10 22:36:26 -06:00
Daniel Ehrenberg 04946dcddd A first attempt at implementing Vivek Sarkar's algorithm for scheduling for register pressure 2010-02-10 21:43:30 -06:00
Slava Pestov 57ba1aff60 compiler.tree.propagation.inlining: remove some unused words 2010-02-11 16:29:48 +13:00
Slava Pestov 35acd71551 compiler.units: fix bug that came up recently with nested compilation units 2010-02-04 03:20:48 +13:00
Slava Pestov 8d3c11c176 compiler: remove some unnecessary complexity 2010-02-04 01:36:52 +13:00
Slava Pestov c011380a19 compiler: tweak recompilation logic. speeds up '"terrain" require' by 8 seconds 2010-02-04 01:09:57 +13:00
Slava Pestov 662eba7a67 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 7de81976a5 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 3259ef4bec vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units 2010-02-03 23:11:28 +13:00
Slava Pestov 55a89ec9c2 Better error message for call( when quotation has the wrong effect 2010-02-03 23:11:25 +13:00
Slava Pestov df55fed478 generic: rename method-body predicate class to method 2010-02-03 23:11:24 +13:00
Slava Pestov b7fde7af27 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 bf05a901c4 Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI 2010-02-02 04:01:12 -06:00
Slava Pestov e7de95e72b compiler.crossref: clean up and fix bug with forgotten classes 2010-02-01 17:20:08 +13:00
Slava Pestov 8432f4c459 Fix a couple of unit tests that were relying on the old compiler crossref structures 2010-01-31 23:26:55 +13:00
Slava Pestov c5c94ef1f9 compiler.cfg.intrinsics.simd: ignore dummy assert-positive word 2010-01-31 18:19:14 +13:00
Slava Pestov 5ed0bc72aa Merge git://github.com/littledan/Factor into littledan 2010-01-31 02:54:58 +13:00
Slava Pestov 2c63161c84 stack-checker.dependencies: make conditional dependencies more robust 2010-01-31 01:55:35 +13:00
Slava Pestov 9bc4e662c6 compiler.crossref: word props were stored the wrong way round 2010-01-30 22:33:27 +13:00
Slava Pestov 6eceff6acb compiler.crossref: cleanup 2010-01-30 21:14:40 +13:00
Slava Pestov ea9dbf2ea1 compiler.crossref: more space-efficient storage of dependency information 2010-01-30 09:29:02 +13:00
Slava Pestov fa4f7d8ccf Clean up some code in preparation for a refactoring 2010-01-30 09:29:02 +13:00
Slava Pestov 015a9d365d compiler.crossref: memoize dependency evaluation 2010-01-30 09:29:01 +13:00
Slava Pestov a13c2fb856 compiler.crosssref: rename word property 2010-01-30 09:29:00 +13:00
Slava Pestov 6cc68e889e stack-checker.dependencies: add tuple layout dependencies for use by 'new' and 'boa' 2010-01-30 09:29:00 +13:00
Slava Pestov 09ead56652 Re-work flushed dependencies into new compiler cross-referencing framework 2010-01-30 09:29:00 +13:00
Slava Pestov c058343167 Add some utility words to stack-checker.dependencies in preparation for a refactoring 2010-01-30 09:28:59 +13:00
Slava Pestov 26f311279c Re-defining a tuple class now invalidates cached quotation stack effects 2010-01-30 09:28:59 +13:00
Slava Pestov c027046857 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov 817bc02392 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 ab428fc259 Code cleanups 2010-01-30 09:28:56 +13:00
Slava Pestov f031a97084 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
Slava Pestov bd479db2f8 Fix regression when forgetting classes 2010-01-30 09:28:55 +13:00
Slava Pestov 830e25c70b More changes so that mixins trigger even less recompilation 2010-01-30 09:28:53 +13:00
Slava Pestov d58f73453f Add test case for mixin bug Doug found, seems to be fixed now 2010-01-30 09:28:52 +13:00
Daniel Ehrenberg 19d551a544 Merge branch 'master' of git://factorcode.org/git/factor 2010-01-26 14:14:05 -06:00
Daniel Ehrenberg 52f2ac2bb9 Tests for propagation additions; making fixnum-bit? inline 2010-01-25 20:15:17 -06:00
Doug Coleman afdb7f6329 remove a stray character 2010-01-22 15:07:01 -06:00
Doug Coleman 8c1d202b4c Rename accumulator to collector, pusher to selector 2010-01-22 15:00:53 -06:00
Slava Pestov 098ef42202 compiler: fix docs 2010-01-23 00:46:04 +13:00
Slava Pestov ea5e168d77 compiler.test: fix 2010-01-23 00:40:56 +13:00
Slava Pestov f804c9c422 Move compile-call and related words only meant to be used for debugging to compiler.test 2010-01-23 00:39:56 +13:00
Daniel Ehrenberg d3590ea210 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 aa1651032d Adding compiler transforms in propagation 2010-01-20 00:10:49 -06:00
Slava Pestov 9a222a4163 compiler.tree.propagation.call-effect: eliminate some dispatch from call( expansion 2010-01-19 21:08:45 +13:00
Slava Pestov 5606825e8b vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym() 2010-01-19 20:00:33 +13:00
Slava Pestov ac800e2396 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 637a77c018 Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types 2010-01-18 20:54:00 +13:00
Slava Pestov 3b5f7a9ecf 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 7155447aed stack-checker: add inputs and outputs words, since 'infer (in>>|out>>) length' was coming up a lot 2010-01-15 08:04:14 +13:00
Doug Coleman 4c71d71907 random is generic now -- iota random -> random 2010-01-14 12:48:57 -06:00
Slava Pestov df4fb4a3ee Removing integers-as-sequences 2010-01-15 07:15:33 +13:00
Slava Pestov 50d68c1b10 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 ce2487e6c0 compiler.codegen.fixup: cache symbol names, reducing image size by ~200Kb 2010-01-13 23:18:43 +13:00
Slava Pestov 47a5e96547 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 1c10196c43 Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side 2010-01-13 18:08:18 +13:00
Slava Pestov 988c8d0601 More PowerPC non-optimizing compiler backend fixes 2010-01-13 03:09:43 +13:00
Slava Pestov 235f3238f5 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 44a604fdbe compiler.tree: remove some code duplication concerning #alien nodes 2010-01-07 16:06:07 +13:00
Slava Pestov 47c6197799 Update x86-32 for assembly entry point changes 2010-01-06 17:55:20 +13:00
Slava Pestov 36d2ac8921 vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64 2010-01-06 15:47:36 +13:00
Slava Pestov ba5b90e063 Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Slava Pestov e96404327e Get optimizing compiler working without global register variables in VM 2009-12-22 15:42:49 +13:00
Slava Pestov 0068bce934 vm: big overhaul of non-optimizing compiler
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Joe Groff 3e40a36c50 fix simd tests 2009-12-05 17:17:16 -08:00
Joe Groff 104c29aabc simd intrinsic implementation for v*high, v*hs+, vavg, and vsad 2009-12-05 14:52:18 -08:00
Joe Groff 412b9d0c7a change compiler.cfg.intrinsics.simd tests to not use types and operations that depend on host cell size 2009-12-04 13:23:31 -08:00
Joe Groff 63b89c65f9 don't use intrinsics for simd vector element operations when the component size doesn't fit in a fixnum 2009-12-03 12:46:56 -08:00
Slava Pestov 73eb4c4531 Merge branch 'simd-cleanup' of git://factorcode.org/git/factor into simd-cleanup 2009-12-02 19:09:56 -05:00
Slava Pestov eb840dcf41 RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further 2009-12-02 04:55:48 -06:00
Slava Pestov 68c09f0e93 Split literal table into literal and parameter tables, literal table is discarded after code block initialization 2009-12-02 04:28:15 -06:00
Joe Groff 67cc1c01be Merge branch 'master' into simd-cleanup 2009-11-26 16:14:46 -08:00
Joe Groff 66d0cafa94 fix buggy simd intrinsics 2009-11-26 13:28:40 -08:00
Joe Groff c916c7c856 don't try to rewrite redundant test-vector-exprs 2009-11-25 20:06:11 -08:00
Slava Pestov bd02eef38e Fix non-tail recursive inline recursive compilation 2009-11-25 19:12:09 -06:00
Joe Groff 50f7dff422 change name of 'unsign-rep' to more sensible 'signed-rep' 2009-11-24 22:44:12 -08:00
Joe Groff c98eb84943 make math.vectors.simd tests pass again 2009-11-24 18:30:12 -08:00
Joe Groff 9c388bf781 update compiler.cfg.intrinsics.simd tests 2009-11-24 12:50:27 -08:00
Joe Groff 65d8060075 fix simd intrinsic compilation 2009-11-24 11:37:28 -08:00
Joe Groff d94ffe6d78 scalar fallbacks for simd intrinsics 2009-11-23 21:24:55 -08:00
Slava Pestov 0612bc6177 Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Joe Groff 152b0d2df5 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
Joe Groff 59d85f7ad6 fix primitive emit fallback for simd intrinsics 2009-11-18 21:29:51 -08:00
Joe Groff a3e4ecfc7d enable simd intrinsics and fix first-pass compiler errors 2009-11-18 20:32:05 -08:00
Joe Groff 6583875055 tests for all simd intrinsics 2009-11-18 18:20:58 -08:00
Joe Groff f545c5d3e5 properly handle -vector-op and case words in simd.backend 2009-11-18 12:36:41 -08:00
Joe Groff cd2cf91b95 start on tests for simd intrinsics 2009-11-17 11:13:16 -08:00
Slava Pestov e30d275e41 compiler.cfg: 'basic-block new hashcode' should not throw an exception; fixes tools.deploy.test.11 2009-11-16 02:01:36 -06:00
Slava Pestov 361c38d5a1 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 d56afe9c3d compilation fixes 2009-11-14 23:43:22 -06:00
Joe Groff f544982fda 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 8a8699ac98 backend fixups 2009-11-14 20:59:03 -06:00
Slava Pestov 7377c96a21 compiler.tree.propagation.branches: fix recent constraints change 2009-11-13 07:16:41 -06:00
Slava Pestov afecb9c758 Fixing call( inline caching 2009-11-13 04:32:33 -06:00
Slava Pestov 86da8ebed9 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 720c412431 compiler.tree.propagation: fix bug in constraints that caused retain stack overflow 2009-11-13 03:22:57 -06:00
Slava Pestov ff25aaef54 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 7afea4c0ea compiler.tree.propagation: implementing missing case in branch constraints 2009-11-12 17:24:11 -06:00
Slava Pestov cba12eae37 Invalidate inline caches used by call( and execute( when words are redefined 2009-11-12 16:09:07 -06:00
Joe Groff e323071c44 sever lingering dependencies on simd from compiler 2009-11-11 16:08:40 -06:00
Slava Pestov 41c17f0429 Fixing test failures 2009-11-11 02:40:24 -06:00
Slava Pestov 2afd7ce244 Faster identity-hashcode primitive; fast path now opencoded by the compiler 2009-11-11 02:27:19 -06:00
Joe Groff eac9bacf40 backend for choosing available SIMD intrinsic implementations 2009-11-10 23:35:46 -06:00
Slava Pestov 064c00f78d New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 19283ed83d compiler.cfg.intrinsics.slots: new implementation of value-tag 2009-11-10 17:30:27 -06:00
Slava Pestov 473cc7db4a stack-checker: tighten some screws in error reporting 2009-11-09 00:17:24 -06:00
Joe Groff 788289e51e Merge branch 'master' into simd-cleanup 2009-11-08 21:54:53 -06:00
Slava Pestov cd2e226afa stack-checker: split off stack-checker.dependencies from stack-checker.state 2009-11-08 20:34:46 -06:00
Slava Pestov da041a0175 compiler.crossref: fix bugs 2009-11-08 06:22:39 -06:00
Slava Pestov 5d79450d9d Use a more compact representation for "compiled-uses" and "compiled-generic-uses" word-props; reduces image size 2009-11-08 06:08:04 -06:00
Joe Groff 8894e9047c Merge branch 'master' into simd-cleanup 2009-11-07 22:26:09 -06:00
Slava Pestov 279d1169d2 compiler: fix alien tests 2009-11-06 01:04:02 -06:00
Joe Groff 00ce8b6a33 deprimitivize tuck and put it to pasture 2009-11-05 22:47:05 -06:00
Daniel Ehrenberg d2fe75276e custom inlining for diff and intersect, when given a literal sequence. this cuts off 1/3 of the running time of a microbenchmark 2009-11-05 13:13:27 -06:00
Joe Groff 75d04922b9 Merge branch 'master' into simd-cleanup
Conflicts:
	basis/math/vectors/simd/functor/functor.factor
2009-11-05 11:27:08 -06:00
Joe Groff 4d54f27cd1 more intrinsic madness 2009-11-05 09:52:57 -06:00
Slava Pestov 8c4ad9bf18 compiler: fix intrinsics tests on 32-bit 2009-11-04 18:28:46 -06:00
Joe Groff f6643a1c72 change ##horizontal-add-vector insn to better match what the HADD SSE instructions do (add adjacent pairs, pack results) 2009-11-04 12:18:01 -06:00
Slava Pestov 3c4c05e915 compiler.cfg.intrinsics.allot: fix inline byte array allocation on 32-bit platforms 2009-11-03 23:44:20 -06:00
Slava Pestov 109aa88b06 compiler: update unit tests for 4-bit tag change 2009-11-03 21:40:29 -06:00
Joe Groff bd77633d5b new intrinsic generators, pt1 2009-11-03 21:38:45 -06:00
Slava Pestov 51e9a891a8 cpu.x86: update %box-displaced-alien for introduction of address field 2009-11-03 03:17:43 -06:00
Slava Pestov 91ccc30a54 Merge branch 'master' into new_gc 2009-11-02 20:34:13 -06:00
Slava Pestov 0a15ae4d6b compiler.cfg.intrinsics: uncomment line commented out by mistake 2009-11-02 20:33:14 -06:00
Slava Pestov 495f776d54 Merge branch 'master' into new_gc 2009-11-02 20:11:43 -06:00
Slava Pestov 8bd2273e44 compiler.cfg: don't generate useless methods in instruction meta-programming. reduces bootstrap time 2009-11-02 20:11:29 -06:00
Slava Pestov a3b5c07e80 Minor bug fixes for 4-bit tags 2009-11-02 17:41:36 -06:00
Joe Groff e36eb438fa move all simd intrinsics to compiler.cfg.intrinsics.simd, and only load it when math.vectors.simd is loaded 2009-11-02 15:17:34 -06:00
Joe Groff 42493b9778 update compiler.tree.propagation.simd, and don't load it till math.vectors.simd is loaded 2009-11-02 15:09:16 -06:00
Slava Pestov e4ad642134 vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress) 2009-11-02 04:25:54 -06:00
Slava Pestov 37abac7407 Merge branch 'master' into new_gc 2009-10-30 21:04:37 -05:00
Joe Groff 3f15e028f7 exile roll and -roll to basis/shuffle and mark them deprecated 2009-10-30 17:11:45 -05:00
Slava Pestov 6f9336c29e Merge branch 'master' into new_gc 2009-10-30 03:03:05 -05:00
Joe Groff 1cf45abf06 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-30 00:42:37 -05:00
Joe Groff b858860a67 add ##shl-vector-imm and ##shr-vector-imm insn variants. use merge/shr instead of compare/merge to do signed unpacks 2009-10-30 00:41:19 -05:00
Doug Coleman 1d12a6707d sigma -> map-sum 2009-10-29 14:34:04 -05:00
Doug Coleman 17f0a5d41a Merge branch 'master' of git://factorcode.org/git/factor 2009-10-28 17:26:23 -05:00
Doug Coleman e376a0ece2 (normalize-path) -> absolute-path, canonicalize-path -> resolve-symlinks 2009-10-28 17:25:50 -05:00
Joe Groff 3fbe722561 Merge branch 'master' of http://factorcode.org/git/factor
Conflicts:
	basis/locals/locals.factor
	basis/peg/peg.factor
	extra/infix/infix.factor
2009-10-28 16:17:24 -05:00
Joe Groff 6e1bffb1c5 update existing code to use :> ( ) when possible 2009-10-28 16:11:33 -05:00
Doug Coleman bd13e018dd memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Doug Coleman 1476cdb974 reverse-here -> reverse! 2009-10-28 14:40:15 -05:00
Doug Coleman 7ce4b746e5 parsed -> suffix!, add append! 2009-10-28 13:38:27 -05:00
Joe Groff 2ecf3fb568 fix load errors from bootstrapping 2009-10-28 12:51:03 -05:00
Slava Pestov 299b5b0f6c filter-here -> filter! 2009-10-28 00:44:05 -05:00
Slava Pestov 50f5c3d116 remq -> remove-eq, delq -> remove-eq! 2009-10-28 00:23:08 -05:00
Slava Pestov 951e3e9c83 delete-nth -> remove-nth! 2009-10-27 23:41:57 -05:00
Slava Pestov 08e7d25dc5 change-each -> map!, deep-change-each -> deep-map! 2009-10-27 22:32:56 -05:00
Joe Groff 935c0797c3 update existing code for [let change 2009-10-27 22:05:37 -05:00
Joe Groff d17ef38007 update compiler.tree.cleanup test 2009-10-26 23:01:35 -05:00
Slava Pestov 9abe29bebc Merge branch 'master' into new_gc 2009-10-24 01:31:15 -05:00
Slava Pestov 0c431f1222 compiler.tree.propagation: fix broken corner cases in bitand and shift transforms, exposed by Hugh Aguilar's LC53 benchmark 2009-10-24 01:09:32 -05:00
Slava Pestov e46259bd33 compiler.tree.propagation.transforms: fix problem with 'shift' transform when input was a bignum 2009-10-23 07:50:56 -05:00
Slava Pestov 64ff812611 Merge branch 'master' into new_gc 2009-10-23 03:56:46 -05:00
Slava Pestov e8fd85437b compiler: fix stack effect inference bug discovered by x6j8x; it was possible to define a word which did not compile but could be called anyway 2009-10-23 03:27:25 -05:00
Slava Pestov 3394309659 Merge branch 'master' into new_gc 2009-10-22 05:40:57 -05:00
Joe Groff c3b8847936 update a bunch of alien-callbacks and alien-indirects to use c-type words 2009-10-21 21:10:11 -05:00
Joe Groff 7fac3682a6 update some naked alien-invokes to use c-type words 2009-10-21 18:44:00 -05:00
Joe Groff 8a6b0a1453 generate unsigned vector comparison fallbacks using min/max or xor/signed compare 2009-10-20 22:30:57 -05:00