Have different categories for optimization passes

This commit is contained in:
gingerBill
2020-03-19 10:57:14 +00:00
parent 1707e004ec
commit 04fe23a3c8
4 changed files with 475 additions and 197 deletions

View File

@@ -49,7 +49,7 @@ del *.ilk > NUL 2> NUL
cl %compiler_settings% "src\main.cpp" ^
/link %linker_settings% -OUT:%exe_name% ^
&& odin run examples/demo/demo.odin -llvm-api
&& odin run examples/demo/demo.odin -llvm-api -keep-temp-files
if %errorlevel% neq 0 (
goto end_of_build
)

File diff suppressed because it is too large Load Diff

View File

@@ -164,8 +164,13 @@ struct lbTargetList {
};
enum lbProcedureFlag : u32 {
lbProcedureFlag_WithoutMemcpyPass = 1<<0,
};
struct lbProcedure {
u32 flags;
lbProcedure *parent;
Array<lbProcedure *> children;

View File

@@ -3190,6 +3190,14 @@ i64 type_offset_of_from_selection(Type *type, Selection sel) {
return offset;
}
Type *get_struct_field_type(Type *t, isize index) {
t = base_type(type_deref(t));
GB_ASSERT(t->kind == Type_Struct);
return t->Struct.fields[index]->type;
}
gbString write_type_to_string(gbString str, Type *type) {
if (type == nullptr) {
return gb_string_appendc(str, "<no type>");