-
Notifications
You must be signed in to change notification settings - Fork 0
Passes
Alexander Bernauer edited this page Jan 3, 2011
·
1 revision
- merge: merge all input source files into one source file. This is necessary because the compiler needs to see the whole program in order to perform the required static anlaysis.
- blocking functions: determine the set of blocking functions by parsing the platform configuration file
- start routines: determine the set of the start routines.
- call graph: calculate the call graph of the program.
- critical functions: determine the set of critical functions.
- goto transformation: transform the body of each critical function into a goto program.
- control flow transformation: transform the T-Code control flow into the equivalent E-code control flow
- T-stack: determine the set of states which have to be preserved across non-blocking operations and generate the corresponding T-stacks.
- data flow transformation: rewrite access to automatic variables with access to T-stack variables where necessary
- pretty printing: output the resulting E-code
- compiling: compile the E-code.
- linking: link the E-code against the PAL and the runtime environment.