Commit Graph

688 Commits (ffd1844d5298b52d1df05389ec4f26f23e6274bd)

Author SHA1 Message Date
Slava Pestov ffd1844d52 compiler.cfg.linear-scan: clean up spill slot assignment 2010-05-03 17:34:24 -04:00
Slava Pestov 65f86bfce7 compiler.cfg.ssa.detruction: coalesce different representations in more cases 2010-05-03 17:34:22 -04:00
Slava Pestov ce73031ec3 compiler.cfg.alias-analysis: write unit tests and fix redundant store elimination 2010-05-03 17:34:22 -04:00
Slava Pestov 33eb15bf44 compiler.cfg.debugger: clean up and make it more flexible 2010-05-03 17:34:22 -04:00
Slava Pestov 43f269e4eb Register allocation now uses SSA properties to coalesce values with different representations 2010-05-03 17:34:20 -04:00
Slava Pestov 9b34a4a054 compiler.cfg: remove unused 'reps' slot from compiler.cfg, and re-organize things in preparation for SSA register allocation 2010-05-03 17:34:18 -04:00
Slava Pestov 43fc230c69 compiler.cfg.linear-scan: cleanups 2010-05-03 17:34:18 -04:00
Slava Pestov d23bb19b55 Code cleanups 2010-05-03 17:34:17 -04:00
Slava Pestov c55a6bb385 compiler.cfg.gc-checks: move phi instructions into GC check block, to ensure correct behavior 2010-05-03 17:34:17 -04:00
Slava Pestov 95ff5ffe51 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov db7403d697 compiler.cfg.linear-scan.resolve: fix incorrect behavior when one physical register is used with several representations in the same register class 2010-05-03 17:34:14 -04:00
Slava Pestov 51b13ce373 compiler.cfg.linear-scan: don't insert a _reload if the register is going to be overwritten anyway 2010-05-03 17:34:14 -04:00
Slava Pestov a9ccfa8f05 strings: move string-nth primitive out of the VM and into the library 2010-05-03 17:34:12 -04:00
Slava Pestov 458fd007be compiler.cfg.representations: simplify a little 2010-05-03 17:34:11 -04:00
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