blob: a24de79b8aa05bd8c95a17720729f3cdaf3a91e7 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
phase name id description
---------- -- -----------
parser 1 parse source into ASTs, perform simple desugaring
namer 2 resolve names, attach symbols to named trees
packageobjects 3 load package objects
typer 4 the meat and potatoes: type the trees
extmethods 5 add extension methods for inline classes
superaccessors 6 add super accessors in traits and nested classes
pickler 7 serialize symbol tables
refchecks 8 reference/override checking, translate nested objects
liftcode 9 reify trees
uncurry 10 uncurry, translate function values to anonymous classes
tailcalls 11 replace tail calls by jumps
specialize 12 @specialized-driven class and method specialization
explicitouter 13 this refs to outer pointers, translate patterns
erasure 14 erase types, add interfaces for traits
lazyvals 15 allocate bitmaps, translate lazy vals into lazified defs
lambdalift 16 move nested functions to top level
constructors 17 move field definitions into constructors
flatten 18 eliminate inner classes
mixin 19 mixin composition
cleanup 20 platform-specific cleanups, generate reflective calls
icode 21 generate portable intermediate code
inliner 22 optimization: do inlining
inlineExceptionHandlers 23 optimization: inline exception handlers
closelim 24 optimization: eliminate uncalled closures
dce 25 optimization: eliminate dead code
jvm 26 generate JVM bytecode
terminal 27 The last phase in the compiler chain
|