emit optnone and noinline for all procs when opt set to minimal

This commit is contained in:
Tobias Mollstam
2022-05-18 07:07:20 +02:00
parent 0cc67ff5e3
commit 846930a07f
+9 -4
View File
@@ -139,6 +139,10 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body)
lb_add_attribute_to_proc(m, p->value, "noredzone"); lb_add_attribute_to_proc(m, p->value, "noredzone");
} }
if (build_context.optimization_level == 0 && build_context.ODIN_DEBUG) {
lb_add_attribute_to_proc(m, p->value, "noinline");
lb_add_attribute_to_proc(m, p->value, "optnone");
} else {
switch (p->inlining) { switch (p->inlining) {
case ProcInlining_inline: case ProcInlining_inline:
lb_add_attribute_to_proc(m, p->value, "alwaysinline"); lb_add_attribute_to_proc(m, p->value, "alwaysinline");
@@ -148,10 +152,6 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body)
break; break;
} }
if (entity->flags & EntityFlag_Cold) {
lb_add_attribute_to_proc(m, p->value, "cold");
}
switch (entity->Procedure.optimization_mode) { switch (entity->Procedure.optimization_mode) {
case ProcedureOptimizationMode_None: case ProcedureOptimizationMode_None:
lb_add_attribute_to_proc(m, p->value, "optnone"); lb_add_attribute_to_proc(m, p->value, "optnone");
@@ -167,6 +167,11 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body)
lb_add_attribute_to_proc(m, p->value, "optsize"); lb_add_attribute_to_proc(m, p->value, "optsize");
break; break;
} }
}
if (entity->flags & EntityFlag_Cold) {
lb_add_attribute_to_proc(m, p->value, "cold");
}
lbValue proc_value = {p->value, p->type}; lbValue proc_value = {p->value, p->type};
lb_add_entity(m, entity, proc_value); lb_add_entity(m, entity, proc_value);