mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
Merge pull request #1794 from mollstam/fix/optnone-procs
Emit LLVM IR to never optimize/inline procs when building debug and -o:minimal
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user