[PATCH] D89088: [MBP] Add whole chain to BlockFilterSet instead of individual BB

Guozhi Wei via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 13 14:25:40 PDT 2020


Carrot added inline comments.


================
Comment at: llvm/test/CodeGen/X86/block_set.ll:3
+
+define i1 @block_filter() !prof !22{
+; CHECK-LABEL: block_filter
----------------
davidxl wrote:
> Without this patch, the 'cold' block will be outlined outside the loop nests, right?  It also makes the outer loop tighter which seems better. With this change, if the outer loop is hot, there will be a hole there.
The cold block will not be put outside of the loop nests no matter with or without this patch. 

The LoopFreq value of inner loop is small enough so cold block is included in the chain for inner loop.
The LoopFreq value of outer loop is large enough so cold block is excluded in the BlockFilterSet of outer loop, but other BBs of inner loop is included. When we layout header2, the whole inner loop chain will be merged into the outer loop chain, including cold block. And the edge from .cold to .problem is used to decrement UnscheduledPredecessors of .problem chain, this is unexpected.



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D89088/new/

https://reviews.llvm.org/D89088



More information about the llvm-commits mailing list