diff options
Diffstat (limited to 'src/passes')
-rw-r--r-- | src/passes/RemoveUnusedBrs.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/passes/RemoveUnusedBrs.cpp b/src/passes/RemoveUnusedBrs.cpp index 893cf9039..fcb4ea56a 100644 --- a/src/passes/RemoveUnusedBrs.cpp +++ b/src/passes/RemoveUnusedBrs.cpp @@ -88,8 +88,14 @@ static bool canTurnIfIntoBrIf(Expression* ifCondition, // * https://github.com/WebAssembly/binaryen/issues/5983 const Index TooCostlyToRunUnconditionally = 8; -static_assert(TooCostlyToRunUnconditionally < CostAnalyzer::Unacceptable, - "We never run code unconditionally if it has unacceptable cost"); +// Some costs are known to be too high to move from conditional to unconditional +// execution. +static_assert(CostAnalyzer::AtomicCost >= TooCostlyToRunUnconditionally, + "We never run atomics unconditionally"); +static_assert(CostAnalyzer::ThrowCost >= TooCostlyToRunUnconditionally, + "We never run throws unconditionally"); +static_assert(CostAnalyzer::CastCost > TooCostlyToRunUnconditionally / 2, + "We only run casts unconditionally when optimizing for size"); static bool tooCostlyToRunUnconditionally(const PassOptions& passOptions, Index cost) { |