From 6833b3c2c8d72f7df525f7d12b491bc6a3a314a3 Mon Sep 17 00:00:00 2001 From: Karthikeyan Jambu Rajaraman Date: Tue, 26 Jul 2016 16:59:07 -0700 Subject: [PATCH] Remove unused header and just include what you use in codegen --- src/backend/codegen/codegen_interface.cc | 2 + src/backend/codegen/codegen_manager.cc | 35 ++++----------- src/backend/codegen/codegen_wrapper.cc | 10 ++++- .../codegen/const_expr_tree_generator.cc | 15 ++++++- src/backend/codegen/exec_eval_expr_codegen.cc | 36 +++++++-------- .../codegen/exec_variable_list_codegen.cc | 44 +++++++++---------- src/backend/codegen/expr_tree_generator.cc | 9 ++-- .../include/codegen/pg_arith_func_generator.h | 2 + .../include/codegen/pg_date_func_generator.h | 12 ++++- src/backend/codegen/op_expr_tree_generator.cc | 29 +++++++++--- src/backend/codegen/pg_date_func_generator.cc | 15 +++++-- src/backend/codegen/slot_getattr_codegen.cc | 36 +++++++-------- .../codegen/var_expr_tree_generator.cc | 19 ++++++-- src/include/codegen/codegen_wrapper.h | 2 + 14 files changed, 159 insertions(+), 107 deletions(-) diff --git a/src/backend/codegen/codegen_interface.cc b/src/backend/codegen/codegen_interface.cc index 3497ce3e3d..a9b5cee3c2 100644 --- a/src/backend/codegen/codegen_interface.cc +++ b/src/backend/codegen/codegen_interface.cc @@ -11,6 +11,8 @@ //--------------------------------------------------------------------------- #include "codegen/codegen_interface.h" +#include + using gpcodegen::CodegenInterface; // Initalization of unique counter diff --git a/src/backend/codegen/codegen_manager.cc b/src/backend/codegen/codegen_manager.cc index e01159e111..b84d8de798 100644 --- a/src/backend/codegen/codegen_manager.cc +++ b/src/backend/codegen/codegen_manager.cc @@ -9,36 +9,19 @@ // Implementation of a code generator manager // //--------------------------------------------------------------------------- - -extern "C" { -#include -} - -#include +#include +#include +#include #include +#include -#include "codegen/utils/clang_compiler.h" -#include "codegen/utils/utility.h" -#include "codegen/utils/instance_method_wrappers.h" -#include "codegen/utils/gp_codegen_utils.h" -#include "codegen/codegen_interface.h" +#include "llvm/Support/raw_ostream.h" +#include "codegen/codegen_interface.h" #include "codegen/codegen_manager.h" -#include "llvm/ADT/APFloat.h" -#include "llvm/ADT/APInt.h" -#include "llvm/IR/Argument.h" -#include "llvm/IR/BasicBlock.h" -#include "llvm/IR/Constant.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/GlobalVariable.h" -#include "llvm/IR/Instruction.h" -#include "llvm/IR/Instructions.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" -#include "llvm/IR/Value.h" -#include "llvm/IR/Verifier.h" -#include "llvm/Support/Casting.h" +#include "codegen/codegen_wrapper.h" +#include "codegen/utils/codegen_utils.h" +#include "codegen/utils/gp_codegen_utils.h" using gpcodegen::CodegenManager; diff --git a/src/backend/codegen/codegen_wrapper.cc b/src/backend/codegen/codegen_wrapper.cc index 8b4fa5f6ea..f946d42307 100644 --- a/src/backend/codegen/codegen_wrapper.cc +++ b/src/backend/codegen/codegen_wrapper.cc @@ -11,10 +11,16 @@ //--------------------------------------------------------------------------- #include "codegen/codegen_wrapper.h" + +#include +#include +#include + +#include "codegen/base_codegen.h" #include "codegen/codegen_manager.h" -#include "codegen/exec_variable_list_codegen.h" #include "codegen/exec_eval_expr_codegen.h" - +#include "codegen/exec_variable_list_codegen.h" +#include "codegen/expr_tree_generator.h" #include "codegen/utils/gp_codegen_utils.h" extern "C" { diff --git a/src/backend/codegen/const_expr_tree_generator.cc b/src/backend/codegen/const_expr_tree_generator.cc index ade290a834..f9157ded7a 100644 --- a/src/backend/codegen/const_expr_tree_generator.cc +++ b/src/backend/codegen/const_expr_tree_generator.cc @@ -10,15 +10,26 @@ // //--------------------------------------------------------------------------- -#include "codegen/expr_tree_generator.h" +#include +#include + #include "codegen/const_expr_tree_generator.h" +#include "codegen/expr_tree_generator.h" +#include "codegen/utils/gp_codegen_utils.h" + +#include "llvm/IR/Constant.h" -#include "llvm/IR/Value.h" extern "C" { #include "postgres.h" // NOLINT(build/include) #include "nodes/execnodes.h" +#include "nodes/nodes.h" +#include "nodes/primnodes.h" } +namespace llvm { +class Value; +} // namespace llvm + using gpcodegen::ConstExprTreeGenerator; using gpcodegen::ExprTreeGenerator; diff --git a/src/backend/codegen/exec_eval_expr_codegen.cc b/src/backend/codegen/exec_eval_expr_codegen.cc index 7cd6442a20..e0b4b87151 100644 --- a/src/backend/codegen/exec_eval_expr_codegen.cc +++ b/src/backend/codegen/exec_eval_expr_codegen.cc @@ -9,40 +9,40 @@ // Generates code for ExecEvalExpr function. // //--------------------------------------------------------------------------- -#include +#include +#include #include +#include #include -#include "codegen/slot_getattr_codegen.h" +#include "codegen/base_codegen.h" +#include "codegen/codegen_wrapper.h" #include "codegen/exec_eval_expr_codegen.h" #include "codegen/expr_tree_generator.h" #include "codegen/op_expr_tree_generator.h" -#include "codegen/utils/clang_compiler.h" +#include "codegen/slot_getattr_codegen.h" +#include "codegen/utils/gp_codegen_utils.h" #include "codegen/utils/utility.h" -#include "codegen/utils/codegen_utils.h" -#include "llvm/ADT/APFloat.h" -#include "llvm/ADT/APInt.h" #include "llvm/IR/Argument.h" -#include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constant.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/GlobalVariable.h" -#include "llvm/IR/Instruction.h" -#include "llvm/IR/Instructions.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" -#include "llvm/IR/Value.h" -#include "llvm/IR/Verifier.h" -#include "llvm/Support/Casting.h" +#include "llvm/IR/IRBuilder.h" + extern "C" { #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" #include "nodes/execnodes.h" +#include "utils/elog.h" +#include "executor/tuptable.h" +#include "nodes/nodes.h" } +namespace llvm { +class BasicBlock; +class Function; +class Value; +} // namespace llvm + using gpcodegen::ExecEvalExprCodegen; using gpcodegen::SlotGetAttrCodegen; diff --git a/src/backend/codegen/exec_variable_list_codegen.cc b/src/backend/codegen/exec_variable_list_codegen.cc index 4bc002ff2e..a7e7d67f37 100644 --- a/src/backend/codegen/exec_variable_list_codegen.cc +++ b/src/backend/codegen/exec_variable_list_codegen.cc @@ -11,41 +11,41 @@ //--------------------------------------------------------------------------- +#include +#include #include -#include #include +#include + +#include "codegen/base_codegen.h" +#include "codegen/codegen_wrapper.h" #include "codegen/exec_variable_list_codegen.h" #include "codegen/slot_getattr_codegen.h" -#include "codegen/utils/clang_compiler.h" -#include "codegen/utils/utility.h" #include "codegen/utils/gp_codegen_utils.h" -#include "codegen/base_codegen.h" +#include "codegen/utils/utility.h" -#include "llvm/ADT/APFloat.h" -#include "llvm/ADT/APInt.h" #include "llvm/IR/Argument.h" -#include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constant.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/GlobalVariable.h" -#include "llvm/IR/Instruction.h" +#include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" -#include "llvm/IR/Value.h" -#include "llvm/IR/Verifier.h" -#include "llvm/Support/Casting.h" + extern "C" { #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" -#include "access/htup.h" -#include "nodes/execnodes.h" #include "executor/tuptable.h" +#include "nodes/execnodes.h" +#include "utils/elog.h" +#include "access/tupdesc.h" +#include "nodes/pg_list.h" } +namespace llvm { +class BasicBlock; +class Function; +class Value; +} // namespace llvm + using gpcodegen::ExecVariableListCodegen; using gpcodegen::SlotGetAttrCodegen; @@ -67,11 +67,11 @@ ExecVariableListCodegen::ExecVariableListCodegen bool ExecVariableListCodegen::GenerateExecVariableList( gpcodegen::GpCodegenUtils* codegen_utils) { - assert(NULL != codegen_utils); - static_assert(sizeof(Datum) == sizeof(int64), + assert(nullptr != codegen_utils); + static_assert(sizeof(Datum) == sizeof(int64_t), "sizeof(Datum) doesn't match sizeof(int64)"); - if ( NULL == proj_info_->pi_varSlotOffsets ) { + if ( nullptr == proj_info_->pi_varSlotOffsets ) { elog(DEBUG1, "Cannot codegen ExecVariableList because varSlotOffsets are null"); return false; diff --git a/src/backend/codegen/expr_tree_generator.cc b/src/backend/codegen/expr_tree_generator.cc index e8ab532d7b..b0fe58071a 100644 --- a/src/backend/codegen/expr_tree_generator.cc +++ b/src/backend/codegen/expr_tree_generator.cc @@ -10,17 +10,18 @@ // //--------------------------------------------------------------------------- #include +#include + +#include "codegen/const_expr_tree_generator.h" #include "codegen/expr_tree_generator.h" #include "codegen/op_expr_tree_generator.h" #include "codegen/var_expr_tree_generator.h" -#include "codegen/const_expr_tree_generator.h" - -#include "llvm/IR/Value.h" extern "C" { #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" #include "nodes/execnodes.h" +#include "utils/elog.h" +#include "nodes/nodes.h" } using gpcodegen::ExprTreeGenerator; diff --git a/src/backend/codegen/include/codegen/pg_arith_func_generator.h b/src/backend/codegen/include/codegen/pg_arith_func_generator.h index e9e3d86516..b50a901537 100644 --- a/src/backend/codegen/include/codegen/pg_arith_func_generator.h +++ b/src/backend/codegen/include/codegen/pg_arith_func_generator.h @@ -17,6 +17,7 @@ #include #include "codegen/utils/gp_codegen_utils.h" +#include "codegen/pg_func_generator_interface.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Value.h" @@ -27,6 +28,7 @@ namespace gpcodegen { * @{ */ + namespace gpcodegen_ArithOp_detail { // ArithOpOverFlowErrorMsg has various template specializations to // handle error message for different C++ types. The specialized versions diff --git a/src/backend/codegen/include/codegen/pg_date_func_generator.h b/src/backend/codegen/include/codegen/pg_date_func_generator.h index 6071180881..b36f702e0b 100644 --- a/src/backend/codegen/include/codegen/pg_date_func_generator.h +++ b/src/backend/codegen/include/codegen/pg_date_func_generator.h @@ -12,27 +12,35 @@ #ifndef GPCODEGEN_PG_DATE_FUNC_GENERATOR_H_ // NOLINT(build/header_guard) #define GPCODEGEN_PG_DATE_FUNC_GENERATOR_H_ +#include #include #include -#include -#include "codegen/utils/codegen_utils.h" #include "codegen/base_codegen.h" #include "codegen/pg_func_generator_interface.h" +#include "codegen/utils/codegen_utils.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/Value.h" +namespace llvm { +class Value; +} // namespace llvm + namespace gpcodegen { /** \addtogroup gpcodegen * @{ */ +class GpCodegenUtils; +struct PGFuncGeneratorInfo; + /** * @brief Class with Static member function to generate code for date * operators. **/ + class PGDateFuncGenerator { public: /** diff --git a/src/backend/codegen/op_expr_tree_generator.cc b/src/backend/codegen/op_expr_tree_generator.cc index f883303ff8..c41a7896c5 100644 --- a/src/backend/codegen/op_expr_tree_generator.cc +++ b/src/backend/codegen/op_expr_tree_generator.cc @@ -10,21 +10,38 @@ // //--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include + #include "codegen/expr_tree_generator.h" #include "codegen/op_expr_tree_generator.h" +#include "codegen/pg_func_generator.h" +#include "codegen/pg_func_generator_interface.h" +#include "codegen/utils/gp_codegen_utils.h" +#include "codegen/pg_arith_func_generator.h" +#include "codegen/pg_date_func_generator.h" -#include "include/codegen/pg_arith_func_generator.h" -#include "include/codegen/pg_date_func_generator.h" - -#include "llvm/IR/Value.h" +#include "llvm/IR/IRBuilder.h" extern "C" { -#include "c.h" // NOLINT(build/include) #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" +#include "c.h" // NOLINT(build/include) #include "nodes/execnodes.h" +#include "utils/elog.h" +#include "nodes/nodes.h" +#include "nodes/pg_list.h" +#include "nodes/primnodes.h" } +namespace llvm { +class Value; +} // namespace llvm + using gpcodegen::OpExprTreeGenerator; using gpcodegen::ExprTreeGenerator; using gpcodegen::GpCodegenUtils; diff --git a/src/backend/codegen/pg_date_func_generator.cc b/src/backend/codegen/pg_date_func_generator.cc index 2f5b317d97..4a4b0130ef 100644 --- a/src/backend/codegen/pg_date_func_generator.cc +++ b/src/backend/codegen/pg_date_func_generator.cc @@ -10,20 +10,29 @@ // //--------------------------------------------------------------------------- +#include +#include +#include +#include +#include "codegen/pg_arith_func_generator.h" #include "codegen/pg_date_func_generator.h" +#include "codegen/pg_func_generator_interface.h" #include "codegen/utils/gp_codegen_utils.h" -#include "codegen/pg_arith_func_generator.h" + +#include "llvm/IR/Constant.h" +#include "llvm/IR/IRBuilder.h" +#include "llvm/IR/Value.h" extern "C" { #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" -#include "utils/date.h" +#include "c.h" // NOLINT(build/include) #include "utils/timestamp.h" } using gpcodegen::GpCodegenUtils; using gpcodegen::PGDateFuncGenerator; +using gpcodegen::PGFuncGeneratorInfo; bool PGDateFuncGenerator::DateLETimestamp( gpcodegen::GpCodegenUtils* codegen_utils, diff --git a/src/backend/codegen/slot_getattr_codegen.cc b/src/backend/codegen/slot_getattr_codegen.cc index d5ced843d7..49d81bd4c7 100644 --- a/src/backend/codegen/slot_getattr_codegen.cc +++ b/src/backend/codegen/slot_getattr_codegen.cc @@ -9,43 +9,43 @@ // Contains slot_getattr generator // //--------------------------------------------------------------------------- - -#include -#include +#include +#include #include +#include "codegen/base_codegen.h" +#include "codegen/codegen_wrapper.h" #include "codegen/slot_getattr_codegen.h" -#include "codegen/utils/clang_compiler.h" -#include "codegen/utils/utility.h" #include "codegen/utils/gp_codegen_utils.h" -#include "codegen/base_codegen.h" +#include "codegen/utils/utility.h" -#include "llvm/ADT/APFloat.h" -#include "llvm/ADT/APInt.h" #include "llvm/IR/Argument.h" -#include "llvm/IR/BasicBlock.h" #include "llvm/IR/Constant.h" -#include "llvm/IR/DerivedTypes.h" #include "llvm/IR/Function.h" -#include "llvm/IR/GlobalVariable.h" -#include "llvm/IR/Instruction.h" +#include "llvm/IR/IRBuilder.h" #include "llvm/IR/Instructions.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" -#include "llvm/IR/Value.h" #include "llvm/IR/Verifier.h" -#include "llvm/Support/Casting.h" extern "C" { #include "postgres.h" // NOLINT(build/include) +#include "c.h" // NOLINT(build/include) +#include "executor/tuptable.h" #include "utils/elog.h" #include "access/htup.h" -#include "nodes/execnodes.h" -#include "executor/tuptable.h" +#include "access/memtup.h" +#include "access/tupdesc.h" +#include "access/tupmacs.h" +#include "catalog/pg_attribute.h" extern void slot_deform_tuple(TupleTableSlot* slot, int nattr); } +namespace llvm { +class BasicBlock; +class Value; +} // namespace llvm + + using gpcodegen::SlotGetAttrCodegen; // TODO(shardikar): Retire this GUC after performing experiments to find the diff --git a/src/backend/codegen/var_expr_tree_generator.cc b/src/backend/codegen/var_expr_tree_generator.cc index ed1ffe1821..b7bb372579 100644 --- a/src/backend/codegen/var_expr_tree_generator.cc +++ b/src/backend/codegen/var_expr_tree_generator.cc @@ -9,20 +9,31 @@ // Object that generator code for variable expression. // //--------------------------------------------------------------------------- - +#include +#include #include +#include #include "codegen/expr_tree_generator.h" +#include "codegen/utils/gp_codegen_utils.h" #include "codegen/var_expr_tree_generator.h" -#include "llvm/IR/Value.h" +#include "llvm/IR/Constant.h" +#include "llvm/IR/IRBuilder.h" +#include "llvm/IR/Instructions.h" extern "C" { #include "postgres.h" // NOLINT(build/include) -#include "utils/elog.h" #include "nodes/execnodes.h" +#include "executor/tuptable.h" +#include "nodes/nodes.h" +#include "nodes/primnodes.h" } +namespace llvm { +class Value; +} // namespace llvm + using gpcodegen::VarExprTreeGenerator; using gpcodegen::ExprTreeGenerator; using gpcodegen::GpCodegenUtils; @@ -60,7 +71,7 @@ bool VarExprTreeGenerator::GenerateCode(GpCodegenUtils* codegen_utils, // At code generation time, slot is NULL. // For that reason, we keep a double pointer to slot and at execution time // we load slot. - TupleTableSlot **ptr_to_slot_ptr = NULL; + TupleTableSlot **ptr_to_slot_ptr = nullptr; switch (var_expr->varno) { case INNER: /* get the tuple from the inner node */ ptr_to_slot_ptr = &gen_info.econtext->ecxt_innertuple; diff --git a/src/include/codegen/codegen_wrapper.h b/src/include/codegen/codegen_wrapper.h index 126b10d939..1dcf0e34ef 100644 --- a/src/include/codegen/codegen_wrapper.h +++ b/src/include/codegen/codegen_wrapper.h @@ -12,6 +12,8 @@ #ifndef CODEGEN_WRAPPER_H_ #define CODEGEN_WRAPPER_H_ +#include + #include "pg_config.h" #include "c.h" -- GitLab