| 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 |