HomePhabricator

Add a flag to experiment with outlining optional branches.

Description

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

Details

Committed
djasperMar 4 2015, 3:05 AM
Parents
rL231229: Use the unified section list when generating a symbol table
Branches
Unknown
Tags
Unknown