-
Notifications
You must be signed in to change notification settings - Fork 1
Description
We repeatedly run into issues where a new squin statement is added to the dialect without adding all the corresponding implementations in all method tables / rewrites. From a user perspective, I'd expect that any statement available in a dialect works in all places.
@cduck proposed to add a unit test. For example, we could have a kernel that needs to include every single dialect statement (checked by looping over all available statements and checking). Then, we can run this kernel through all required implementations and check the result.
The only disadvantage of this is that it may block PRs that add new statements. Then again, I think this is the only sure-fire way to avoid missing implementations.
We'll also need a list of all the places we need to run the kernel through. Right now, I can think of the following:
- Noise to
StochasticUnitary
rewrite rule - PyQrack simulation
- cirq emit
SquinToStimPass
- Address analysis
@johnzl-777 @kaihsin @weinbe58 any other places? I suppose there are some things that need to be tested downstream as well, but this can't be included here.