VarAction2: Reduce cost of RecursiveDisallowDSEForProcedure

Fix disallowing DSE also disallowing store simplification
This commit is contained in:
Jonathan G Rennison
2022-06-06 20:09:48 +01:00
parent 894c8d8b5e
commit 3a5902ff77
2 changed files with 98 additions and 87 deletions

View File

@@ -326,6 +326,11 @@ struct DeterministicSpriteGroupRange {
uint32 high;
};
enum DeterministicSpriteGroupFlags : uint8 {
DSGF_NONE = 0,
DSGF_NO_DSE = 1 << 0,
};
DECLARE_ENUM_AS_BIT_SET(DeterministicSpriteGroupFlags)
struct DeterministicSpriteGroup : SpriteGroup {
DeterministicSpriteGroup() : SpriteGroup(SGT_DETERMINISTIC) {}
@@ -333,6 +338,7 @@ struct DeterministicSpriteGroup : SpriteGroup {
VarSpriteGroupScope var_scope;
DeterministicSpriteGroupSize size;
bool calculated_result;
DeterministicSpriteGroupFlags dsg_flags = DSGF_NONE;
std::vector<DeterministicSpriteGroupAdjust> adjusts;
std::vector<DeterministicSpriteGroupRange> ranges; // Dynamically allocated