blob: 6f253f5de19aba16554cc8ed848e3c14365edfad (
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
|
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
superaccessors 5 add super accessors in traits and nested classes
pickler 6 serialize symbol tables
refchecks 7 reference/override checking, translate nested objects
uncurry 8 uncurry, translate function values to anonymous classes
tailcalls 9 replace tail calls by jumps
specialize 10 @specialized-driven class and method specialization
explicitouter 11 this refs to outer pointers, translate patterns
erasure 12 erase types, add interfaces for traits
lazyvals 13 allocate bitmaps, translate lazy vals into lazified defs
lambdalift 14 move nested functions to top level
constructors 15 move field definitions into constructors
flatten 16 eliminate inner classes
mixin 17 mixin composition
cleanup 18 platform-specific cleanups, generate reflective calls
icode 19 generate portable intermediate code
inliner 20 optimization: do inlining
inlineExceptionHandlers 21 optimization: inline exception handlers
closelim 22 optimization: eliminate uncalled closures
dce 23 optimization: eliminate dead code
jvm 24 generate JVM bytecode
terminal 25 The last phase in the compiler chain
|