[PATCH] D28962: Add BFI in constanthoisting pass and do the hoisting selectively

Wei Mi via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 22 11:22:08 PST 2017


wmi added inline comments.


================
Comment at: lib/Transforms/Scalar/ConstantHoisting.cpp:182
   if (BBs.count(Entry))
-    return &Entry->front();
+    return checkFreq(&Entry->front());
 
----------------
davidxl wrote:
> This is a redundant check. 
Indeed.


================
Comment at: lib/Transforms/Scalar/ConstantHoisting.cpp:184
 
   while (BBs.size() >= 2) {
     BasicBlock *BB, *BB1, *BB2;
----------------
davidxl wrote:
> Since we have profile information, it might be worth to find the optimal solution to the insertion problem -- for a given set of use BBs, find a second set of BBs such that 
> 1) a BB in the original set is either included in the second set or dominated by a BB
> 2) the total frequency of second set is minimized.
> 
> The constant materialization instructions are inserted in the BBs in the solution set.
Sure. I will implement that if it is ok to use BFI in consthoisting.


Repository:
  rL LLVM

https://reviews.llvm.org/D28962





More information about the llvm-commits mailing list