diff --git a/xls/passes/bdd_query_engine.cc b/xls/passes/bdd_query_engine.cc index 47d256db41..effa5891a0 100644 --- a/xls/passes/bdd_query_engine.cc +++ b/xls/passes/bdd_query_engine.cc @@ -670,16 +670,12 @@ std::unique_ptr BddQueryEngine::SpecializeGiven( value_knowledge.intervals->AsView(), [&](Type*, const IntervalSet& intervals, absl::Span tree_index) -> absl::Status { - std::vector bits; - bits.reserve(intervals.BitCount()); - for (int64_t i = 0; i < intervals.BitCount(); ++i) { - std::optional bit = - GetBddNode(TreeBitLocation(node, i, tree_index)); - if (!bit.has_value()) { - return absl::OkStatus(); - } - bits.push_back(*bit); + std::optional info = GetInfo(node); + if (!info.has_value()) { + return absl::OkStatus(); } + absl::Span bits = + info->Get(tree_index); SaturatingBddNodeVector in_interval_checks; for (const Interval& interval : intervals.Intervals()) {