Therefore, changes can be made to one pass without affecting the functionality of other passes. Furthermore, passes can be inserted into the pipeline to try new optimizations. The compiler analysis is stored as annotations in the intermediate language and can be saved as an ANSI C program with the annotations saved as comments. The hierarchical program dependence graph, or HPDG, represents the data and control dependences which define available parallelism. The cost model provides execution parameters which indicate where parallelism can be efficiently exploited.
Parallel annotations guide the outlining pass, which extracts code to form threads.
Finally, the Pica backend generates parallel multithreaded code specific to the Pica architecture .