diff options
author | Daniel Jasper <djasper@google.com> | 2015-03-04 11:05:34 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2015-03-04 11:05:34 +0000 |
commit | 471e856f499b85943b657cf4bbff918d945c625d (patch) | |
tree | 3e05b7d08a9cb1305b4d1dab2dd02e4eb43d3d6f /llvm/lib/Object/IRObjectFile.cpp | |
parent | 783cbdcd89c30bb5f528e72b04b98ea94d7c7669 (diff) | |
download | llvm-471e856f499b85943b657cf4bbff918d945c625d.zip llvm-471e856f499b85943b657cf4bbff918d945c625d.tar.gz llvm-471e856f499b85943b657cf4bbff918d945c625d.tar.bz2 |
Add a flag to experiment with outlining optional branches.
In a CFG with the edges A->B->C and A->C, B is an optional branch.
LLVM's default behavior is to lay the blocks out naturally, i.e. A, B,
C, in order to improve code locality and fallthroughs. However, if a
function contains many of those optional branches only a few of which
are taken, this leads to a lot of unnecessary icache misses. Moving B
out of line can work around this.
Review: http://reviews.llvm.org/D7719
llvm-svn: 231230
Diffstat (limited to 'llvm/lib/Object/IRObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions