aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2022-03-03 13:32:08 +0000
committerFlorian Hahn <flo@fhahn.com>2022-03-03 13:32:09 +0000
commit0f261256e01f55aac04cf271f238e36fda8013d5 (patch)
treebd46bb68d607178aff8b62d991cb1861deeaf39f /llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
parent28ccf326725d0fea8648834c8acdbdfe3aa40d7a (diff)
downloadllvm-0f261256e01f55aac04cf271f238e36fda8013d5.zip
llvm-0f261256e01f55aac04cf271f238e36fda8013d5.tar.gz
llvm-0f261256e01f55aac04cf271f238e36fda8013d5.tar.bz2
[AArch64] Use first op of FADDPv* instead of implicit def.
This patch updates the FADDPv* patterns that only use the lower half of the result register. For those patterns, the second operand does not matter because its results won't be used. Instead of introducing new implicit defs for those operands, just use the first operand. The problem with using new implicit defs is that register allocation can introduce unnecessary dependencies by using a different register than the first operand. For motivating cases, see the changes in the fadd_reduction_*_in_loop cases. Without this change, the first faddp in the loop has an unnecessary additional dependency through v0, which is also used for a cross-iteration reduction. This can noticeable impact performance. For slightly bigger loops, this change can improve performance by 15%. Reviewed By: sdesmalen, t.p.northover Differential Revision: https://reviews.llvm.org/D120706
Diffstat (limited to 'llvm/lib/Analysis/ModuleSummaryAnalysis.cpp')
0 files changed, 0 insertions, 0 deletions