onnxruntime
cc2b01ba - Fix ClipQuantFusion crash when Clip has multiple input edges (#27016)

Commit
205 days ago
Fix ClipQuantFusion crash when Clip has multiple input edges (#27016) ## Motivation `ClipQuantFusion in clip_quantizelinear.cc` calls `graph_utils::RemoveNode()` without first checking `graph_utils::CanRemoveNode()`. When a Clip node has min/max inputs from DequantizeLinear nodes (instead of initializers), it has multiple input edges. `RemoveNode()` throws exception: ``` [ONNXRuntimeError] : 6 : RUNTIME_EXCEPTION : Exception during initialization: graph_utils.cc:650 bool onnxruntime::graph_utils::RemoveNode(onnxruntime::Graph&, onnxruntime::Node&) Should be unreachable if CanRemoveNodeAndMergeEdges is in sync with the logic here. ``` ## Fix: Added `CanRemoveNode()` check to `ClipQuantFusion::SatisfyCondition()` to skip nodes that cannot be safely removed. ## Test: Added `ClipQuantFusion_MultipleInputEdges` test that creates a Clip node with min from a DQ node (2 input edges) and verifies the optimizer doesn't crash. ## Note: This PR is a duplicate of #26923 which GitHub is preventing us from merging. Credit goes to original author @qti-yuduo. --------- Co-authored-by: Yuduo Wu <yuduow@qti.qualcomm.com>
Author
Parents
Loading