Clarification on observed behavior (linalg, CSE)

@cbate please also see an older post about other issues I had found: Properly using Bufferization related passes.

These days we are using a single -linalg-comprehensive-module-bufferize pass that is more restricted but designed to provide a more “batteries included” experience.

Right now, I think this would fail due to the unknown ops (the pass is conservative and will easily fail in a bunch of cases atm). However @matthias-springer has started a generalization effort with interfaces that you should be able to use in a few days and hook into the toy ops.

Alternatively, you could hide the toy operations that operate on tensors behind an external function call.
Pro: -linalg-comprehensive-module-bufferize should be able to bufferize these properlyand it would work today.
Con: you’ll need to hook toy.print to one of print functions and link with the runtime support libraries and you’ll also need to do the same for toy.sleep that would do the same. But it seems you already have some of that on your end?

You can see relevant tests around here: https://sourcegraph.com/github.com/llvm/llvm-project/-/blob/mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir?L395