Running cleanup between usage refinement and scheduling.
This simplifies the scheduling code as it can assume that all ops that
exist should be executed and their IR locations are consistent.
diff --git a/compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp b/compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp
index 60f8fdd..19b0f5c 100644
--- a/compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp
+++ b/compiler/src/iree/compiler/Dialect/Stream/Transforms/Passes.cpp
@@ -140,6 +140,7 @@
   // move across devices. We do it before scheduling waves as lifetime doesn't
   // change and it makes the IR cleaner.
   passManager.addPass(IREE::Stream::createRefineUsagePass());
+  addCleanupPatterns(passManager);
 
   //----------------------------------------------------------------------------
   // Stream formation and scheduling