Index: src/compiler/STYLE |
diff --git a/src/compiler/STYLE b/src/compiler/STYLE |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ae41e3f989feafa2e1d570eb8b4012c283722a08 |
--- /dev/null |
+++ b/src/compiler/STYLE |
@@ -0,0 +1,29 @@ |
+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 |