commit e42f6c0ac05bae37be8e2a5fd8861773646eae1b
Author: Han Shen <shenhan@google.com>
Date:   Thu Oct 22 17:26:01 2020 -0700

    Revert "[MBP] Add whole chain to BlockFilterSet instead of individual BB"
    
    This reverts commit adfb5415010fbbc009a4a6298cfda7a6ed4fa6d4.
    
    This is reverted because it caused an chrome error: https://crbug.com/1140168

diff --git a/llvm/lib/CodeGen/MachineBlockPlacement.cpp b/llvm/lib/CodeGen/MachineBlockPlacement.cpp
index b4244bb8bb9..8a866963803 100644
--- a/llvm/lib/CodeGen/MachineBlockPlacement.cpp
+++ b/llvm/lib/CodeGen/MachineBlockPlacement.cpp
@@ -2541,14 +2541,10 @@ MachineBlockPlacement::collectLoopBlockSet(const MachineLoop &L) {
                     MBPI->getEdgeProbability(LoopPred, L.getHeader());
 
     for (MachineBasicBlock *LoopBB : L.getBlocks()) {
-      if (LoopBlockSet.count(LoopBB))
-        continue;
       auto Freq = MBFI->getBlockFreq(LoopBB).getFrequency();
       if (Freq == 0 || LoopFreq.getFrequency() / Freq > LoopToColdBlockRatio)
         continue;
-      BlockChain *Chain = BlockToChain[LoopBB];
-      for (MachineBasicBlock *ChainBB : *Chain)
-        LoopBlockSet.insert(ChainBB);
+      LoopBlockSet.insert(LoopBB);
     }
   } else
     LoopBlockSet.insert(L.block_begin(), L.block_end());
diff --git a/llvm/test/CodeGen/X86/block_set.ll b/llvm/test/CodeGen/X86/block_set.ll
deleted file mode 100644
index bfe391d5b46..00000000000
--- a/llvm/test/CodeGen/X86/block_set.ll
+++ /dev/null
@@ -1,64 +0,0 @@
-; RUN: llc -mtriple=i686-linux < %s | FileCheck %s
-
-define i1 @block_filter() !prof !22{
-; CHECK-LABEL: block_filter
-; CHECK: %.entry
-; CHECK: %.header1
-; CHECK: %.bb1
-; CHECK: %.header2
-; CHECK: %.latch2
-; CHECK: %.cold
-; CHECK: %.pred
-; CHECK: %.problem
-; CHECK: %.latch1
-; CHECK: %.exit
-.entry:
-  %val0 = call i1 @bar()
-  br label %.header1
-
-.header1:
-  %val1 = call i1 @foo()
-  br i1 %val1, label %.bb1, label %.pred, !prof !2
-
-.bb1:
-  %val11 = call i1 @foo()
-  br i1 %val11, label %.header2, label %.pred, !prof !2
-
-.header2:
-  %val2 = call i1 @foo()
-  br i1 %val2, label %.latch2, label %.cold, !prof !10
-
-.cold:
-  %val4 = call i1 @bar()
-  br i1 %val4, label %.latch2, label %.problem
-
-.latch2:
-  %val5 = call i1 @foo()
-  br i1 %val5, label %.header2, label %.latch1, !prof !1
-
-.pred:
-  %valp = call i1 @foo()
-  br label %.problem
-
-.problem:
-  %val3 = call i1 @foo()
-  br label %.latch1
-
-.latch1:
-  %val6 = call i1 @foo()
-  br i1 %val6, label %.header1, label %.exit, !prof !1
-
-.exit:
-  %val7 = call i1 @foo()
-  ret i1 %val7
-}
-
-declare i1 @foo()
-declare i1 @bar()
-
-!1 = !{!"branch_weights", i32 5, i32 5}
-!2 = !{!"branch_weights", i32 60, i32 40}
-!3 = !{!"branch_weights", i32 90, i32 10}
-!10 = !{!"branch_weights", i32 90, i32 10}
-
-!22 = !{!"function_entry_count", i64 100}
