Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
6833b3c2
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6833b3c2
编写于
7月 26, 2016
作者:
K
Karthikeyan Jambu Rajaraman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove unused header and just include what you use in codegen
上级
ab1eda87
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
159 addition
and
107 deletion
+159
-107
src/backend/codegen/codegen_interface.cc
src/backend/codegen/codegen_interface.cc
+2
-0
src/backend/codegen/codegen_manager.cc
src/backend/codegen/codegen_manager.cc
+9
-26
src/backend/codegen/codegen_wrapper.cc
src/backend/codegen/codegen_wrapper.cc
+8
-2
src/backend/codegen/const_expr_tree_generator.cc
src/backend/codegen/const_expr_tree_generator.cc
+13
-2
src/backend/codegen/exec_eval_expr_codegen.cc
src/backend/codegen/exec_eval_expr_codegen.cc
+18
-18
src/backend/codegen/exec_variable_list_codegen.cc
src/backend/codegen/exec_variable_list_codegen.cc
+22
-22
src/backend/codegen/expr_tree_generator.cc
src/backend/codegen/expr_tree_generator.cc
+5
-4
src/backend/codegen/include/codegen/pg_arith_func_generator.h
...backend/codegen/include/codegen/pg_arith_func_generator.h
+2
-0
src/backend/codegen/include/codegen/pg_date_func_generator.h
src/backend/codegen/include/codegen/pg_date_func_generator.h
+10
-2
src/backend/codegen/op_expr_tree_generator.cc
src/backend/codegen/op_expr_tree_generator.cc
+23
-6
src/backend/codegen/pg_date_func_generator.cc
src/backend/codegen/pg_date_func_generator.cc
+12
-3
src/backend/codegen/slot_getattr_codegen.cc
src/backend/codegen/slot_getattr_codegen.cc
+18
-18
src/backend/codegen/var_expr_tree_generator.cc
src/backend/codegen/var_expr_tree_generator.cc
+15
-4
src/include/codegen/codegen_wrapper.h
src/include/codegen/codegen_wrapper.h
+2
-0
未找到文件。
src/backend/codegen/codegen_interface.cc
浏览文件 @
6833b3c2
...
...
@@ -11,6 +11,8 @@
//---------------------------------------------------------------------------
#include "codegen/codegen_interface.h"
#include <string>
using
gpcodegen
::
CodegenInterface
;
// Initalization of unique counter
...
...
src/backend/codegen/codegen_manager.cc
浏览文件 @
6833b3c2
...
...
@@ -9,36 +9,19 @@
// Implementation of a code generator manager
//
//---------------------------------------------------------------------------
extern
"C"
{
#include <utils/elog.h>
}
#include <cstdint>
#include <assert.h>
#include <iosfwd>
#include <memory>
#include <string>
#include <vector>
#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
;
...
...
src/backend/codegen/codegen_wrapper.cc
浏览文件 @
6833b3c2
...
...
@@ -11,10 +11,16 @@
//---------------------------------------------------------------------------
#include "codegen/codegen_wrapper.h"
#include <assert.h>
#include <string>
#include <type_traits>
#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"
{
...
...
src/backend/codegen/const_expr_tree_generator.cc
浏览文件 @
6833b3c2
...
...
@@ -10,15 +10,26 @@
//
//---------------------------------------------------------------------------
#include "codegen/expr_tree_generator.h"
#include <assert.h>
#include <memory>
#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
;
...
...
src/backend/codegen/exec_eval_expr_codegen.cc
浏览文件 @
6833b3c2
...
...
@@ -9,40 +9,40 @@
// Generates code for ExecEvalExpr function.
//
//---------------------------------------------------------------------------
#include <algorithm>
#include <assert.h>
#include <stddef.h>
#include <cstdint>
#include <memory>
#include <string>
#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
;
...
...
src/backend/codegen/exec_variable_list_codegen.cc
浏览文件 @
6833b3c2
...
...
@@ -11,41 +11,41 @@
//---------------------------------------------------------------------------
#include <assert.h>
#include <stddef.h>
#include <algorithm>
#include <cstdint>
#include <string>
#include <cstdint>
#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
;
...
...
src/backend/codegen/expr_tree_generator.cc
浏览文件 @
6833b3c2
...
...
@@ -10,17 +10,18 @@
//
//---------------------------------------------------------------------------
#include <cassert>
#include <memory>
#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
;
...
...
src/backend/codegen/include/codegen/pg_arith_func_generator.h
浏览文件 @
6833b3c2
...
...
@@ -17,6 +17,7 @@
#include <memory>
#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
...
...
src/backend/codegen/include/codegen/pg_date_func_generator.h
浏览文件 @
6833b3c2
...
...
@@ -12,27 +12,35 @@
#ifndef GPCODEGEN_PG_DATE_FUNC_GENERATOR_H_ // NOLINT(build/header_guard)
#define GPCODEGEN_PG_DATE_FUNC_GENERATOR_H_
#include <memory>
#include <string>
#include <vector>
#include <memory>
#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:
/**
...
...
src/backend/codegen/op_expr_tree_generator.cc
浏览文件 @
6833b3c2
...
...
@@ -10,21 +10,38 @@
//
//---------------------------------------------------------------------------
#include <assert.h>
#include <cstdint>
#include <memory>
#include <type_traits>
#include <unordered_map>
#include <utility>
#include <vector>
#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
;
...
...
src/backend/codegen/pg_date_func_generator.cc
浏览文件 @
6833b3c2
...
...
@@ -10,20 +10,29 @@
//
//---------------------------------------------------------------------------
#include <assert.h>
#include <cstdint>
#include <memory>
#include <vector>
#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
,
...
...
src/backend/codegen/slot_getattr_codegen.cc
浏览文件 @
6833b3c2
...
...
@@ -9,43 +9,43 @@
// Contains slot_getattr generator
//
//---------------------------------------------------------------------------
#include <algorithm>
#include <cstdint>
#include <assert.h>
#include <string.h>
#include <string>
#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
...
...
src/backend/codegen/var_expr_tree_generator.cc
浏览文件 @
6833b3c2
...
...
@@ -9,20 +9,31 @@
// Object that generator code for variable expression.
//
//---------------------------------------------------------------------------
#include <assert.h>
#include <cstdint>
#include <algorithm>
#include <memory>
#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
;
...
...
src/include/codegen/codegen_wrapper.h
浏览文件 @
6833b3c2
...
...
@@ -12,6 +12,8 @@
#ifndef CODEGEN_WRAPPER_H_
#define CODEGEN_WRAPPER_H_
#include <stddef.h>
#include "pg_config.h"
#include "c.h"
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录