Skip unreachable blocks for CFIInstrInserter verify
authorPetar Jovanovic <petar.jovanovic@mips.com>
Mon, 7 May 2018 11:47:48 +0000 (11:47 +0000)
committerPetar Jovanovic <petar.jovanovic@mips.com>
Mon, 7 May 2018 11:47:48 +0000 (11:47 +0000)
Iterate only through reachable blocks. This finetunes r330706 and
it resolves build issue reported by Craig Topper.

llvm-svn: 331628

llvm/lib/CodeGen/CFIInstrInserter.cpp

index f3bc859..b021d96 100644 (file)
@@ -18,6 +18,7 @@
 /// blocks in a function.
 //===----------------------------------------------------------------------===//
 
+#include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/CodeGen/MachineFunctionPass.h"
 #include "llvm/CodeGen/MachineInstrBuilder.h"
 #include "llvm/CodeGen/MachineModuleInfo.h"
@@ -291,9 +292,9 @@ void CFIInstrInserter::report(const MBBCFAInfo &Pred,
 
 unsigned CFIInstrInserter::verify(MachineFunction &MF) {
   unsigned ErrorNum = 0;
-  for (MachineBasicBlock &CurrMBB : MF) {
-    const MBBCFAInfo &CurrMBBInfo = MBBVector[CurrMBB.getNumber()];
-    for (MachineBasicBlock *Succ : CurrMBB.successors()) {
+  for (auto *CurrMBB : depth_first(&MF)) {
+    const MBBCFAInfo &CurrMBBInfo = MBBVector[CurrMBB->getNumber()];
+    for (MachineBasicBlock *Succ : CurrMBB->successors()) {
       const MBBCFAInfo &SuccMBBInfo = MBBVector[Succ->getNumber()];
       // Check that incoming offset and register values of successors match the
       // outgoing offset and register values of CurrMBB