The disadvantage of compiling in a single pass is that it is not possible to perform many of the sophisticated optimizations needed to generate high quality code.
The front end verifies syntax and semantics according to a specific source language.