Mill Computing, Inc. Forums The Mill Architecture Pipelining Reply To: Pipelining

Post count: 6

If you want to think about it, the general solution is to cause any data sources in the pipeline after the predicate to produce Nones. […] We’re also not sure we have found all the cases yet.

This looks really hard to get right in every case, and I probably wouldn’t trust the compiler to get it always right.

Why not introduce an artificial dependency in every store (a sort of phantom argument, maybe just add 0 directly before the store) and let the compiler taint these extra dependencies after the loop has completed instead of trying to taint a source? KISS. One can taint a source because normally you know when it’s a bad value. Similarly, one should dually taint the destination if it becomes invalid.