I am reading the source code, and get a question,

In SDCCmain.c, the call of yyparse() seems to do the syntax analysis, and generates a AST tree.

But where are the "iCode Generating", "live analysis", "register allocation", and other optimizations called?

Do they each has an entrance function? Which are  ?

How to reach to these functions from the main function step by step?

Which variable holds the generated iCode list ?

Does all optimizations are performed on the iCode list?