aboutsummaryrefslogtreecommitdiff
path: root/src/entity.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-04-22 00:04:47 +0100
committergingerBill <bill@gingerbill.org>2021-04-22 00:04:47 +0100
commit65551ba8fb862a9caef97b3c84b17baa7715bbb6 (patch)
tree633209b38e096e50172463c3aa7b67703ef3336c /src/entity.cpp
parentc7d92562c2d8a168687c4dbfc9c31e8797a2365d (diff)
Add `optimization_mode` attribute for procedures
Allowed modes: "none", "minimal", "size", "speed" Currently: none == minimal and size == speed
Diffstat (limited to 'src/entity.cpp')
-rw-r--r--src/entity.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/entity.cpp b/src/entity.cpp
index 633576e25..d1f4c78e6 100644
--- a/src/entity.cpp
+++ b/src/entity.cpp
@@ -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;