aboutsummaryrefslogtreecommitdiff
path: root/src/ir.cpp
diff options
context:
space:
mode:
authorlachsinc <lachlansinclair@gmail.com>2018-10-05 15:03:13 +1000
committerlachsinc <lachlansinclair@gmail.com>2018-10-05 15:03:13 +1000
commitedc3a9392a35b7a3c90f6503617ccc2a1fb5a372 (patch)
tree58a43a1b5d766a1149d4bb658f0d3404c0f1f83d /src/ir.cpp
parentf881ebd00726d1bfb4540f7792cff3e8d1a33e4d (diff)
Cleanup.
Diffstat (limited to 'src/ir.cpp')
-rw-r--r--src/ir.cpp41
1 files changed, 13 insertions, 28 deletions
diff --git a/src/ir.cpp b/src/ir.cpp
index 1996d19ad..edf3ad3ba 100644
--- a/src/ir.cpp
+++ b/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,
@@ -558,12 +557,6 @@ struct irDebugInfo {
String directory;
} File;
struct {
- irDebugInfo *parent;
- irDebugInfo *file;
- TokenPos pos;
- Scope * scope; // Actual scope
- } Scope;
- struct {
Entity * entity;
String name;
irDebugInfo * file;
@@ -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)) {