From 82bcd985862892773fc9685aa6abcbb298267aa0 Mon Sep 17 00:00:00 2001 From: River Riddle Date: Tue, 27 Apr 2021 14:27:08 -0700 Subject: [PATCH] [mlir] Fix bug in ForwardDataFlowAnalysis solver Explicitly check for uninitialized to prevent crashes in edge cases where the derived analysis creates a lattice element for a value that hasn't been visited yet. --- mlir/lib/Analysis/DataFlowAnalysis.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mlir/lib/Analysis/DataFlowAnalysis.cpp b/mlir/lib/Analysis/DataFlowAnalysis.cpp index ec1a13a..ef629c1 100644 --- a/mlir/lib/Analysis/DataFlowAnalysis.cpp +++ b/mlir/lib/Analysis/DataFlowAnalysis.cpp @@ -317,7 +317,7 @@ void ForwardDataFlowSolver::visitOperation(Operation *op) { for (Value operand : op->getOperands()) { AbstractLatticeElement *operandLattice = analysis.lookupLatticeElement(operand); - if (!operandLattice) + if (!operandLattice || operandLattice->isUninitialized()) return; operandLattices.push_back(operandLattice); } -- 2.7.4