# Questions about Julia Compilation Optimization Levels

**URL:** <https://discourse.julialang.org/t/questions-about-julia-compilation-optimization-levels/11296>\
**Category:** Performance\
**Created:** [May 31, 2018, 5:25pm UTC](https://discourse.julialang.org/t/questions-about-julia-compilation-optimization-levels/11296 "2018-05-31T17:25:50Z")\
**Posts on this page:** 1\
**Showing post:** 4

<div class="post-metadata">

**Author:** ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)\
**Post date:** [March 19, 2020, 4:15pm UTC](https://discourse.julialang.org/t/questions-about-julia-compilation-optimization-levels/11296/4 "2020-03-19T16:15:38Z")

</div>

In Julia 1.3.1, the LLVM optimization passes are listed in [jitlayers.cpp](https://github.com/JuliaLang/julia/blob/v1.3.1/src/jitlayers.cpp), while on master they’re given in [aotcompile.cpp](https://github.com/JuliaLang/julia/blob/master/src/aotcompile.cpp).

Basically the only difference between `-O2` and `-O3` as far as I can tell is that `-O3` adds a basic alias analysis pass.

`-O2` is the default.

---

_[View the full topic](https://discourse.julialang.org/t/questions-about-julia-compilation-optimization-levels/11296)._
