I\'m primarily interested in popular and widely used compilers, such as gcc. But if things are done differently with different compilers, I\'d like to know that, too.
Visual C++ has a switch to output assembly code, so I think it generates assembly code before outputting machine code.