HomePhabricator

MachineCombiner Pass for selecting faster instruction

Description

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

Details

Committed
ghoflehnerAug 3 2014, 3:03 PM
Parents
rL214668: Driver: Simplify a use of the path API
Branches
Unknown
Tags
Unknown

Event Timeline