mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-08 05:53:12 +00:00
emit optnone and noinline for all procs when opt set to minimal
This commit is contained in:
@@ -139,35 +139,40 @@ lbProcedure *lb_create_procedure(lbModule *m, Entity *entity, bool ignore_body)
|
||||
lb_add_attribute_to_proc(m, p->value, "noredzone");
|
||||
}
|
||||
|
||||
switch (p->inlining) {
|
||||
case ProcInlining_inline:
|
||||
lb_add_attribute_to_proc(m, p->value, "alwaysinline");
|
||||
break;
|
||||
case ProcInlining_no_inline:
|
||||
if (build_context.optimization_level == 0 && build_context.ODIN_DEBUG) {
|
||||
lb_add_attribute_to_proc(m, p->value, "noinline");
|
||||
break;
|
||||
lb_add_attribute_to_proc(m, p->value, "optnone");
|
||||
} else {
|
||||
switch (p->inlining) {
|
||||
case ProcInlining_inline:
|
||||
lb_add_attribute_to_proc(m, p->value, "alwaysinline");
|
||||
break;
|
||||
case ProcInlining_no_inline:
|
||||
lb_add_attribute_to_proc(m, p->value, "noinline");
|
||||
break;
|
||||
}
|
||||
|
||||
switch (entity->Procedure.optimization_mode) {
|
||||
case ProcedureOptimizationMode_None:
|
||||
lb_add_attribute_to_proc(m, p->value, "optnone");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Minimal:
|
||||
lb_add_attribute_to_proc(m, p->value, "optnone");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Size:
|
||||
lb_add_attribute_to_proc(m, p->value, "optsize");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Speed:
|
||||
// TODO(bill): handle this correctly
|
||||
lb_add_attribute_to_proc(m, p->value, "optsize");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (entity->flags & EntityFlag_Cold) {
|
||||
lb_add_attribute_to_proc(m, p->value, "cold");
|
||||
}
|
||||
|
||||
switch (entity->Procedure.optimization_mode) {
|
||||
case ProcedureOptimizationMode_None:
|
||||
lb_add_attribute_to_proc(m, p->value, "optnone");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Minimal:
|
||||
lb_add_attribute_to_proc(m, p->value, "optnone");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Size:
|
||||
lb_add_attribute_to_proc(m, p->value, "optsize");
|
||||
break;
|
||||
case ProcedureOptimizationMode_Speed:
|
||||
// TODO(bill): handle this correctly
|
||||
lb_add_attribute_to_proc(m, p->value, "optsize");
|
||||
break;
|
||||
}
|
||||
|
||||
lbValue proc_value = {p->value, p->type};
|
||||
lb_add_entity(m, entity, proc_value);
|
||||
lb_add_member(m, p->name, proc_value);
|
||||
|
||||
Reference in New Issue
Block a user