aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/MachineTraceMetrics.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2019-11-13 15:41:26 -0500
committerSanjay Patel <spatel@rotateright.com>2019-11-13 15:57:35 -0500
commita3e61946c5bd7bdfab15af76b292e52d6ffa27f7 (patch)
treee774948420156e303bbf01091ce5984b38dec136 /llvm/lib/CodeGen/MachineTraceMetrics.cpp
parent52980576ee4a5683aa9a428b76335ed617f142ab (diff)
downloadllvm-a3e61946c5bd7bdfab15af76b292e52d6ffa27f7.zip
llvm-a3e61946c5bd7bdfab15af76b292e52d6ffa27f7.tar.gz
llvm-a3e61946c5bd7bdfab15af76b292e52d6ffa27f7.tar.bz2
[SLP] fix miscompile on min/max reductions with extra uses (PR43948)
The bug manifests as replacing a reduction operand with an undef value. The problem appears to be limited to cases where a min/max reduction has extra uses of the compare operand to the select. In the general case, we are tracking "ExternallyUsedValues" and an "IgnoreList" of the reduction operations, but those may not apply to the final compare+select in a min/max reduction. For that, we use replaceAllUsesWith (RAUW) to ensure that the new vectorized reduction values are transferred to all subsequent users. Differential Revision: https://reviews.llvm.org/D70148
Diffstat (limited to 'llvm/lib/CodeGen/MachineTraceMetrics.cpp')
0 files changed, 0 insertions, 0 deletions