Changes

Summary

  1. [libcxx] Reenable ranges for clang-cl (details)
  2. [scudo] Use require_constant_initialization (details)
  3. [scudo][NFC] Fix clang-tidy warnings (details)
  4. [InstCombine] Add eq-of-parts tests using or (NFC) (details)
  5. [NFC][ARM] Regenerate arm64-atomic.ll test (details)
  6. Revert "[NFC][ARM] Regenerate arm64-atomic.ll test" (details)
  7. [AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee (details)
  8. [libc++] [test] Don't nasty-macro `__z` yet; we actually use that one. (details)
  9. [libc++] [test] Don't nasty-macro `__opt` yet; we actually use that one. (details)
  10. [NFC][ARM] Regenerate arm64-atomic.ll test (details)
Commit 8d0dfa0d57467a2fd2c7f4ae2f1ab134db04af9e by martin
[libcxx] Reenable ranges for clang-cl

This reverts a224bf8ec423b42eea251407e7a6cc8398a5edf4 and fixes the
underlying issue.

The underlying issue is simply that MSVC headers contains a define
like "#define __in", where __in is one macro in the MSVC Source
Code Annotation Language, defined in sal.h

Just use a different variable name than "__in"
__indirectly_readable_impl, and add "__in" to nasty_macros.h just
like the existing __out. (Also adding a couple more potentially
conflicting ones.)

Differential Revision: https://reviews.llvm.org/D101613
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/greater_equal.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.nodiscard.verify.cpp (diff)
The file was modifiedlibcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/not_equal_to.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/locale_dependent.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/equal_to.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.range/sentinel_t.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/iter_reference_t.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/incrementable.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/weakly_incrementable.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.range/iterator_t.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/greater.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/set/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.winc/subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.refinements/input_range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_rvalue_reference_t.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/include/__iterator/concepts.h (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sized_sentinel_for.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/strings/string.view/enable_borrowed_range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/input_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.cbegin/incomplete.compile.verify copy.cpp (diff)
The file was modifiedlibcxx/include/__config (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/incrementable_traits.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/incrementable.traits/iter_difference_t.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.range/enable_borrowed_range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.primitives/iterator.traits/cxx20_iterator_traits.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.cend/incomplete.compile.verify.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/support/nasty_macros.h (diff)
The file was modifiedlibcxx/test/std/ranges/range.refinements/common_range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirectly_readable_traits.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/views/enable_borrowed_range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.range/helper_aliases.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.begin/incomplete.compile.verify.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/input_or_output_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/less_equal.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/optional/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.end/end.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.range/range.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.begin/begin.pass.cpp (diff)
The file was modifiedlibcxx/test/libcxx/iterators/iterator.requirements/iterator.concepts/integer_like.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/ranges/range.access/range.access.end/incomplete.compile.verify.cpp (diff)
The file was modifiedlibcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp (diff)
The file was modifiedlibcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp (diff)
The file was modifiedlibcxx/test/std/utilities/function.objects/range.cmp/less.pass.cpp (diff)
Commit d56ef8523c71b2a9b1629265be276b3871509e7b by Vitaly Buka
[scudo] Use require_constant_initialization

Attribute guaranties safe static initialization of globals.

Reviewed By: hctim

Differential Revision: https://reviews.llvm.org/D101514
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/mutex.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/local_cache.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary32.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/quarantine.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/stack_depot.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/stats.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/internal_defs.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/wrappers_c.cpp (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/tsd_exclusive.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/list.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/options.h (diff)
The file was modifiedcompiler-rt/lib/scudo/standalone/secondary.h (diff)
Commit 95aa116d0cf3fcc67bfab050fda132b14960c4df by Vitaly Buka
[scudo][NFC] Fix clang-tidy warnings
The file was modifiedcompiler-rt/lib/scudo/standalone/secondary.h (diff)
Commit 879fe3097c83f30938014bca06a0099c4c0c34ea by nikita.ppv
[InstCombine] Add eq-of-parts tests using or (NFC)

or-ne is the conjugated pattern for and-eq.
The file was modifiedllvm/test/Transforms/InstCombine/eq-of-parts.ll (diff)
Commit d9856b12f2be257f1b7aaccde71eb0421a1aaaf3 by thatlemon
[NFC][ARM] Regenerate arm64-atomic.ll test

Pre-requisite for D101163, the NOLSE-0O case shows registers being
spilled inside the rmw loop.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll (diff)
Commit 83c540dcd350001e14712a40b4ed3119a22bc91b by thatlemon
Revert "[NFC][ARM] Regenerate arm64-atomic.ll test"

This reverts commit d9856b12f2be257f1b7aaccde71eb0421a1aaaf3.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll (diff)
Commit 0175999805cf05d91c8a127ebd8c9d54a640abe9 by Yaxun.Liu
[AMDGPU] Add options -mamdgpu-ieee -mno-amdgpu-ieee

AMDGPU backend need to know whether floating point opcodes that support exception
flag gathering quiet and propagate signaling NaN inputs per IEEE754-2008, which is
conveyed by a function attribute "amdgpu-ieee". "amdgpu-ieee"="false" turns this off.
Without this function attribute backend assumes it is on for compute functions.

-mamdgpu-ieee and -mno-amdgpu-ieee are added to Clang to control this function attribute.
By default it is on. -mno-amdgpu-ieee requires -fno-honor-nans or equivalent.

Reviewed by: Matt Arsenault

Differential Revision: https://reviews.llvm.org/D77013
The file was modifiedclang/include/clang/Driver/Options.td (diff)
The file was modifiedclang/lib/CodeGen/TargetInfo.cpp (diff)
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp (diff)
The file was addedclang/test/CodeGenOpenCL/amdgpu-ieee.cl
The file was modifiedclang/include/clang/Basic/CodeGenOptions.def (diff)
The file was modifiedclang/include/clang/Basic/DiagnosticDriverKinds.td (diff)
Commit 8a5e0d956396f07d2241091693f8a714a2483356 by arthur.j.odwyer
[libc++] [test] Don't nasty-macro `__z` yet; we actually use that one.

This reverts one of the macros just added in D101613, because it turns out
that the <utility> header actually uses the identifiers __x, __y, __z.
We probably *shouldn't* use __z if it's reserved on Windows; but since
it's not causing us any active problem even on Windows, I think this is
the safest way to unbreak the test.
The file was modifiedlibcxx/test/support/nasty_macros.h (diff)
Commit 9cad090e10e439bf66f0fc5ff1b7fbe1a436221c by arthur.j.odwyer
[libc++] [test] Don't nasty-macro `__opt` yet; we actually use that one.

This reverts another of the macros just added in D101613, because it turns out
that the <optional> and <filesystem> headers use the identifier __opt.
The file was modifiedlibcxx/test/support/nasty_macros.h (diff)
Commit 5a42538b769e36908c0e96b99f3acf32026b3e53 by thatlemon
[NFC][ARM] Regenerate arm64-atomic.ll test

Pre-requisite for D101163, the `NOLSE-0O` case shows registers being
spilled inside the rmw loop.

Use two separate prefixes for the `LSE-O0` case as some outputs differ
only by a comment that update_llc_test_checks.py ignores but lit does
not, causing the test to fail unexpectedly when run.
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll (diff)