aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineCombiner.cpp
diff options
context:
space:
mode:
authorGerolf Hoflehner <ghoflehner@apple.com>2014-08-03 22:03:40 +0000
committerGerolf Hoflehner <ghoflehner@apple.com>2014-08-03 22:03:40 +0000
commit35ba467122c5dea1c76d7af586036502c8148834 (patch)
tree2b1c2e3a1334afe0c92a04e980b6205680a8bee2 /llvm/lib/CodeGen/MachineCombiner.cpp
parent6bcf724f52145b9e7fa044c91c6398d0158559f8 (diff)
downloadllvm-35ba467122c5dea1c76d7af586036502c8148834.zip
llvm-35ba467122c5dea1c76d7af586036502c8148834.tar.gz
llvm-35ba467122c5dea1c76d7af586036502c8148834.tar.bz2
MachineCombiner Pass for selecting faster instruction
sequence - AArch64 target support This patch turns off madd/msub generation in the DAGCombiner and generates them in the MachineCombiner instead. It replaces the original code sequence with the combined sequence when it is beneficial to do so. When there is no machine model support it always generates the madd/msub instruction. This is true also when the objective is to optimize for code size: when the combined sequence is shorter is always chosen and does not get evaluated. When there is a machine model the combined instruction sequence is evaluated for critical path and resource length using machine trace metrics and the original code sequence is replaced when it is determined to be faster. rdar://16319955 llvm-svn: 214669
Diffstat (limited to 'llvm/lib/CodeGen/MachineCombiner.cpp')
0 files changed, 0 insertions, 0 deletions