Begin integrating work from branch llvm-debug-symbols

This commit is contained in:
gingerBill
2021-03-20 13:10:53 +00:00
parent cb0bd80f50
commit fd7d70954e
2 changed files with 563 additions and 406 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -240,8 +240,11 @@ struct lbProcedure {
Ast *curr_stmt;
Array<Scope *> scope_stack;
Array<lbContextData> context_stack;
LLVMMetadataRef debug_info;
lbValue return_ptr_hint_value;
Ast * return_ptr_hint_ast;
bool return_ptr_hint_used;
@@ -382,6 +385,10 @@ lbValue lb_get_equal_proc_for_type(lbModule *m, Type *type);
lbValue lb_get_hasher_proc_for_type(lbModule *m, Type *type);
lbValue lb_emit_conv(lbProcedure *p, lbValue value, Type *t);
LLVMMetadataRef lb_debug_type(lbModule *m, Type *type);
#define LB_STARTUP_RUNTIME_PROC_NAME "__$startup_runtime"
#define LB_STARTUP_TYPE_INFO_PROC_NAME "__$startup_type_info"
#define LB_TYPE_INFO_DATA_NAME "__$type_info_data"
@@ -452,3 +459,24 @@ lbCallingConventionKind const lb_calling_convention_map[ProcCC_MAX] = {
lbCallingConvention_C, // ProcCC_None,
lbCallingConvention_C, // ProcCC_InlineAsm,
};
enum : LLVMDWARFTypeEncoding {
LLVMDWARFTypeEncoding_Address = 1,
LLVMDWARFTypeEncoding_Boolean = 2,
LLVMDWARFTypeEncoding_ComplexFloat = 3,
LLVMDWARFTypeEncoding_Float = 4,
LLVMDWARFTypeEncoding_Signed = 5,
LLVMDWARFTypeEncoding_SignedChar = 6,
LLVMDWARFTypeEncoding_Unsigned = 7,
LLVMDWARFTypeEncoding_UnsignedChar = 8,
LLVMDWARFTypeEncoding_ImaginaryFloat = 9,
LLVMDWARFTypeEncoding_PackedDecimal = 10,
LLVMDWARFTypeEncoding_NumericString = 11,
LLVMDWARFTypeEncoding_Edited = 12,
LLVMDWARFTypeEncoding_SignedFixed = 13,
LLVMDWARFTypeEncoding_UnsignedFixed = 14,
LLVMDWARFTypeEncoding_DecimalFloat = 15,
LLVMDWARFTypeEncoding_Utf = 16,
LLVMDWARFTypeEncoding_LoUser = 128,
LLVMDWARFTypeEncoding_HiUser = 255
};