diff --git a/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp b/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp index d51d63f243ea0..85604eef2f283 100644 --- a/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp +++ b/mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp @@ -465,9 +465,8 @@ bool AnalysisState::isValueRead(Value value) const { while (!workingSet.empty()) { OpOperand *uMaybeReading = workingSet.pop_back_val(); - if (visited.contains(uMaybeReading)) + if (!visited.insert(uMaybeReading).second) continue; - visited.insert(uMaybeReading); // Skip over all ops that neither read nor write (but create an alias). if (bufferizesToAliasOnly(*uMaybeReading))