Index: src/CodeGen/CodeGenerator.cc
===================================================================
--- src/CodeGen/CodeGenerator.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/CodeGenerator.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -14,26 +14,24 @@
 //
 
-#include <algorithm>
-#include <iostream>
-#include <cassert>
-#include <list>
-
-#include "Parser/ParseNode.h"
-
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Initializer.h"
-#include "SynTree/Statement.h"
-#include "SynTree/Type.h"
-#include "SynTree/Attribute.h"
-
-#include "Common/utility.h"
-#include "Common/UnimplementedError.h"
+#include <cassert>                   // for assert, assertf
+#include <list>                      // for _List_iterator, list, list<>::it...
 
 #include "CodeGenerator.h"
-#include "OperatorTable.h"
-#include "GenType.h"
-
-#include "InitTweak/InitTweak.h"
+#include "Common/SemanticError.h"    // for SemanticError
+#include "Common/UniqueName.h"       // for UniqueName
+#include "Common/utility.h"          // for CodeLocation, toString
+#include "GenType.h"                 // for genType
+#include "InitTweak/InitTweak.h"     // for getPointerBase
+#include "OperatorTable.h"           // for OperatorInfo, operatorLookup
+#include "Parser/LinkageSpec.h"      // for Spec, Intrinsic
+#include "SynTree/Attribute.h"       // for Attribute
+#include "SynTree/BaseSyntaxNode.h"  // for BaseSyntaxNode
+#include "SynTree/Constant.h"        // for Constant
+#include "SynTree/Declaration.h"     // for DeclarationWithType, TypeDecl
+#include "SynTree/Expression.h"      // for Expression, UntypedExpr, Applica...
+#include "SynTree/Initializer.h"     // for Initializer, ListInit, Designation
+#include "SynTree/Label.h"           // for Label, operator<<
+#include "SynTree/Statement.h"       // for Statement, AsmStmt, BranchStmt
+#include "SynTree/Type.h"            // for Type, Type::StorageClasses, Func...
 
 using namespace std;
Index: src/CodeGen/CodeGenerator.h
===================================================================
--- src/CodeGen/CodeGenerator.h	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/CodeGenerator.h	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -17,13 +17,11 @@
 #define CODEGENV_H
 
-#include <list>
+#include <list>                   // for list
+#include <ostream>                // for ostream, operator<<
+#include <string>                 // for string
 
-#include "SynTree/Declaration.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Visitor.h"
-
-#include "SymTab/Indexer.h"
-
-#include "Common/utility.h"
+#include "SynTree/Declaration.h"  // for DeclarationWithType (ptr only), Fun...
+#include "SynTree/Visitor.h"      // for Visitor
+#include "SynTree/SynTree.h"      // for Visitor Nodes
 
 namespace CodeGen {
Index: src/CodeGen/FixMain.cc
===================================================================
--- src/CodeGen/FixMain.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/FixMain.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -5,30 +5,33 @@
 // file "LICENCE" distributed with Cforall.
 //
-// FixMain.cc -- 
+// FixMain.cc --
 //
 // Author           : Thierry Delisle
 // Created On       : Thr Jan 12 14:11:09 2017
-// Last Modified By : 
-// Last Modified On : 
+// Last Modified By :
+// Last Modified On :
 // Update Count     : 0
 //
 
 
-#include "FixMain.h"	
+#include "FixMain.h"
 
-#include <fstream>
-#include <iostream>
+#include <cassert>                 // for assert, assertf
+#include <fstream>                 // for operator<<, basic_ostream::operator<<
+#include <list>                    // for list
+#include <string>                  // for operator<<
 
-#include "Common/SemanticError.h"
-#include "SynTree/Declaration.h"
+#include "Common/SemanticError.h"  // for SemanticError
+#include "SynTree/Declaration.h"   // for FunctionDecl, operator<<
+#include "SynTree/Type.h"          // for FunctionType
 
 namespace CodeGen {
 	bool FixMain::replace_main = false;
 	std::unique_ptr<FunctionDecl> FixMain::main_signature = nullptr;
-	
-	void FixMain::registerMain(FunctionDecl* functionDecl) 
+
+	void FixMain::registerMain(FunctionDecl* functionDecl)
 	{
-		if(main_signature) { 
-			throw SemanticError("Multiple definition of main routine\n", functionDecl); 
+		if(main_signature) {
+			throw SemanticError("Multiple definition of main routine\n", functionDecl);
 		}
 		main_signature.reset( functionDecl->clone() );
Index: src/CodeGen/FixNames.cc
===================================================================
--- src/CodeGen/FixNames.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/FixNames.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -14,13 +14,20 @@
 //
 
-#include <memory>
+#include "FixNames.h"
 
-#include "FixNames.h"
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Visitor.h"
-#include "SymTab/Mangler.h"
-#include "OperatorTable.h"
-#include "FixMain.h"
+#include <memory>                  // for unique_ptr
+#include <string>                  // for string, operator!=, operator==
+
+#include "Common/SemanticError.h"  // for SemanticError
+#include "FixMain.h"               // for FixMain
+#include "Parser/LinkageSpec.h"    // for Cforall, isMangled
+#include "SymTab/Mangler.h"        // for Mangler
+#include "SynTree/Constant.h"      // for Constant
+#include "SynTree/Declaration.h"   // for FunctionDecl, ObjectDecl, Declarat...
+#include "SynTree/Expression.h"    // for ConstantExpr
+#include "SynTree/Label.h"         // for Label, noLabels
+#include "SynTree/Statement.h"     // for ReturnStmt, CompoundStmt
+#include "SynTree/Type.h"          // for Type, BasicType, Type::Qualifiers
+#include "SynTree/Visitor.h"       // for Visitor, acceptAll
 
 namespace CodeGen {
@@ -42,5 +49,5 @@
 																   main_type = new FunctionType( Type::Qualifiers(), true ), nullptr )
 				};
-		main_type->get_returnVals().push_back( 
+		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
@@ -52,18 +59,18 @@
 	std::string mangle_main_args() {
 		FunctionType* main_type;
-		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall, 
+		std::unique_ptr<FunctionDecl> mainDecl { new FunctionDecl( "main", Type::StorageClasses(), LinkageSpec::Cforall,
 																   main_type = new FunctionType( Type::Qualifiers(), false ), nullptr )
 				};
-		main_type->get_returnVals().push_back( 
+		main_type->get_returnVals().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		mainDecl->get_functionType()->get_parameters().push_back( 
+		mainDecl->get_functionType()->get_parameters().push_back(
 			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, new BasicType( Type::Qualifiers(), BasicType::SignedInt ), nullptr )
 		);
 
-		mainDecl->get_functionType()->get_parameters().push_back( 
-			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0, 
-			new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ), 
+		mainDecl->get_functionType()->get_parameters().push_back(
+			new ObjectDecl( "", Type::StorageClasses(), LinkageSpec::Cforall, 0,
+			new PointerType( Type::Qualifiers(), new PointerType( Type::Qualifiers(), new BasicType( Type::Qualifiers(), BasicType::Char ) ) ),
 			nullptr )
 		);
@@ -75,6 +82,6 @@
 
 	bool is_main(const std::string& name) {
-		static std::string mains[] = { 
-			mangle_main(), 
+		static std::string mains[] = {
+			mangle_main(),
 			mangle_main_args()
 		};
@@ -112,5 +119,5 @@
 			int nargs = functionDecl->get_functionType()->get_parameters().size();
 			if( !(nargs == 0 || nargs == 2 || nargs == 3) ) {
-				throw SemanticError("Main expected to have 0, 2 or 3 arguments\n", functionDecl); 
+				throw SemanticError("Main expected to have 0, 2 or 3 arguments\n", functionDecl);
 			}
 			functionDecl->get_statements()->get_kids().push_back( new ReturnStmt( noLabels, new ConstantExpr( Constant::from_int( 0 ) ) ) );
Index: src/CodeGen/FixNames.h
===================================================================
--- src/CodeGen/FixNames.h	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/FixNames.h	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -17,5 +17,7 @@
 #define FIXNAMES_H
 
-#include "SynTree/SynTree.h"
+#include <list>  // for list
+
+class Declaration;
 
 namespace CodeGen {
Index: src/CodeGen/GenType.cc
===================================================================
--- src/CodeGen/GenType.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/GenType.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -14,14 +14,14 @@
 //
 
-#include <sstream>
-#include <cassert>
-
+#include <cassert>                // for assert, assertf
+#include <list>                   // for _List_iterator, _List_const_iterator
+#include <sstream>                // for operator<<, ostringstream, basic_os...
+
+#include "CodeGenerator.h"        // for CodeGenerator
 #include "GenType.h"
-#include "CodeGenerator.h"
-
-#include "SynTree/Declaration.h"
-#include "SynTree/Expression.h"
-#include "SynTree/Type.h"
-#include "SynTree/Visitor.h"
+#include "SynTree/Declaration.h"  // for DeclarationWithType
+#include "SynTree/Expression.h"   // for Expression
+#include "SynTree/Type.h"         // for PointerType, Type, FunctionType
+#include "SynTree/Visitor.h"      // for Visitor
 
 namespace CodeGen {
Index: src/CodeGen/GenType.h
===================================================================
--- src/CodeGen/GenType.h	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/GenType.h	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -17,6 +17,7 @@
 #define _GENTYPE_H
 
-#include <string>
-#include "SynTree/SynTree.h"
+#include <string>  // for string
+
+class Type;
 
 namespace CodeGen {
Index: src/CodeGen/Generate.cc
===================================================================
--- src/CodeGen/Generate.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/Generate.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -14,17 +14,15 @@
 //
 
-#include <algorithm>
-#include <iostream>
-#include <cassert>
-#include <list>
+#include <iostream>                  // for ostream, endl, operator<<
+#include <list>                      // for list
+#include <string>                    // for operator<<
 
+#include "CodeGenerator.h"           // for CodeGenerator, doSemicolon, oper...
+#include "GenType.h"                 // for genPrettyType
 #include "Generate.h"
-#include "SynTree/Declaration.h"
-#include "CodeGenerator.h"
-#include "GenType.h"
-#include "SynTree/SynTree.h"
-#include "SynTree/Type.h"
-#include "SynTree/BaseSyntaxNode.h"
-// #include "Tuples/Tuples.h"
+#include "Parser/LinkageSpec.h"      // for isBuiltin, isGeneratable
+#include "SynTree/BaseSyntaxNode.h"  // for BaseSyntaxNode
+#include "SynTree/Declaration.h"     // for Declaration
+#include "SynTree/Type.h"            // for Type
 
 using namespace std;
Index: src/CodeGen/Generate.h
===================================================================
--- src/CodeGen/Generate.h	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/Generate.h	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -17,8 +17,9 @@
 #define GENERATE_H
 
-#include <list>
-#include <iostream>
+#include <iostream>  // for ostream
+#include <list>      // for list
 
-#include "SynTree/SynTree.h"
+class BaseSyntaxNode;
+class Declaration;
 
 namespace CodeGen {
Index: src/CodeGen/OperatorTable.cc
===================================================================
--- src/CodeGen/OperatorTable.cc	(revision a12d5aaf574b9eda122e096ee19ea16b8f778731)
+++ src/CodeGen/OperatorTable.cc	(revision 76f2bdcba409d316203f6a3b116e030bcbcae755)
@@ -14,5 +14,7 @@
 //
 
-#include <map>
+#include <map>      // for map, _Rb_tree_const_iterator, map<>::const_iterator
+#include <utility>  // for pair
+
 #include "OperatorTable.h"
 
