# Compiler stages

**URL:** <https://forum.crystal-lang.org/t/compiler-stages/5013>\
**Category:** Help & Support\
**Created:** [October 12, 2022, 10:46pm UTC](https://forum.crystal-lang.org/t/compiler-stages/5013 "2022-10-12T22:46:32Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![straight-shoota](https://yyz2.discourse-cdn.com/flex036/user_avatar/forum.crystal-lang.org/straight-shoota/32/36_2.png) [@straight-shoota](https://forum.crystal-lang.org/u/straight-shoota)\
**Post date:** [October 12, 2022, 11:31pm UTC](https://forum.crystal-lang.org/t/compiler-stages/5013/2 "2022-10-12T23:31:13Z")

</div>

With the `--stats` flag you get the stages information in a list view so it doesn’t run away under your eyes because the compiler blasts through most of them quickly.

The codegen phase consists of three stages:

- crystal: the compiler builds the LLVM IR
- bc+obj: LLVM compiles the IR into byte/object code
- linking: the linker links the generated code with libraries into the final executable

---

_[View the full topic](https://forum.crystal-lang.org/t/compiler-stages/5013)._
