summaryrefslogtreecommitdiff
path: root/src/ir/effects.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/ir/effects.h')
-rw-r--r--src/ir/effects.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/ir/effects.h b/src/ir/effects.h
index f5bb0e6cb..fd4c68cba 100644
--- a/src/ir/effects.h
+++ b/src/ir/effects.h
@@ -256,6 +256,7 @@ public:
writesHeap = writesHeap || other.writesHeap;
trap = trap || other.trap;
implicitTrap = implicitTrap || other.implicitTrap;
+ trapsNeverHappen = trapsNeverHappen || other.trapsNeverHappen;
isAtomic = isAtomic || other.isAtomic;
throws = throws || other.throws;
danglingPop = danglingPop || other.danglingPop;
@@ -687,7 +688,8 @@ public:
IsAtomic = 1 << 9,
Throws = 1 << 10,
DanglingPop = 1 << 11,
- Any = (1 << 12) - 1
+ TrapsNeverHappen = 1 << 12,
+ Any = (1 << 13) - 1
};
uint32_t getSideEffects() const {
uint32_t effects = 0;
@@ -718,6 +720,9 @@ public:
if (implicitTrap) {
effects |= SideEffects::ImplicitTrap;
}
+ if (trapsNeverHappen) {
+ effects |= SideEffects::TrapsNeverHappen;
+ }
if (isAtomic) {
effects |= SideEffects::IsAtomic;
}