Commit Graph

1278 Commits (e2f164a52f9fe982451ac57abdb8c60e29576f26)

Author SHA1 Message Date
Slava Pestov e2f164a52f compiler.cfg: cleanup 2010-05-03 17:34:26 -04:00
Slava Pestov d8fc595383 compiler.cfg: clean up ##phi literals in tests 2010-05-03 17:34:24 -04:00
Slava Pestov 460f163014 compiler.cfg.linear-scan: clean up spill slot assignment 2010-05-03 17:34:24 -04:00
Slava Pestov ad55659485 compiler.cfg.ssa.detruction: coalesce different representations in more cases 2010-05-03 17:34:22 -04:00
Slava Pestov c35eba5e34 compiler.cfg.alias-analysis: write unit tests and fix redundant store elimination 2010-05-03 17:34:22 -04:00
Slava Pestov ee890ed1cc compiler.cfg.debugger: clean up and make it more flexible 2010-05-03 17:34:22 -04:00
Slava Pestov 8849e370ca Register allocation now uses SSA properties to coalesce values with different representations 2010-05-03 17:34:20 -04:00
Slava Pestov 16566506f1 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 d38dbdabce compiler.cfg.linear-scan: cleanups 2010-05-03 17:34:18 -04:00
Slava Pestov 03bd160f08 Code cleanups 2010-05-03 17:34:17 -04:00
Slava Pestov 813eabadc6 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 fc7a1ad8b3 New GC checks work in progress 2010-05-03 17:34:16 -04:00
Slava Pestov 9b770c09fb compiler.tree.propagation: fix tests 2010-05-03 17:34:14 -04:00
Slava Pestov 6f28468e6d compiler.codegen: cleanup 2010-05-03 17:34:14 -04:00
Slava Pestov e4ce0d92f2 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 6b3aeeb414 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 fd84bb98bc strings: move string-nth primitive out of the VM and into the library 2010-05-03 17:34:12 -04:00
Slava Pestov 73c34341d7 compiler.cfg.representations: simplify a little 2010-05-03 17:34:11 -04:00
Slava Pestov 808be63c07 compiler.cfg.representations: add peephole optimizations for integer comparisons 2010-05-03 17:34:11 -04:00
Slava Pestov 8af111577c compiler.cfg.representations: fix various bugs 2010-05-03 17:34:11 -04:00
Slava Pestov 9b130730b6 compiler.cfg.representations: add more peephole optimizations to reduce fixnum tagging and untagging overhead 2010-05-03 17:34:11 -04:00
Slava Pestov 31cd3ff574 compiler.cfg.value-numbering: more cleanups 2010-05-03 17:34:10 -04:00
Slava Pestov 7982a3f92e 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 a4c5525a56 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 2764cc81e2 compiler.cfg.value-numbering: remove constant -vs- literal distinction 2010-05-03 17:34:09 -04:00
Slava Pestov c400c7e78a compiler.cfg.ssa.liveness: remove unused pass 2010-05-03 17:34:08 -04:00
Slava Pestov b9e27d1c82 compiler.cfg.builder: fix unit tests 2010-05-03 17:34:08 -04:00
Slava Pestov 2b50b9b315 compiler.cfg.value-numbering: merge 'simplify' pass into 'rewrite' 2010-05-03 17:34:08 -04:00
Slava Pestov 80c8a7154d 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 505b34a611 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 59fe281799 compiler.cfg: more flexible addressing for ##slot and ##set-slot 2010-05-03 17:34:06 -04:00
Slava Pestov becd957d29 compiler.cfg: merge all alien accessors into ##load-memory-imm and ##store-memory-imm 2010-05-03 17:34:06 -04:00
Slava Pestov 3c965afd10 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 65e35b842f compiler.tests.low-level-ir: update for recent changes 2010-05-03 17:34:04 -04:00
Slava Pestov 12907654d5 compiler.cfg.value-numbering: fix compile error 2010-05-03 17:34:04 -04:00
Slava Pestov c94666073b 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 6403572286 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 f000bb4bd5 compiler.cfg.instructions: more typos 2010-05-03 17:34:02 -04:00
Slava Pestov 80558a93fa Debugging untagged fixnums 2010-05-03 17:34:02 -04:00
Slava Pestov 6fdcd9fb02 Untagged fixnums work in progress 2010-05-03 17:34:02 -04:00
Slava Pestov 19412e4ad1 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 d44e470416 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 5aecd92c37 C-ENUM: -> ENUM: 2010-04-19 20:07:16 -07: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 dbd7489894 compiler.cfg: fix some bugs introduced by the ##compare-imm fusion patch 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 c4cf2a4085 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
Slava Pestov 05dba2ba81 sequences: remove stupid <flat-slice> word 2010-04-17 00:58:30 -05:00
Slava Pestov 07d6a1f20f compiler.tree.propagation: fix scalability issue with constraints 2010-04-14 17:19:26 -07:00