Add optimization_mode attribute for procedures

Allowed modes: "none", "minimal", "size", "speed"
Currently: none == minimal and size == speed
This commit is contained in:
gingerBill
2021-04-22 00:04:47 +01:00
parent c7d92562c2
commit 65551ba8fb
5 changed files with 67 additions and 4 deletions

View File

@@ -99,6 +99,14 @@ enum EntityConstantFlags : u32 {
EntityConstantFlag_ImplicitEnumValue = 1<<0,
};
enum ProcedureOptimizationMode : u32 {
ProcedureOptimizationMode_Default,
ProcedureOptimizationMode_None,
ProcedureOptimizationMode_Minimal,
ProcedureOptimizationMode_Size,
ProcedureOptimizationMode_Speed,
};
// An Entity is a named "thing" in the language
struct Entity {
EntityKind kind;
@@ -165,6 +173,7 @@ struct Entity {
DeferredProcedure deferred_procedure;
bool is_foreign;
bool is_export;
ProcedureOptimizationMode optimization_mode;
} Procedure;
struct {
Array<Entity *> entities;