Slava Pestov
4e55cd973b
If a #dispatch branch is a call to another word which is not an intrinsic, we avoid generating the dispatch branch and just jump to the word directly
2008-11-06 11:48:55 -06:00
Slava Pestov
9366ad650d
Add unportable tag
2008-11-06 09:29:21 -06:00
Slava Pestov
64cbf619a9
Add more algebraic simplifications: comparison of a comparison, comparison where first is immediate
2008-11-06 09:27:52 -06:00
Slava Pestov
1c1333fbe9
Compile not and >boolean as branchless intrinsics by having the CFG builder detect certain code patterns
2008-11-06 09:09:21 -06:00
sheeple
d2ec46e38f
PowerPC backend almost functional; some new compiler unit tests added,
...
better compilation of 'f eq?'; f becomes an immediate operand
move aux-offset to compiler.constants
2008-11-06 06:27:27 -06:00
Slava Pestov
7741096bff
Tweak PPC register usage; gcc doesn't like it when you mess with r31 for some reason
2008-11-06 03:36:46 -06:00
Slava Pestov
6f432811f5
Fix mirrors
2008-11-06 02:52:54 -06:00
Slava Pestov
29279f305e
Fix 32-bit bootstrap
2008-11-06 01:58:07 -06:00
Slava Pestov
5def7c5dea
Don't load random number generator on bootstrap
2008-11-06 01:30:59 -06:00
Slava Pestov
53cd75b06c
Add string-nth intrinsic
2008-11-06 01:11:28 -06:00
Slava Pestov
bfd119e3b5
I/O ricing: various hints added so that UTF8 and ASCII fastpaths compile with less dispatch. 25% improvement on reverse-complement
2008-11-06 00:02:44 -06:00
Slava Pestov
be798dd5e9
We need to internalize tuple layouts in bootstrap, but since they're arrays we have to use a predicate class to detect them
2008-11-06 00:01:50 -06:00
Slava Pestov
cc879fa9b7
Tuple layouts are now arrays, instead of built-in types. The superclass
...
array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode.
2008-11-05 22:20:29 -06:00
Slava Pestov
fbb958da82
Fix lambda-method forget
2008-11-05 18:59:58 -06:00
Slava Pestov
4fd1767768
Old fix for classes-intersect? no-method bug was incorrect; we were
...
ignoring anonymous classes in compiled-generic-crossref. Also,
forget* now calls reset-word so that references to predicates of
forgotten classes don't break the compiler with a similar error.
2008-11-05 18:32:02 -06:00
Slava Pestov
7f59942219
Change title to be more consistent
2008-11-05 04:28:13 -06:00
Slava Pestov
affb48a067
Fix docs
2008-11-05 04:27:12 -06:00
Slava Pestov
2239f4fb99
More work on PowerPC backend; change register usage, free up some more integer and float regs (untested)
2008-11-05 04:20:35 -06:00
Slava Pestov
7aa530c64e
Fix ABOUT: docs
2008-11-05 04:16:15 -06:00
Slava Pestov
dae41147fe
%bignum>integer now takes a temporary register since this is useful on both x86 and ppc
2008-11-05 04:16:08 -06:00
Slava Pestov
8b7c47a68b
Clean up x86 backend: move cpu.x86.architecture to cpu.x86, use branchless arithmetic in some intrinsics
2008-11-05 04:15:48 -06:00
Slava Pestov
10d3b4a55d
New PPC backend (untested)
2008-11-05 00:31:08 -06:00
Slava Pestov
c8521ad826
Add tool to dump live intervals
2008-11-04 17:23:20 -06:00
Slava Pestov
22f11f24c9
Move simple-table. to prettyprint since its generally useful and not specific to tools.time
2008-11-04 17:23:08 -06:00
Slava Pestov
d8345b5eda
Update PPC non-optimizing compiler backend: there are three new sub-primitives to support
2008-11-04 06:07:19 -06:00
Slava Pestov
46830bb38d
Fix another name clash in tests; putting all compiler tests in compiler.tests vocab is probably not good
2008-11-04 00:46:06 -06:00
Slava Pestov
4a37bcb757
Strip out remake-generics-hook, since otherwise it slurps in a lot of meta-programming machinery, increasing deployed image size by about 200kb for hello-world
2008-11-04 00:36:16 -06:00
Slava Pestov
1af3b8ed65
If a register is spilled and the reload location is also a copy, we chicken out and don't coalesce. This is suboptimal but it's not clear to me how to implement it cleanly, and SSA graph coloring will solve this problem eventually anyway
2008-11-04 00:32:56 -06:00
Slava Pestov
efcb916e35
Handle a jump to a jump by cloning the block, in the same way we optimize jumps to returns
2008-11-03 21:02:34 -06:00
Slava Pestov
3e75e0f8b5
Update word naming conventions
2008-11-03 21:00:27 -06:00
Slava Pestov
06b99c31ee
Fix regression. If a parsing word called the compiler, it might compile a caller of a generic before the generic gets built, which would throw an error since the inferred effect of the generic might have less inputs than the combination's dispatch#
2008-11-03 20:59:48 -06:00
Slava Pestov
dc85ed3d56
Fix help lint: links to obsolete article
2008-11-03 08:08:28 -06:00
Slava Pestov
82e9eedd39
Forgot about float= intrinsic
2008-11-03 07:15:09 -06:00
Slava Pestov
75e9708488
Oops
2008-11-03 06:50:59 -06:00
Slava Pestov
e6f6cd5d93
Fix USING: -- you can now make ppc images, they just don't work yet
2008-11-03 06:40:14 -06:00
Slava Pestov
b649c01de6
Fix name clash with templates.factor
2008-11-03 06:34:56 -06:00
Slava Pestov
59f4f25b91
Loop alignment: appears to be a small win for reverse-complement
2008-11-03 06:20:51 -06:00
Slava Pestov
cdb5c30bd3
Only build a generic word once, even if a compilation unit defines several methods on it, by adding generics to a set and building them at the end. 25% improvement on bootstrap time
2008-11-03 03:51:28 -06:00
Slava Pestov
2445a83cb9
Clean up recursive-state usage
2008-11-03 03:06:11 -06:00
Slava Pestov
0250d7c1d2
Forgot a drop in unit test
2008-11-03 01:53:27 -06:00
Slava Pestov
08b277e892
Fix alias anlaysis bug: result of ##box-alien and ##box-float did not get an AC, so calling hi-tag would not compile
2008-11-03 01:52:55 -06:00
Slava Pestov
3230e0010f
-trace-compilation command line switch
2008-11-03 01:19:20 -06:00
Slava Pestov
7f3282bb39
Better error reporting
2008-11-03 01:19:06 -06:00
Slava Pestov
f253e74942
Inline subprimitives in optimizing compiler
2008-11-03 01:18:54 -06:00
Slava Pestov
44a2499c17
fixnum-shift-fast and fixnum-mod subprimitives
2008-11-03 01:18:35 -06:00
Slava Pestov
dd20b39cd6
fixnum-shift-fast subprimitive
2008-11-03 00:03:39 -06:00
Slava Pestov
1aefde994f
Cleanup
2008-11-03 00:03:22 -06:00
Slava Pestov
0d83873174
Fix regression
2008-11-03 00:03:15 -06:00
Slava Pestov
abb02f1784
Flesh out shift instructions
2008-11-03 00:03:00 -06:00
Slava Pestov
449c1191cc
Add another debug var
2008-11-02 23:25:42 -06:00