[PATCH] D11605: [LoopUnswitch] Add block frequency analysis to recognize hot/cold regions
Chen Li
meloli87 at gmail.com
Wed Jul 29 12:20:40 PDT 2015
chenli added inline comments.
================
Comment at: lib/Transforms/Scalar/LoopUnswitch.cpp:496
@@ +495,3 @@
+ // is less than ColdFrequency% of the function entry baseline frequency.
+ BlockFrequency LoopEntryFreq = BFI->getBlockFreq(loopPreheader);
+ if (LoopUnswitchWithBlockFrequency && LoopEntryFreq < ColdEntryFreq)
----------------
I chose to use loop preheader's frequency for coldness comparison. This will ignore the size of the loop because it does not count backedges or iteration numbers. My reasoning is that if the loop was only entered once in the pass 1000 executions, we should be confident that it will never be entered again. Therefore, no matter how many times the loop iterates, it shouldn't affect our decision. But I could see the other way around. I am open to change it if anyone prefers the other way.
http://reviews.llvm.org/D11605
More information about the llvm-commits
mailing list