aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorNadav Rotem <nrotem@apple.com>2013-11-12 22:37:16 +0000
committerNadav Rotem <nrotem@apple.com>2013-11-12 22:37:16 +0000
commit53d32211b7c6edcda76f30952c874fa424d6087d (patch)
treef7a1136150ee7e33dedeab66d8f259d0a2197422 /clang/lib/Frontend/CompilerInvocation.cpp
parentdf0197481773050159dae8c5d4a6e287fce4e4c6 (diff)
downloadllvm-53d32211b7c6edcda76f30952c874fa424d6087d.zip
llvm-53d32211b7c6edcda76f30952c874fa424d6087d.tar.gz
llvm-53d32211b7c6edcda76f30952c874fa424d6087d.tar.bz2
FoldBranchToCommonDest merges branches into a single branch with or/and of the condition. It has a heuristics for estimating when some of the dependencies are processed by out-of-order processors. This patch adds another rule to the heuristics that says that if the "BonusInstruction" that we speculatively execute is used by the condition of the second branch then it is okay to hoist it. This change exposes more opportunities for other passes to transform the code. It does not matter that much that we if-convert the code because the selectiondag builder splits or/and branches into multiple branches when profitable.
llvm-svn: 194524
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions