Compiler Coding Style
|
=====================
|
|
Coding style for the TurboFan compiler generally follows the Google C++ Style
|
Guide and the Chromium Coding Style. The notes below are usually just extensions
|
beyond what the Google style guide already says. If this document doesn't
|
mention a rule, follow the Google C++ style.
|
|
|
TODOs
|
-----
|
We use the following convention for putting TODOs into the code:
|
|
* A TODO(turbofan) implies a performance improvement opportunity.
|
* A TODO(name) implies an incomplete implementation.
|
|
|
Use of C++11 auto keyword
|
-------------------------
|
Use auto to avoid type names that are just clutter. Continue to use manifest
|
type declarations when it helps readability, and never use auto for anything
|
but local variables, in particular auto should only be used where it is obvious
|
from context what the type is:
|
|
for (auto block : x->blocks()) // clearly a Block of some kind
|
for (auto instr : x->instructions()) // clearly an Instruction of some kind
|
|
for (auto b : x->predecessors()) // less clear, better to make it explicit
|
for (BasicBlock* b : x->predecessors()) // now clear
|