1. [SLP] fix miscompile on min/max reductions with extra uses (PR43948) (details)
  2. Revert "[RISCV] Use compiler-rt if no GCC installation detected" (details)
Commit a3e61946c5bd7bdfab15af76b292e52d6ffa27f7 by spatel
[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:
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/used-reduced-op.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction.ll
Commit aeaddf926a74814aa4f33050cfc12b19f419f1b0 by richard
Revert "[RISCV] Use compiler-rt if no GCC installation detected"
This change causes test failures for builds configured with
This reverts commit 3289352e6bb9d2949c678c625478024bf2a5fbfb.
The file was modifiedclang/lib/Driver/ToolChains/RISCVToolchain.h
The file was addedclang/test/Driver/Inputs/basic_riscv64_nogcc_tree/riscv64-unknown-elf/lib/crtend.o
The file was modifiedclang/test/Driver/riscv32-toolchain-extra.c
The file was modifiedclang/lib/Driver/ToolChains/RISCVToolchain.cpp
The file was modifiedclang/test/Driver/riscv64-toolchain-extra.c
The file was addedclang/test/Driver/Inputs/basic_riscv32_nogcc_tree/riscv32-unknown-elf/lib/crtend.o
The file was addedclang/test/Driver/Inputs/basic_riscv64_nogcc_tree/riscv64-unknown-elf/lib/crtbegin.o
The file was addedclang/test/Driver/Inputs/basic_riscv32_nogcc_tree/riscv32-unknown-elf/lib/crtbegin.o