[vm/compiler] graph checker addition

Rationale:
Loop part was not checking anything (no ASSERT).
Also, made test more strict (block should be
in all enveloping loops).
Change-Id: Ib918afa9c130dc8aa26cd8e8104e735075ff1176
Reviewed-on: https://dart-review.googlesource.com/c/92863
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Aart Bik <ajcbik@google.com>
diff --git a/runtime/vm/compiler/backend/flow_graph_checker.cc b/runtime/vm/compiler/backend/flow_graph_checker.cc
index b10e3f2..a07ed6d 100644
--- a/runtime/vm/compiler/backend/flow_graph_checker.cc
+++ b/runtime/vm/compiler/backend/flow_graph_checker.cc
@@ -137,9 +137,9 @@
   ASSERT(prev == last);
   // Make sure loop information, when up-to-date, agrees.
   if (flow_graph_->loop_hierarchy_ != nullptr) {
-    LoopInfo* loop = block->loop_info();
-    if (loop != nullptr) {
-      loop->Contains(block);
+    for (LoopInfo* loop = block->loop_info(); loop != nullptr;
+         loop = loop->outer()) {
+      ASSERT(loop->Contains(block));
     }
   }
 }