@@ -86,11 +86,11 @@ Terminology
8686 on how the code behaves. Generally speaking, undefined behavior is a bug in
8787 the user's code. However, it can also be a place for the compiler to define
8888 the behavior, called an extension.
89- * Optimizer -- the part of the compiler responsible for transforming user code
90- into faster user code, without changing the semantics of how the code behaves.
91- Note, the optimizer assumes the code has no undefined behavior, so if the code
92- does contain undefined behavior, it will often behave differently depending on
93- which optimization level is enabled.
89+ * Optimizer -- the part of the compiler responsible for transforming code to
90+ have better performance characteristics without changing the semantics of how
91+ the code behaves. Note, the optimizer assumes the code has no undefined
92+ behavior, so if the code does contain undefined behavior, it will often behave
93+ differently depending on which optimization level is enabled.
9494* Frontend -- the Lexer, Preprocessor, Parser, and Sema parts of the compiler.
9595* Middle-end -- converts the AST into LLVM IR, adds debug information, etc.
9696* Backend -- the parts of the compiler which run after LLVM IR code generation,
0 commit comments