[llvm-dev] [llvm-dev, cfe-dev] Fix failures uncovered by randomly shuffling containers before sorting
Grang, Mandeep Singh via llvm-dev
llvm-dev at lists.llvm.org
Mon Oct 30 13:54:49 PDT 2017
Hi,
I have a patch under review which randomly shuffles a container before
calling std::sort or array_pod_sort: https://reviews.llvm.org/D39245
This is intended to uncover non-deterministic sorting order for elements
with the same key.
However, the patch cannot be merged unless the failures it uncovers can
be fixed - otherwise bots will start breaking as soon as it merges.
The following are the current ninja check-all failures with this patch
(across all targets on an asserts build):
Clang :: Driver/autocomplete.c
Clang :: Misc/diag-template-diffing.cpp
Clang :: Misc/error-limit-multiple-notes.cpp
Clang :: OpenMP/task_firstprivate_codegen.cpp
Clang :: OpenMP/task_private_codegen.cpp
Clang :: OpenMP/taskloop_firstprivate_codegen.cpp
Clang :: OpenMP/taskloop_lastprivate_codegen.cpp
Clang :: OpenMP/taskloop_private_codegen.cpp
Clang :: OpenMP/taskloop_simd_firstprivate_codegen.cpp
Clang :: OpenMP/taskloop_simd_lastprivate
1 warning(s) in tests.
_codegen.cpp
Clang :: OpenMP/taskloop_simd_private_codegen.cpp
Clang :: SemaCXX/builtin-ptrtomember-overload-1.cpp
LLVM :: CodeGen/ARM/switch-minsize.ll
LLVM :: CodeGen/Hexagon/args.ll
LLVM :: CodeGen/Hexagon/expand-condsets-basic.ll
LLVM :: CodeGen/Hexagon/gp-rel.ll
LLVM :: CodeGen/Hexagon/packetize_cond_inst.ll
LLVM :: CodeGen/Hexagon/simple_addend.ll
LLVM :: CodeGen/Hexagon/swp-matmul-bitext.ll
LLVM :: CodeGen/Hexagon/swp-stages4.ll
LLVM :: CodeGen/Hexagon/swp-vsum.ll
LLVM :: CodeGen/X86/switch-bt.ll
LLVM :: CodeGen/X86/switch-density.ll
LLVM :: CodeGen/X86/switch.ll
LLVM :: CodeGen/X86/x86-shrink-wrapping.ll
LLVM :: DebugInfo/X86/multiple-aranges.ll
LLVM :: MC/Hexagon/align.s
LLVM :: MC/Hexagon/asmMap.s
LLVM :: MC/Hexagon/bug20416.s
LLVM :: MC/Hexagon/double-vector-producer.s
LLVM :: MC/Hexagon/duplex-registers.s
LLVM :: MC/Hexagon/instructions/j.s
LLVM :: Transforms/Util/PredicateInfo/testandor.ll
I am trying to fix as many of these as possible. However, it would be
much faster if you can look into the failures related to your specific
areas and fix those :)
In order to reproduce a failure you would need to apply the above patch
and then change calls to std::sort and array_pod_sort with llvm::sort in
the source/header files related to your test case.
Alternately, you can apply these 2 patches which convert *all* std::sort
& array_pod_sort to llvm::sort:
llvm --> https://reviews.llvm.org/differential/diff/120879
clang --> https://reviews.llvm.org/differential/diff/120880
Here's the bugzilla to track this -->
https://bugs.llvm.org/show_bug.cgi?id=35135
--Mandeep
More information about the llvm-dev
mailing list