Commit Graph

674 Commits (ed8c32989f0b269096c206f51a98eb88be8e5206)

Author SHA1 Message Date
Slava Pestov ed8c32989f compiler.cfg.representations: add peephole optimizations for integer comparisons 2010-05-03 17:34:11 -04:00
Slava Pestov 0f5d9974a0 compiler.cfg.representations: fix various bugs 2010-05-03 17:34:11 -04:00
Slava Pestov 456743a6ce compiler.cfg.representations: add more peephole optimizations to reduce fixnum tagging and untagging overhead 2010-05-03 17:34:11 -04:00
Slava Pestov a141df595b compiler.cfg.value-numbering: more cleanups 2010-05-03 17:34:10 -04:00
Slava Pestov ef8094e3b3 compiler.cfg.value-numbering: identify VNs with their representative vregs, eliminating the vn>vreg hash 2010-05-03 17:34:10 -04:00
Slava Pestov edaf59bf46 compiler.cfg.value-numbering: maintain a VN to instruction mapping. This eliminates all instances of expression inspection, allowing the auto-generated expression classes to be removed 2010-05-03 17:34:09 -04:00
Slava Pestov f548a08637 compiler.cfg.value-numbering: remove constant -vs- literal distinction 2010-05-03 17:34:09 -04:00
Slava Pestov 9cea3f2c93 compiler.cfg.ssa.liveness: remove unused pass 2010-05-03 17:34:08 -04:00
Slava Pestov 732f57f31d compiler.cfg.builder: fix unit tests 2010-05-03 17:34:08 -04:00
Slava Pestov f14f2cbdab compiler.cfg.value-numbering: merge 'simplify' pass into 'rewrite' 2010-05-03 17:34:08 -04:00
Slava Pestov 378c2b2a46 compiler.cfg: add ##load-memory and ##store-memory instructions implementing complex addressing modes, and associated value numbering optimizations 2010-05-03 17:34:07 -04:00
Slava Pestov b8d556514c compiler.cfg.value-numbering: add slot addressing rewrite rule to eliminate a redundant ##add-imm from array-nth and set-array-nth 2010-05-03 17:34:07 -04:00
Slava Pestov 2475699736 compiler.cfg: more flexible addressing for ##slot and ##set-slot 2010-05-03 17:34:06 -04:00
Slava Pestov 913b95192e compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm 2010-05-03 17:34:06 -04:00
Slava Pestov 279eb461b1 compiler.cfg: remove ##set-string-nth-fast instruction since it can be expressed just as efficiently using other instructions 2010-05-03 17:34:04 -04:00
Slava Pestov efd2a80d98 compiler.cfg.value-numbering: fix compile error 2010-05-03 17:34:04 -04:00
Slava Pestov e95cd256ec compiler.cfg.representations: peephole optimizations are used to simplify the case where the input to a ##shl-imm or ##sar-imm needs to be untagged 2010-05-03 17:34:03 -04:00
Slava Pestov 2ce926594d compiler.cfg.value-numbering: new optimizations; reassociation for shifts and redistribution for shifts/multiplies over additions/subtractions 2010-05-03 17:34:02 -04:00
Slava Pestov 2ca8d543f1 compiler.cfg.instructions: more typos 2010-05-03 17:34:02 -04:00
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
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 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
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
Slava Pestov eceabbc57e compiler: new set-special-object intrinsic; more efficient special-object intrinsic 2010-04-01 20:09:14 -04: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
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
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 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
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 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 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 c5c94ef1f9 compiler.cfg.intrinsics.simd: ignore dummy assert-positive word 2010-01-31 18:19:14 +13: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 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
Slava Pestov df4fb4a3ee Removing integers-as-sequences 2010-01-15 07:15:33 +13:00