diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/passes/OptimizeInstructions.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/src/passes/OptimizeInstructions.cpp b/src/passes/OptimizeInstructions.cpp index b7bbebf89..78cdc4718 100644 --- a/src/passes/OptimizeInstructions.cpp +++ b/src/passes/OptimizeInstructions.cpp @@ -1399,16 +1399,6 @@ private: } Expression* optimizeMemoryCopy(MemoryCopy* memCopy) { - FeatureSet features = getModule()->features; - - // memory.copy(x, x, sz) ==> nop - if (!EffectAnalyzer(getPassOptions(), features, memCopy->dest) - .hasSideEffects() && - !EffectAnalyzer(getPassOptions(), features, memCopy->size) - .hasSideEffects() && - ExpressionAnalyzer::equal(memCopy->dest, memCopy->source)) { - return ExpressionManipulator::nop(memCopy); - } // memory.copy(dst, src, C) ==> store(dst, load(src)) if (auto* csize = memCopy->size->dynCast<Const>()) { auto bytes = csize->value.geti32(); @@ -1444,7 +1434,7 @@ private: if (getPassOptions().shrinkLevel == 0) { // This adds an extra 2 bytes so apply it only for // minimal shrink level - if (features.hasSIMD()) { + if (getModule()->features.hasSIMD()) { return builder.makeStore( bytes, // bytes 0, // offset |