@@ -45,9 +45,38 @@ typedef struct LLVMJitHandle
45
45
46
46
/* types & functions commonly needed for JITing */
47
47
LLVMTypeRef TypeSizeT ;
48
+ LLVMTypeRef TypePGFunction ;
49
+ LLVMTypeRef StructHeapTupleFieldsField3 ;
50
+ LLVMTypeRef StructHeapTupleFields ;
51
+ LLVMTypeRef StructHeapTupleHeaderData ;
52
+ LLVMTypeRef StructHeapTupleDataChoice ;
53
+ LLVMTypeRef StructHeapTupleData ;
54
+ LLVMTypeRef StructMinimalTupleData ;
55
+ LLVMTypeRef StructItemPointerData ;
56
+ LLVMTypeRef StructBlockId ;
57
+ LLVMTypeRef StructFormPgAttribute ;
58
+ LLVMTypeRef StructTupleConstr ;
59
+ LLVMTypeRef StructtupleDesc ;
60
+ LLVMTypeRef StructTupleTableSlot ;
61
+ LLVMTypeRef StructMemoryContextData ;
62
+ LLVMTypeRef StructPGFinfoRecord ;
63
+ LLVMTypeRef StructFmgrInfo ;
64
+ LLVMTypeRef StructFunctionCallInfoData ;
65
+ LLVMTypeRef StructExprContext ;
66
+ LLVMTypeRef StructExprEvalStep ;
67
+ LLVMTypeRef StructExprState ;
68
+ LLVMTypeRef StructAggState ;
69
+ LLVMTypeRef StructAggStatePerGroupData ;
70
+ LLVMTypeRef StructAggStatePerTransData ;
48
71
49
72
LLVMValueRef AttributeTemplate ;
50
73
LLVMValueRef FuncStrlen ;
74
+ LLVMValueRef FuncSlotGetsomeattrs ;
75
+ LLVMValueRef FuncHeapGetsysattr ;
76
+ LLVMValueRef FuncMakeExpandedObjectReadOnlyInternal ;
77
+ LLVMValueRef FuncExecEvalArrayRefSubscript ;
78
+ LLVMValueRef FuncExecAggTransReparent ;
79
+ LLVMValueRef FuncExecAggInitGroup ;
51
80
52
81
53
82
static bool llvm_session_initialized = false;
@@ -647,9 +676,27 @@ llvm_create_types(void)
647
676
llvm_layout = pstrdup (LLVMGetDataLayoutStr (mod ));
648
677
649
678
TypeSizeT = load_type (mod , "TypeSizeT" );
679
+ TypePGFunction = load_type (mod , "TypePGFunction" );
680
+ StructExprContext = load_type (mod , "StructExprContext" );
681
+ StructExprEvalStep = load_type (mod , "StructExprEvalStep" );
682
+ StructExprState = load_type (mod , "StructExprState" );
683
+ StructFunctionCallInfoData = load_type (mod , "StructFunctionCallInfoData" );
684
+ StructMemoryContextData = load_type (mod , "StructMemoryContextData" );
685
+ StructTupleTableSlot = load_type (mod , "StructTupleTableSlot" );
686
+ StructHeapTupleData = load_type (mod , "StructHeapTupleData" );
687
+ StructtupleDesc = load_type (mod , "StructtupleDesc" );
688
+ StructAggState = load_type (mod , "StructAggState" );
689
+ StructAggStatePerGroupData = load_type (mod , "StructAggStatePerGroupData" );
690
+ StructAggStatePerTransData = load_type (mod , "StructAggStatePerTransData" );
650
691
651
692
AttributeTemplate = LLVMGetNamedFunction (mod , "AttributeTemplate" );
652
693
FuncStrlen = LLVMGetNamedFunction (mod , "strlen" );
694
+ FuncSlotGetsomeattrs = LLVMGetNamedFunction (mod , "slot_getsomeattrs" );
695
+ FuncHeapGetsysattr = LLVMGetNamedFunction (mod , "heap_getsysattr" );
696
+ FuncMakeExpandedObjectReadOnlyInternal = LLVMGetNamedFunction (mod , "MakeExpandedObjectReadOnlyInternal" );
697
+ FuncExecEvalArrayRefSubscript = LLVMGetNamedFunction (mod , "ExecEvalArrayRefSubscript" );
698
+ FuncExecAggTransReparent = LLVMGetNamedFunction (mod , "ExecAggTransReparent" );
699
+ FuncExecAggInitGroup = LLVMGetNamedFunction (mod , "ExecAggInitGroup" );
653
700
654
701
/*
655
702
* Leave the module alive, otherwise references to function would be
0 commit comments