Yes, pipeline.pipeline
can represent both a scheduleable and a scheduled pipeline. I should have been more clear here.
By unpipelined I mean the II of the loop is equal to the latency of the loop body, which is equivalent to saying that there is only one in flight loop iteration at a time. Not sure if there is a better terminology for this than unpipelined, but the term comes from traditional HLS where a loop has not had a “pipeline pragma” applied. These kinds of unpipelined loops can be scheduled using plain resource constrained scheduling rather than modulo scheduling as required by pipelined loops.
You are right, I used the wrong wording here. Not sure what the correct term is here (maybe hyperpipelining although I think that is an Intel specific term). Functionally I mean split the dialect such that the current dialect contains pipeline.pipeline
and the new dialect contains what was pipeline.while
.
No worries, I appreciate the feedback and hope that clears things up some. Please let me know if I am still not being clear.