summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp
diff options
context:
space:
mode:
authorCong Hou <congh@google.com>2015-11-02 21:24:00 +0000
committerCong Hou <congh@google.com>2015-11-02 21:24:00 +0000
commitb90b9e053109f0da882db37a6071536b2c385393 (patch)
tree4ffa08591c66d360803de87587d15d65c6b58d41 /lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp
parent935d79b0b11f3891a413a2c590602d7f60cf2922 (diff)
downloadbcm5719-llvm-b90b9e053109f0da882db37a6071536b2c385393.tar.gz
bcm5719-llvm-b90b9e053109f0da882db37a6071536b2c385393.zip
In MachineBlockPlacement, filter cold blocks off the loop chain when profile data is available.
In the current BB placement algorithm, a loop chain always contains all loop blocks. This has a drawback that cold blocks in the loop may be inserted on a hot function path, hence increasing branch cost and also reducing icache locality. Consider a simple example shown below: A | B⇆C | D When B->C is quite cold, the best BB-layout should be A,B,D,C. But the current implementation produces A,C,B,D. This patch filters those cold blocks off from the loop chain by comparing the ratio: LoopBBFreq / LoopFreq to 20%: if it is less than 20%, we don't include this BB to the loop chain. Here LoopFreq is the frequency of the loop when we reduce the loop into a single node. In general we have more cold blocks when the loop has few iterations. And vice versa. Differential revision: http://reviews.llvm.org/D11662 llvm-svn: 251833
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/signals/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud