Compilation with different emit targets

I suddenly found out, that, if you run rustc with --emit=dep-info, it doesn't perform any typechecking (or, at least, doesn't provide any errors). This led me to question: what steps exactly are performed by the compiler for each --emit parameter value?