SuccessChanges

Summary

  1. [llvm] Protect signpost map with a mutex (details)
  2. [ELF] Improve R_PPC64_ADDR* relocation tests (details)
  3. [ELF] Error for out-of-range R_PPC64_ADDR16_HA, R_PPC64_ADDR16_HI and their friends (details)
  4. [ELF] Support R_PPC64_ADDR16_HIGH (details)
  5. [flang] Refine WhyNotModifiable() (details)
  6. Revert "[PDB] Defer relocating .debug$S until commit time and parallelize it" (details)
  7. [NFC] cleanup noalias2.ll test (details)
  8. Revert "[SLP]Merge reorder and reuse shuffles." (details)
  9. [NFC] Disallow unused prefixes under Other (details)
  10. [polly][NewPM][test] Fix polly tests under -enable-new-pm (details)
  11. [OPENMP]Do not use OMP_MAP_TARGET_PARAM for data movement directives. (details)
  12. [libc] Extend the current fenv functions to aarch64. (details)
  13. Ensure we don't strip the ConstantExpr carrying a non-type template (details)
  14. Revert "DR2064: decltype(E) is only a dependent type if E is type-dependent, not (details)
Commit a4b42c621b9e2009cfd8bc9265bbf970c7231271 by Jonas Devlieghere
[llvm] Protect signpost map with a mutex

Use a mutex to protect concurrent access to the signpost map. This fixes
nondeterministic crashes in LLDB that appeared after using signposts in
the timer implementation.

Differential revision: https://reviews.llvm.org/D94285
The file was modifiedllvm/lib/Support/Signposts.cpp
Commit d39adeaf440bc0db508b7d2a4eb9ace7f40178fc by i
[ELF] Improve R_PPC64_ADDR* relocation tests
The file was modifiedlld/test/ELF/ppc64-reloc-addr.s
The file was addedlld/test/ELF/ppc64-reloc-addr-err.s
The file was modifiedlld/test/ELF/ppc64-relocs.s
Commit e12e0d66c03c89d8ff0b08a4285f5b74a85a5812 by i
[ELF] Error for out-of-range R_PPC64_ADDR16_HA, R_PPC64_ADDR16_HI and their friends

There are no tests for REL16_* and TPREL16_*.
The file was modifiedlld/ELF/Arch/PPC64.cpp
The file was addedlld/test/ELF/ppc64-reloc-addr16-err.s
Commit 5fcb412ed0831ad763810f9b424149b3b353451a by i
[ELF] Support R_PPC64_ADDR16_HIGH

R_PPC64_ADDR16_HI represents bits 16-31 of a 32-bit value
R_PPC64_ADDR16_HIGH represents bits 16-31 of a 64-bit value.

In the Linux kernel, `LOAD_REG_IMMEDIATE_SYM` defined in `arch/powerpc/include/asm/ppc_asm.h`
uses @l, @high, @higher, @highest to load the 64-bit value of a symbol.

Fixes https://github.com/ClangBuiltLinux/linux/issues/1260
The file was modifiedlld/test/ELF/ppc64-reloc-addr.s
The file was modifiedlld/test/ELF/ppc64-reloc-addr16-err.s
The file was modifiedlld/ELF/Arch/PPC64.cpp
Commit 24e8e21f19f4380e8410a12f9135bfef3c046142 by pklausler
[flang] Refine WhyNotModifiable()

The utility routine WhyNotModifiable() needed to become more
aware of the use of pointers in data-refs; the targets of
pointer components are sometimes modifiable even when the
leftmost ("base") symbol of a data-ref is not.

Added a new unit test for WhyNotModifiable() that uses internal
READ statements (mostly), since I/O semantic checking uses
WhyNotModifiable() for all its definability checking.

Differential Revision: https://reviews.llvm.org/D94849
The file was modifiedflang/include/flang/Evaluate/tools.h
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/lib/Semantics/check-io.cpp
The file was modifiedflang/lib/Semantics/tools.cpp
The file was addedflang/test/Semantics/modifiable01.f90
Commit 5b7aef6eb4b2930971029b984cb2360f7682e5a5 by 31459023+hctim
Revert "[PDB] Defer relocating .debug$S until commit time and parallelize it"

This reverts commit 6529d7c5a45b1b9588e512013b02f891d71bc134.

Reason: Broke the ASan buildbots.
http://lab.llvm.org:8011/#/builders/99/builds/1567
The file was modifiedlld/COFF/PDB.cpp
The file was modifiedllvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp
The file was modifiedllvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp
The file was modifiedllvm/include/llvm/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.h
The file was modifiedlld/COFF/Chunks.cpp
The file was modifiedlld/COFF/Chunks.h
Commit d8ffaa9f7234d8bf40682763373ab060d14adf22 by jeroen.dobbelaere
[NFC] cleanup noalias2.ll test

D75825 and D75828 modified llvm/test/Transforms/Inline/noalias2.ll to handle llvm.assume. The checking though was broken.
The NO_ASSUME has been replaced by a normal CHECK; the ASSUME rules were never triggered and have been removed.
The test checks have been regenerated.

Reviewed By: nikic

Differential Revision: https://reviews.llvm.org/D94978
The file was modifiedllvm/test/Transforms/Inline/noalias2.ll
Commit e463bd53c03ff9183bd30030477dfe6f3b2fdd0c by alexey.bataev
Revert "[SLP]Merge reorder and reuse shuffles."

This reverts commit 438682de6a38ac97f89fa38faf5c8dc9b09cd9ad to fix the
bug with the reducing size of the resulting vector for the entry node
with multiple users.
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR32086.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/PR38339.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/shrink_after_reorder.ll
Commit 27afc091e2c0caa954326129adb86987d1b41c91 by mtrofin
[NFC] Disallow unused prefixes under Other

Differential Revision: https://reviews.llvm.org/D94853
The file was modifiedllvm/test/Other/opt-bisect-legacy-pass-manager.ll
The file was modifiedllvm/test/Other/new-pass-manager.ll
The file was addedllvm/test/Other/lit.local.cfg
The file was modifiedllvm/test/Other/print-slotindexes.ll
The file was modifiedllvm/test/Other/opt-LTO-pipeline.ll
Commit cabe1b11243740d39c0b49c10a8ce86001b1011c by aeubanks
[polly][NewPM][test] Fix polly tests under -enable-new-pm

In preparation for turning on opt's -enable-new-pm by default, this pins
uses of passes via the legacy "opt -passname" with pass names beginning
with "polly-" and "polyhedral-info" to the legacy PM. Many of these
tests use -analyze, which isn't supported in the new PM.

(This doesn't affect uses of "opt -passes=passname").

rL240766 accidentally removed `-polly-prepare` in
phi_not_grouped_at_top.ll, and it also doesn't use the output of
-analyze.

Reviewed By: Meinersbur

Differential Revision: https://reviews.llvm.org/D94266
The file was modifiedpolly/test/ScopInfo/phi_not_grouped_at_top.ll
The file was modifiedllvm/tools/opt/opt.cpp
Commit b272698de790d6603db7992c0c0ad6446b7a52b8 by alexey.bataev
[OPENMP]Do not use OMP_MAP_TARGET_PARAM for data movement directives.

OMP_MAP_TARGET_PARAM flag is used to mark the data that shoud be passed
as arguments to the target kernels, nothing else. But the compiler still
marks the data with OMP_MAP_TARGET_PARAM flags even if the data is
passed to the data movement directives, like target data, target update
etc. This flag is just ignored for this directives and the compiler does
not need to emit it.

Reviewed By: cchen

Differential Revision: https://reviews.llvm.org/D91261
The file was modifiedclang/test/OpenMP/target_data_map_pointer_array_subscript_codegen.cpp
The file was modifiedclang/test/OpenMP/declare_mapper_codegen.cpp
The file was modifiedclang/test/OpenMP/target_data_codegen.cpp
The file was modifiedclang/test/OpenMP/target_data_use_device_ptr_if_codegen.cpp
The file was modifiedclang/test/OpenMP/target_update_depend_codegen.cpp
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntime.cpp
The file was modifiedclang/test/OpenMP/target_map_member_expr_array_section_codegen.cpp
The file was modifiedclang/test/OpenMP/target_enter_data_codegen.cpp
The file was modifiedclang/test/OpenMP/target_exit_data_codegen.cpp
The file was modifiedclang/test/OpenMP/target_exit_data_depend_codegen.cpp
The file was modifiedclang/test/OpenMP/target_update_codegen.cpp
The file was modifiedclang/test/OpenMP/target_data_use_device_ptr_codegen.cpp
The file was modifiedclang/test/OpenMP/target_data_use_device_addr_codegen.cpp
The file was modifiedclang/test/OpenMP/target_enter_data_depend_codegen.cpp
Commit 7bd3702b64043fb623bf82c1d1a8a2d168142219 by sivachandra
[libc] Extend the current fenv functions to aarch64.

This change does not try to move the common parts of x86 and aarch64 and
build few abstractions over them. While this is possible, x86 story
needs a bit of cleanup, especially around manipulation of the mxcsr
register. Moreover, on x86 one can raise exceptions without performing
exception raising operations. So, all of this can be done in follow up
patches.

Reviewed By: lntue

Differential Revision: https://reviews.llvm.org/D94947
The file was addedlibc/utils/FPUtil/aarch64/FEnv.h
The file was modifiedlibc/utils/FPUtil/FEnv.h
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
Commit 5a684b70dc74f9f671f8eb61993a25769ec68117 by richard
Ensure we don't strip the ConstantExpr carrying a non-type template
argument's value off it during substitution.
The file was modifiedclang/lib/Sema/SemaTemplateInstantiate.cpp
The file was modifiedclang/test/SemaTemplate/temp_arg_nontype_cxx17.cpp
Commit da986511fb9da1a46a0ca4dba2e49e2426036303 by richard
Revert "DR2064: decltype(E) is only a dependent type if E is type-dependent, not
if E is merely instantiation-dependent."

This change leaves us unable to distinguish between different function
templates that differ in only instantiation-dependent ways, for example

template<typename T> decltype(int(T())) f();
template<typename T> decltype(int(T(0))) f();

We'll need substantially better support for types that are
instantiation-dependent but not dependent before we can go ahead with
this change.

This reverts commit e3065ce238475ec202c707f4c58d90df171626ca.
The file was modifiedclang/test/Sema/invalid-bitwidth-expr.mm
The file was modifiedclang/lib/AST/Type.cpp
The file was modifiedclang/www/cxx_dr_status.html
The file was modifiedclang/test/SemaCXX/invalid-template-base-specifier.cpp
The file was modifiedclang/test/SemaTemplate/temp_arg_template_cxx1z.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/include/clang/AST/DependenceFlags.h
The file was modifiedclang/test/CodeGenCXX/mangle-subst.cpp
The file was modifiedclang/test/CXX/drs/dr20xx.cpp
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
The file was modifiedclang/test/SemaCXX/coroutines.cpp
The file was modifiedclang/test/SemaTemplate/dependent-expr.cpp