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