2
0
lachsinc 7 жил өмнө
parent
commit
edc3a9392a
1 өөрчлөгдсөн 13 нэмэгдсэн , 28 устгасан
  1. 13 28
      src/ir.cpp

+ 13 - 28
src/ir.cpp

@@ -522,17 +522,16 @@ enum irDebugInfoKind {
 
 	irDebugInfo_CompileUnit,
 	irDebugInfo_File,
-	irDebugInfo_Scope,
 	irDebugInfo_Proc,
 	irDebugInfo_Location,
 	irDebugInfo_LexicalBlock,
 	irDebugInfo_AllProcs,
 
-	irDebugInfo_BasicType,      // basic types
-	irDebugInfo_DerivedType,    // pointer, typedef
-	irDebugInfo_CompositeType,  // array, struct, enum, (raw_)union
+	irDebugInfo_BasicType,      // primitive types
+	irDebugInfo_DerivedType,    // pointer, distinct etc.
+	irDebugInfo_CompositeType,  // array, struct, enum, union etc.
 	irDebugInfo_Enumerator,     // For irDebugInfo_CompositeType if enum
-	irDebugInfo_GlobalVariableExpression, // for describe if global is const or not
+	irDebugInfo_GlobalVariableExpression, // used to describe if global is const or not
 	irDebugInfo_GlobalVariable,
 	irDebugInfo_LocalVariable,
 
@@ -557,12 +556,6 @@ struct irDebugInfo {
 			String   filename;
 			String   directory;
 		} File;
-		struct {
-			irDebugInfo *parent;
-			irDebugInfo *file;
-			TokenPos     pos;
-			Scope *      scope; // Actual scope
-		} Scope;
 		struct {
 			Entity *      entity;
 			String        name;
@@ -588,7 +581,6 @@ struct irDebugInfo {
 			irDebugEncoding encoding;
 		} BasicType;
 		struct {
-			// TODO(lachsinc): Do derived types even need scope/file/line etc. info?
 			irDebugEncoding  tag;
 			irDebugInfo *    base_type;
 			String           name;
@@ -1610,7 +1602,7 @@ irDebugEncoding ir_debug_encoding_for_basic(BasicKind kind) {
 	case Basic_i32:
 	case Basic_i64: 
 	case Basic_int:
-	case Basic_rune: // TODO(lachsinc) signed or unsigned?
+	case Basic_rune:
 	case Basic_typeid:
 		return irDebugBasicEncoding_signed;
 
@@ -1670,8 +1662,6 @@ irDebugInfo *ir_add_debug_info_field_internal(irModule *module, String name, Typ
 	return di;
 }
 
-// TODO(lachsinc): Cleanup params, either scope or scope_type, not both.
-// Pass name, file, pos in manually? Would be much cleaner.
 irDebugInfo *ir_add_debug_info_field(irModule *module, irDebugInfo *scope, Entity *e, Type *scope_type, i32 index, Type *type, irDebugInfo *file) {
 	// NOTE(lachsinc): This lookup will only work for struct fields!!
 	// TODO(lachsinc): Do we even need to do this?
@@ -1682,7 +1672,6 @@ irDebugInfo *ir_add_debug_info_field(irModule *module, irDebugInfo *scope, Entit
 		}
 	}
 
-	// TODO(lachsinc): Cleanup
 	irDebugInfo *di = ir_add_debug_info_field_internal(module, make_string(nullptr, 0), type, 0, e, scope);
 	void *ptr_to_hash = nullptr;
 	if (scope_type) {
@@ -1722,7 +1711,6 @@ irDebugInfo *ir_add_debug_info_field(irModule *module, irDebugInfo *scope, Entit
 	}
 
 	di->DerivedType.file = file;
-	// di->DerivedType.align = ir_debug_align_bits(type);
 
 	GB_ASSERT_NOT_NULL(ptr_to_hash);
 	map_set(&module->debug_info, hash_pointer(ptr_to_hash), di);
@@ -1746,7 +1734,6 @@ irDebugInfo *ir_add_debug_info_enumerator(irModule *module, Entity *e) {
 	return di;
 }
 
-// TODO(lachsinc): Cleanup params.
 irDebugInfo *ir_add_debug_info_type_dynamic_array(irModule *module, Type *type, Entity *e, irDebugInfo *scope, irDebugInfo *file) {
 	GB_ASSERT(type->kind == Type_DynamicArray);
 
@@ -1810,8 +1797,7 @@ irDebugInfo *ir_add_debug_info_type_dynamic_array(irModule *module, Type *type,
 	return di;
 }
 
-// TODO(lachsinc): Cleanup params.
-irDebugInfo *ir_add_debug_info_type_bit_field(irModule *module, Type *type, Entity *e, irDebugInfo *scope, irDebugInfo *file) {
+irDebugInfo *ir_add_debug_info_type_bit_field(irModule *module, Type *type, Entity *e, irDebugInfo *scope) {
 	GB_ASSERT(type->kind == Type_BitField || (type->kind == Type_Named && type->Named.base->kind == Type_BitField));
 
 	Type *bf_type = base_type(type);
@@ -1838,7 +1824,8 @@ irDebugInfo *ir_add_debug_info_type_bit_field(irModule *module, Type *type, Enti
 		if (field != nullptr && field->token.string.len > 0) {
 			name = field->token.string;
 		}
-		irDebugInfo *field_di = ir_add_debug_info_field_internal(module, name, t_i64, // TODO(lachsinc): Safe to use i64 for all bitfields?
+		// TODO(lachsinc): t_i64 may not be safe to use for all bitfields?
+		irDebugInfo *field_di = ir_add_debug_info_field_internal(module, name, t_i64,
 		                                                         0,
 		                                                         nullptr,
 		                                                         di);
@@ -1853,8 +1840,7 @@ irDebugInfo *ir_add_debug_info_type_bit_field(irModule *module, Type *type, Enti
 	return di;
 }
 
-// TODO(lachsinc): Cleanup params.
-irDebugInfo *ir_add_debug_info_type_bit_set(irModule *module, Type *type, Entity *e, irDebugInfo *scope, irDebugInfo *file) {
+irDebugInfo *ir_add_debug_info_type_bit_set(irModule *module, Type *type, Entity *e, irDebugInfo *scope) {
 	GB_ASSERT(type->kind == Type_BitSet || type->kind == Type_Named);
 
 	Type *base = base_type(type);
@@ -1905,8 +1891,7 @@ irDebugInfo *ir_add_debug_info_type_bit_set(irModule *module, Type *type, Entity
 	return di;
 }
 
-// TODO(lachsinc): Cleanup params.
-irDebugInfo *ir_add_debug_info_type_string(irModule *module, irDebugInfo *scope, Entity *e, Type *type, irDebugInfo *file) {
+irDebugInfo *ir_add_debug_info_type_string(irModule *module, irDebugInfo *scope, Entity *e, Type *type) {
 	// TODO(lachsinc): Does this only occur once ??
 	irDebugInfo **existing = map_get(&module->debug_info, hash_type(t_string));
 	if (existing != nullptr) {
@@ -2044,7 +2029,7 @@ irDebugInfo *ir_add_debug_info_type(irModule *module, Type *type, Entity *e, irD
 			// TODO(lachsinc):
 			break;
 		}
-		case Basic_string: return ir_add_debug_info_type_string(module, scope, e, type, file);
+		case Basic_string: return ir_add_debug_info_type_string(module, scope, e, type);
 		case Basic_any:    return ir_add_debug_info_type_any(module);
 
 		// Derived basic types
@@ -2266,11 +2251,11 @@ irDebugInfo *ir_add_debug_info_type(irModule *module, Type *type, Entity *e, irD
 	*/
 
 	if (is_type_bit_field(type)) {
-		return ir_add_debug_info_type_bit_field(module, type, e, scope, file);
+		return ir_add_debug_info_type_bit_field(module, type, e, scope);
 	}
 
 	if (is_type_bit_set(type)) {
-		return ir_add_debug_info_type_bit_set(module, type, e, scope, file);
+		return ir_add_debug_info_type_bit_set(module, type, e, scope);
 	}
 
 	if (is_type_tuple(type)) {