Slava Pestov
d0c393aa60
compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO.
2009-08-08 20:02:56 -05:00
Slava Pestov
440b464ec1
compiler: more informative trace-compilation
2009-06-05 17:32:37 -05:00
Slava Pestov
f09b36424c
Code cleanup
2009-06-01 02:32:42 -05:00
Slava Pestov
692b479302
Split off local-optimization combinator into compiler.cfg.local, factor out CFG -> MR into compiler.cfg.mr, split off GC check insertion into a new compiler.cfg.gc-checks pass
2009-05-31 12:20:46 -05:00
Slava Pestov
e04df76f60
Various codegen improvements:
...
- new-insn word to construct instructions
- cache RPO in the CFG
- re-organize low-level optimizer so that MR is built after register allocation
- register allocation now stores instruction numbers in the instructions themselves
- split defs-vregs into defs-vregs and temp-vregs
2009-05-29 13:11:34 -05:00
Slava Pestov
fb6df472a2
Cleaning up USING: lists for new strict semantics
2009-05-14 16:54:16 -05:00
Slava Pestov
029d93a838
Make walker work better with call( and breakpoints which are nested inside combinators
2009-05-05 09:12:32 -05:00
Slava Pestov
e9e095f240
Rename enable/disable-compiler to enable/disable-optimizer, and add with-optimizer and without-optimizer combinators
2009-05-01 05:52:05 -05:00
Slava Pestov
deaea55d85
compiler: don't wrap non-inference errors in compile errors, since they indicate compiler bugs; just rethrow them. Add unit test for a PIC regression
2009-04-29 19:39:04 -05:00
Slava Pestov
5f6c074edd
Split up types.c/h into smaller files, remove optimized slot from F_WORD struct
2009-04-28 17:26:11 -05:00
Slava Pestov
5ff2c2e2bf
Don't compile predicate engines since there's no gain
2009-04-27 14:10:12 -05:00
Slava Pestov
7aa65b5b5f
Fixing new method dispatch implementation
2009-04-25 19:41:27 -05:00
Slava Pestov
d03b1eef01
Compile methods of generic words since the generic word itself doesn't get compiled
2009-04-24 20:54:30 -05:00
Slava Pestov
3dc9fdf9db
Fleshed out new dispatch code
2009-04-24 20:43:01 -05:00
Slava Pestov
5649cc7a0a
Compiler warnings are no more
2009-04-23 22:17:25 -05:00
Slava Pestov
24a22e233c
Clean up compiler vocab
2009-04-21 22:33:04 -05:00
Slava Pestov
a9b4a724a4
Remove "compiled-status" word prop and simplify associated machinery
2009-04-21 03:23:11 -05:00
Slava Pestov
f38d2f91f6
Words which didn't compile cannot be run at all
2009-04-20 22:05:41 -05:00
Slava Pestov
8414693142
stack-checker: trust word declarations instead of recursively checking them
2009-04-20 18:44:45 -05:00
Slava Pestov
0a5b076c11
Make the walker infer
2009-04-16 23:14:11 -05:00
Slava Pestov
c4be8bd65a
Refactor error code so that error types are registered; listener prints a summary of errors
2009-04-12 16:08:46 -05:00
Slava Pestov
0a7485190b
compile-error-type => source-error-type; make test failures global
2009-04-10 03:52:12 -05:00
Slava Pestov
6080c6e734
Fix stack effect redefinition
2009-03-22 20:16:31 -05:00
Slava Pestov
be4fb1e7d9
Move call( and execute( to core
2009-03-16 20:11:36 -05:00
Slava Pestov
0c77a3b3be
compiler: use call( instead of assert-depth
2009-03-16 06:27:01 -05:00
Slava Pestov
bf41b187b0
Re-organize code so that with-compilation-unit can infer
...
Fix with-compilation-unit to work in deployed code
2009-03-13 19:39:32 -05:00
Slava Pestov
2f85a1a9eb
Don't report inference warnings for inline words
2009-03-12 17:30:41 -05:00
Slava Pestov
65a53e1fa5
Don't keep compiled-effect around anymore
2009-02-23 23:55:16 -06:00
Slava Pestov
901bcccc1c
Fix remaining text failures
2009-02-23 23:25:13 -06:00
Slava Pestov
1951d739a0
Stack effect declarations are mandatory on all words now
...
define-temp now takes an effect parameter
Fix compiler bug that Dan found
Stricter enforcement of * effects
Move compile-call from compiler.units to compiler
2009-02-23 20:27:05 -06:00
Slava Pestov
60f36cd9c8
Update user-space code for modify-code-heap primitive change
2009-01-24 20:17:11 -06:00
Slava Pestov
a8d1459c08
Rename compiled slot of words to optimized, to reflect what it really means (all words are compiled)
2009-01-23 00:37:02 -06:00
Slava Pestov
4204fd495f
Move formatted stream output words to io.styles; they didn't belong in core, and this reduces deployed image size
2009-01-13 17:12:43 -06:00
Slava Pestov
4f0a9f311e
Untangling some dependencies
2008-12-08 14:58:00 -06:00
Slava Pestov
f0716b3a0d
1% image size reduction by not storing empty compiled-generic-uses and compiled-uses props
2008-11-22 22:46:57 -06:00
Slava Pestov
7fc13ef03c
dlists no longer have a length slot; tweak dlist code so that types infer better
2008-11-16 05:53:25 -06:00
Slava Pestov
9f52ee50b0
Another speedup to >alist: create vector with right size up-front. 10 second bootstrap time reduction
2008-11-12 00:10:50 -06:00
Slava Pestov
ed3a81a503
Faster M: hashtable >alist performs less dispatch and allocates less junk
2008-11-11 23:03:50 -06:00
Slava Pestov
3230e0010f
-trace-compilation command line switch
2008-11-03 01:19:20 -06:00
Slava Pestov
449c1191cc
Add another debug var
2008-11-02 23:25:42 -06:00
Slava Pestov
db4db19cd9
Start working on coalescing
2008-10-28 02:38:37 -07:00
Slava Pestov
1f693b50b3
Massive focused action
2008-10-22 18:39:41 -05:00
Slava Pestov
c0d89b061e
Fixing register allocator prspilling
2008-10-19 01:10:21 -05:00
Slava Pestov
8eacd0e58b
Add compile-dependencies? flag, can be switched off for debugging
2008-10-12 17:37:42 -05:00
Slava Pestov
67dd303d27
Fix excess recompilation
2008-10-10 02:33:07 -05:00
Slava Pestov
e69278b8fc
Merging in new codegen
2008-10-07 16:17:55 -05:00
Slava Pestov
c19f2257f4
Fix permission bits
2008-10-02 08:34:49 -05:00
Slava Pestov
cf80dd122a
Updating code for make and fry changes
2008-09-10 22:11:40 -05:00
Slava Pestov
6d506b89e8
Image size reduction
2008-09-03 18:23:48 -05:00
Slava Pestov
f5fbd94a4c
New compiled crossref implementation
2008-08-31 01:34:00 -05:00