What are the stages of C compilation?
C compilation goes through several stages. For clang
, the C compiler on my machine, these are:
+----+ +----+ +-----+ +---------+ +----+ +----+ +-----------+
| .c |--cpp-->| .i |--parser-->| AST |--??-->| LLVM IR |--??-->| .s |--as-->| .o |--ld-->| a.out/.so |
+----+ +----+ +-----+ +---------+ +----+ +----+ +-----------+
- Take
main.c
, preprocess to produce tokens (a.i
file). This is done by the C preprocessor,cpp
. - Take tokens, parse into AST.
- Take AST, produce LLVM IR (“Intermediate Representation”).
- Take LLVM IR, produce assembly (a
.s
file). - Take assembly, produce object file (a
.o
file). This is done by the assembler,as
. - Take object file, produce executable (
a.out
) or dynamic library (.so
).
I’ll cover these stages in future posts.
Tagged . All content copyright James Fisher 2017. This post is not associated with my employer.