mirror of
https://github.com/zama-ai/concrete.git
synced 2026-04-17 03:00:54 -04:00
Updates of the types inferred for the values related to an operation only propagate correctly to the operation if there is a direct producer-consumer relationship or an indirect producer-consumer relationship via some additional mechanism (e.g., region successors). However, this is not sufficient to ensure updates of values and operations that are related otherwise. This change explicitly models the dependencies between related values and an operation via `DataFlowAnalysis::addDependency` in order to guarantee that all updates of the types of values are propagated to all operations that the type resolver has designated as related operations. Furthermore, all operations are visited once initially in order to guarantee that updates propagate to operations, for which the dataflow framework does not invoke `visitOperation`.