SuccessChanges

Summary

  1. [libc++] Implement LWG3435 (constraints on reverse_iterator and move_iterator) (details)
  2. [LoopUnroll] Add additional test with one unpredictable exit (NFC) (details)
  3. [GlobalISel] Add G_SBFX/G_UBFX to computeKnownBits (details)
  4. [flang] Fix folding of CMPLX (details)
  5. Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always). (details)
  6. [InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat (details)
  7. [Constants][PowerPC] Check exactlyValue for ppc_fp128 in isNullValue (details)
  8. [flang] Accept BOZ in array constructors w/o types (details)
  9. [test] Update c-linkage-available_externally.c (details)
  10. [AMDGPU] Fix a crash when selecting a particular case of buffer_load_format_d16 (details)
  11. [test] Update more clang/test/Profile tests (details)
  12. [flang] Catch procedure pointer interface error (details)
  13. [LoopUnroll] Eliminate PreserveCondBr parameter and fix a bug in the process (details)
  14. A couple style tweaks on top of 5c0d1b2f9 [nfc] (details)
  15. [LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch (details)
  16. [flang] Support known constant lengths in DynamicType (details)
  17. [NFC][compiler-rt][hwasan] Refactor hwasan functions (details)
  18. [NFC] Add missing includes for LLVM_ENABLE_MODULES builds (details)
  19. Kill a variable which is unused after cddcc4cf [nfc] (details)
  20. [flang] Fix crash on structure constructor as selector (details)
  21. [libc++] Also build the static library in the Apple cache (details)
  22. [libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread (details)
  23. [flang] Emit error about missing interface when needed (details)
  24. [flang] Catch errors in function calls instead of crashing (details)
  25. [CMake][ELF] Add -fno-semantic-interposition for GCC and Clang>=13 (details)
  26. [libc++] Simplify apple-install-libcxx since we always use the same CMake cache (details)
  27. [flang] Fix spurious "already declared" errors for interfaces (details)
  28. [BuildLibCalls] Properly set ABI attributes on arguments (details)
  29. [TargetLowering] Only inspect attributes in the arguments for ArgListEntry (details)
  30. [mlir] Remove redundant loads (details)
  31. [HIP] Fix amdgcn builtin for long type (details)
  32. [mlir-lsp-server] Add support for tracking the use/def chains of symbols (details)
  33. [gn build] port d1d36f7ad (llvm-tapi-diff) (details)
  34. [mlir][SPIRV] Add lowering for math.log1p operation to SPIR-V dialect. (details)
  35. [NFC] Add ArrayRef includes to two files. (details)
  36. [RISCV] Simplify some code in RISCVInsertVSETVLI by calling an existing function that does the same thing. NFCI (details)
  37. [CSSPGO][llvm-profgen] Make extended binary the default output format (details)
  38. [lld/mac] Add test coverage for --reproduce + -flat_namespace (details)
  39. Revert "Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always)." (details)
  40. [scudo] Rework Vector/String (details)
  41. [NFC] Remove checking pointee type for byval/preallocated type (details)
  42. [AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering. (details)
  43. Revert "[llvm] llvm-tapi-diff" (details)
  44. Revert "[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering." (details)
  45. [AMDGPU] [IndirectCalls] Don't propagate attributes to address taken functions and their callees (details)
  46. Add LLDB in release binaries by default (details)
  47. [Sema][RISCV][SVE] Allow ?: to select Typedef BuiltinType in C (details)
  48. [Format] Fix incorrect pointer detection (details)
  49. [Debug-Info] handle DW_CC_pass_by_value/DW_CC_pass_by_reference under strict DWARF. (details)
  50. [flang] Change capitalization for Adjustl/r (details)
  51. AArch64: support atomic zext/sextloads (details)
  52. [mlir][linalg] Cleanup left over uses of deprecated LinalgOp methods. (details)
  53. [SelectionDAG] Extend FoldConstantVectorArithmetic to SPLAT_VECTOR (details)
  54. [libcxx] Don't use an undefined '+' in unsigned/octal/hexal print formats (details)
  55. [lldb][NFC] Remove a redundant call to weak_ptr::expired (details)
  56. [test] Fix accidental match in parent_recurse_depth.s (details)
  57. Re-land ae4303b42c, "Track PHI values through register coalescing" (details)
  58. Revert "[gn build] port d1d36f7ad (llvm-tapi-diff)" (details)
  59. [InstCombine] add tests for sext-of-trunc-of-lshr; NFC (details)
  60. [InstCombine] convert lshr to ashr to eliminate cast op (details)
  61. [mlir] Catch nonconvertible types in async conversion (details)
  62. [AArch64][SVE] Add support for using reverse forms of SVE2 shifts (details)
  63. [clang][AST] Set correct DeclContext in ASTImporter lookup table for ParmVarDecl. (details)
  64. [flang] Generate type info symbols outside of derived type scopes (details)
  65. [AMDGPU][MC][NFC] Fixed typos in parser (details)
  66. [clang][deps] Add argument for customizing PCM paths (details)
  67. [AMDGPU][GlobalISel] Legalize G_ABS (details)
  68. [flang][driver] Add support for `-module-suffix` (details)
  69. [clang][deps] Support object files (details)
  70. [InstCombine] add/adjust test comments; NFC (details)
  71. [HIP] Fix spack HIP device lib detection (details)
  72. [AArch64] Further enable UnrollAndJam (details)
  73. [OpenCL][NFC] Test commit: tidy up whitespace in comment (details)
  74. [libc++] Use the using_if_exists attribute when provided (details)
  75. Revert "[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat" (details)
  76. [clang-format] NFC, 2% improvement in overall clang-formatted status (now 50%) (details)
  77. Temporarily remove one of the tests added in effb87dfa810a (details)
  78. [InstCombine] add tests for pow() reassociation; NFC (details)
  79. [flang][driver] Add checks for missing option arguments (details)
  80. [mlir][openacc] Conversion of data operands in acc.data to LLVM IR dialect (details)
  81. [OPENMP]Fix PR49790: Constexpr values not handled in `omp declare mapper` clause. (details)
  82. [gn build] (manually) port de07b1e84d8de9 (details)
  83. [mlir] Mark VectorToSCF patterns as recursive (details)
  84. Revert test fixups after e9a9c850989e (which reverted a14fc74). (details)
  85. Temporarily remove another test added in one of the tests added in effb87d (details)
  86. [mlir][linalg] Refactor PadTensorOpVectorizationPattern (NFC) (details)
Commit e4d3a993c2675f46cbe99acd1bf6e6d39d9c1aee by Louis Dionne
[libc++] Implement LWG3435 (constraints on reverse_iterator and move_iterator)
The file was modifiedlibcxx/include/iterator
The file was modifiedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.pass.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.cons/assign.LWG3435.verify.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/reverse.iterators/reverse.iter.cons/ctor.reverse_iterator.LWG3435.verify.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/move_iterator.compile.fail.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/ctor.convert.LWG3435.verify.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/iter.compile.fail.cpp
The file was modifiedlibcxx/docs/Cxx2bStatusIssuesStatus.csv
The file was addedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/ctor.iter.explicit.verify.cpp
The file was addedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op=/assign.LWG3435.verify.cpp
The file was removedlibcxx/test/std/iterators/predef.iterators/move.iterators/move.iter.ops/move.iter.op.const/convert.compile.fail.cpp
Commit 33e41eaecdd7f71184b0bc9dbfdc2892aa45534a by nikita.ppv
[LoopUnroll] Add additional test with one unpredictable exit (NFC)

One exit is unpredictable, the other has a known trip count. For
one function the predictable exit is the latch exit, for the other
the non-latch exit. Currently they are treated differently.
The file was removedllvm/test/Transforms/LoopUnroll/full-unroll-non-latch-exit.ll
The file was addedllvm/test/Transforms/LoopUnroll/full-unroll-one-unpredictable-exit.ll
Commit 53ab2d821ed5bf282a733e87e8f53511c55e5ea2 by brendon.cahoon
[GlobalISel] Add G_SBFX/G_UBFX to computeKnownBits

Differential Revision: https://reviews.llvm.org/D102969
The file was modifiedllvm/lib/CodeGen/GlobalISel/GISelKnownBits.cpp
The file was modifiedllvm/unittests/CodeGen/GlobalISel/KnownBitsTest.cpp
Commit 6fa5353a5696bf8c4c2689126a025330c72aa8f9 by pklausler
[flang] Fix folding of CMPLX

The code for folding calls to the intrinsic function CMPLX was
incorrectly dependent on the number of arguments to distinguish its
two cases (conversion from one kind of complex to another, and
composition of a complex value from real & imaginary parts).
This was wrong since the optional KIND= argument has already been
taken into account by intrinsic processing; instead, the type of
the first argument should decide the issue.

Differential Revision: https://reviews.llvm.org/D103568
The file was modifiedflang/lib/Evaluate/fold-complex.cpp
Commit 41b3088c3f33d712e3d2f64b66ae4eb701fa4bfb by kda
Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always).

In addition:
  - optionally add global flag to capture compile intent for UAR:
    __asan_detect_use_after_return_always.
    The global is a SANITIZER_WEAK_ATTRIBUTE.

for issue: https://github.com/google/sanitizers/issues/1394

Reviewed By: vitalybuka

Differential Revision: https://reviews.llvm.org/D103304
The file was modifiedcompiler-rt/lib/asan/asan_interface.inc
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/uar_and_exceptions.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/scariness_score_test.cpp
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/fake-stack.ll
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/uar_signals.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/stack-use-after-return.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/pass-struct-byval-uar.cpp
The file was modifiedcompiler-rt/lib/asan/asan_rtl.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/heavy_uar_test.cpp
Commit a14fc749aab2c8e1a45d19d512255ebfc69357c3 by i
[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat

`__profd_*` variables are referenced by code only when value profiling is
enabled. If disabled (e.g. default -fprofile-instr-generate), the symbols just
waste space on ELF/Mach-O. We change the comdat symbol from `__profd_*` to
`__profc_*` because an internal symbol does not provide deduplication features
on COFF. The choice doesn't matter on ELF.

(In -DLLVM_BUILD_INSTRUMENTED_COVERAGE=on build, there is now no `__profd_*` symbols.)

On Windows this enables further optimization. We are no longer affected by the
link.exe limitation: an external symbol in IMAGE_COMDAT_SELECT_ASSOCIATIVE can
cause duplicate definition error.
https://lists.llvm.org/pipermail/llvm-dev/2021-May/150758.html
We can thus use llvm.compiler.used instead of llvm.used like ELF (D97585).
This avoids many `/INCLUDE:` directives in `.drectve`.

Here is rnk's measurement for Chrome:
```
This reduced object file size of base_unittests.exe, compiled with coverage, optimizations, and gmlt debug info by 10%:

#BEFORE

$ find . -iname '*.obj' | xargs du -b | awk '{ sum += $1 } END { print sum}'
1047758867

$ du -cksh base_unittests.exe
82M     base_unittests.exe
82M     total

# AFTER

$ find . -iname '*.obj' | xargs du -b | awk '{ sum += $1 } END { print sum}'
937886499

$ du -cksh base_unittests.exe
78M     base_unittests.exe
78M     total
```

Reviewed By: davidxl, rnk

Differential Revision: https://reviews.llvm.org/D103372
The file was modifiedllvm/test/Instrumentation/InstrProfiling/icall.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/comdat.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/profiling.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modifiedllvm/test/Instrumentation/InstrProfiling/linkage.ll
The file was modifiedllvm/test/Transforms/PGOProfile/comdat_internal.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/platform.ll
Commit cd9e1a020cf0902e79ae1178cc4b93f5c5ce9381 by Jinsong Ji
[Constants][PowerPC] Check exactlyValue for ppc_fp128 in isNullValue

PPC_FP128 determines isZero/isNan/isInf using high-order double value
only. Checking isZero/isNegative might return the isNullValue unexpectedly.
eg:
   0xM0000000000000000FFFFFFFFFFFFFFFFF

isZero, but it is not NullValue.

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D103634
The file was modifiedllvm/test/CodeGen/PowerPC/ppc_fp128-bcwriter.ll
The file was modifiedllvm/lib/IR/Constants.cpp
Commit e7a53f1e0472a991cea26c6e25594c3a1a8707ec by pklausler
[flang] Accept BOZ in array constructors w/o types

As a benign extension common to other Fortran compilers,
accept BOZ literals in array constructors w/o explicit
types, treating them as integers.

Differential Revision: https://reviews.llvm.org/D103569
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/docs/Extensions.md
The file was modifiedflang/include/flang/Common/Fortran-features.h
Commit ba1fb0ff8c9f9ef7f9b7d1fe43cb95c8d1363f78 by i
[test] Update c-linkage-available_externally.c
The file was modifiedclang/test/Profile/c-linkage-available_externally.c
Commit 37821155c972b06de1af20ffe2282d7476d7f157 by julien.pages
[AMDGPU] Fix a crash when selecting a particular case of buffer_load_format_d16

In this particular example, we had a crash when compiling it
for several architectures. This patch extends the legalization
of extract_subvector to avoid this problem.

Differential Revision: https://reviews.llvm.org/D103344
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp
The file was addedllvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.buffer.load.format.v3f16.ll
Commit da3ed58b97c1cc1356b7732d5dcbb6e4de3057da by i
[test] Update more clang/test/Profile tests
The file was modifiedclang/test/Profile/cxx-linkage.cpp
The file was modifiedclang/test/Profile/c-linkage.c
Commit f8f7002828ec66cd6261d3e00312e9b1f4b59b79 by pklausler
[flang] Catch procedure pointer interface error

A procedure pointer is allowed to name a specific intrinsic function
from F'2018 table 16.2 as its interface, but not other intrinsic
procedures.  Catch this error, and thereby also fix a crash resulting
from a failure later in compilation from failed characteristics;
while here, also catch the similar error with initializers.

Differential Revision: https://reviews.llvm.org/D103570
The file was modifiedflang/lib/Semantics/check-declarations.cpp
The file was modifiedflang/lib/Evaluate/characteristics.cpp
Commit 5c0d1b2f902aa6a9cf47cc7e42c5b83bb2217cf9 by listmail
[LoopUnroll] Eliminate PreserveCondBr parameter and fix a bug in the process

This builds on D103584. The change eliminates the coupling between unroll heuristic and implementation w.r.t. knowing when the passed in trip count is an exact trip count or a max trip count. In theory the new code is slightly less powerful (since it relies on exact computable trip counts), but in practice, it appears to cover all the same cases. It can also be extended if needed.

The test change shows what appears to be a bug in the existing code around the interaction of peeling and unrolling. The original loop only ran 8 iterations. The previous output had the loop peeled by 2, and then an exact unroll of 8. This meant the loop ran a total of 10 iterations which appears to have been a miscompile.

Differential Revision: https://reviews.llvm.org/D103620
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
The file was modifiedllvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp
The file was modifiedllvm/test/Transforms/LoopUnroll/pr45939-peel-count-and-complete-unroll.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/UnrollLoop.h
Commit cddcc4cff5052bc8a2311fea83f54b0caa1cbb4c by listmail
A couple style tweaks on top of 5c0d1b2f9 [nfc]
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
Commit d0ee8b64ecf359737ce550d8f47f465ab6657be7 by tejohnson
[LTO] Fix -fwhole-program-vtables handling after HIP ThinLTO patch

A recent change (D99683) to support ThinLTO for HIP caused a regression
when compiling cuda code with -flto=thin -fwhole-program-vtables.
Specifically, we now get an error:
error: invalid argument '-fwhole-program-vtables' only allowed with '-flto'

This error is coming from the device offload cc1 action being set up for
the cuda compile, for which -flto=thin doesn't apply and gets dropped.
This is a regression, but points to a potential issue that was silently
occurring before the patch, details below.

Before D99683, the check for fwhole-program-vtables in the driver looked
like:

  if (WholeProgramVTables) {
    if (!D.isUsingLTO())
      D.Diag(diag::err_drv_argument_only_allowed_with)
          << "-fwhole-program-vtables"
          << "-flto";
    CmdArgs.push_back("-fwhole-program-vtables");
  }

And D.isUsingLTO() returned true since we have -flto=thin. However,
because the cuda cc1 compile is doing device offloading, which didn't
support any LTO, there was other code that suppressed -flto* options
from being passed to the cc1 invocation. So the cc1 invocation silently
had -fwhole-program-vtables without any -flto*. This seems potentially
problematic, since if we had any virtual calls we would get type test
assume sequences without the corresponding LTO pass that handles them.

However, with the patch, which adds support for device offloading LTO
option -foffload-lto=thin, the code has changed so that we set a bool
IsUsingLTO based on either -flto* or -foffload-lto*, depending on
whether this is the device offloading action. For the device offload
action in our compile, since we don't have -foffload-lto, IsUsingLTO is
false, and the check for LTO with -fwhole-program-vtables now fails.

What we should do is only pass through -fwhole-program-vtables to the
cc1 invocation that has LTO enabled (either the device offload action
with -foffload-lto, or the non-device offload action with -flto), and
otherwise drop the -fwhole-program-vtables for the non-LTO action.
Then we should error only if we have -fwhole-program-vtables without any
-f*lto* options.

Differential Revision: https://reviews.llvm.org/D103579
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Driver/hip-options.hip
The file was modifiedclang/test/Driver/cuda-options.cu
Commit ac9641753bba836f2c22e0a2366b5233788d50b3 by pklausler
[flang] Support known constant lengths in DynamicType

The constexpr-capable class evaluate::DynamicType represented
CHARACTER length only with a nullable pointer into the declared
parameters of types in the symbol table, which works fine for
anything with a declaration but turns out to not suffice to
describe the results of the ACHAR() and CHAR() intrinsic
functions.  So extend DynamicType to also accommodate known
constant CHARACTER lengths, too; use them for ACHAR & CHAR;
clean up several use sites and fix regressions found in test.

Differential Revision: https://reviews.llvm.org/D103571
The file was modifiedflang/include/flang/Evaluate/type.h
The file was modifiedflang/lib/Evaluate/tools.cpp
The file was modifiedflang/lib/Evaluate/intrinsics.cpp
The file was modifiedflang/lib/Evaluate/characteristics.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/test/Semantics/array-constr-values.f90
The file was modifiedflang/test/Semantics/data02.f90
The file was modifiedflang/lib/Evaluate/type.cpp
The file was modifiedflang/include/flang/Evaluate/fold.h
The file was modifiedflang/lib/Evaluate/formatting.cpp
The file was modifiedflang/lib/Evaluate/variable.cpp
The file was modifiedflang/test/Semantics/separate-mp02.f90
The file was modifiedflang/lib/Semantics/scope.cpp
Commit d4e4799998b830c2e41dee93a204870aa65083cf by leonardchan
[NFC][compiler-rt][hwasan] Refactor hwasan functions

This moves the implementations for HandleTagMismatch, __hwasan_tag_mismatch4,
and HwasanAtExit from hwasan_linux.cpp to hwasan.cpp and declares them in hwasan.h.
This way, calls to those functions can be shared with the fuchsia implementation
without duplicating code.

Differential Revision: https://reviews.llvm.org/D103562
The file was modifiedcompiler-rt/lib/hwasan/hwasan_linux.cpp
The file was modifiedcompiler-rt/lib/hwasan/hwasan.h
The file was modifiedcompiler-rt/lib/hwasan/hwasan.cpp
Commit 619fa0d7fc8a08f871f33815083adb8bb07b9751 by markus.boeck02
[NFC] Add missing includes for LLVM_ENABLE_MODULES builds

Building LLVM with the LLVM_ENABLE_MODULES cmake option fails when the modules are being compiled due to missing includes. This is a side effect of some transitive includes that changed recently.

Differential Revision: https://reviews.llvm.org/D103645
The file was modifiedllvm/include/llvm/Support/CFGUpdate.h
The file was modifiedllvm/include/llvm/CodeGen/MBFIWrapper.h
Commit a4b924a017dba3e5f891ef38e07a7a80da65a8b8 by listmail
Kill a variable which is unused after cddcc4cf [nfc]
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
Commit e712a92b8fe706c4a736748af324382850d1515c by pklausler
[flang] Fix crash on structure constructor as selector

In something like "ASSOCIATE(X=>T(1))", the "T(1)" is parsed
as a Variable because it looks like a function reference or
array reference; if it turns out to be a structure constructor,
which is something we can't know until we're able to attempt
generic interface resolution in semantics, the parse tree needs
to be fixed up by replacing the Variable with an Expr.

The compiler could already do this for putative function references
encapsulated as Exprs, so this patch moves some code around and
adds parser::Selector to the overloads of expression analysis.

Differential Revision: https://reviews.llvm.org/D103572
The file was modifiedflang/include/flang/Semantics/expression.h
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit 56b6e4e2dfa932ddc0cbfecaab07ddf4ebfefc10 by Louis Dionne
[libc++] Also build the static library in the Apple cache
The file was modifiedlibcxx/cmake/caches/Apple.cmake
Commit db757ba7c523f8a456f884316a44c0f1124bcb9a by Louis Dionne
[libc++] Define _LIBCPP_NO_NATIVE_SEMAPHORES even outside of pthread

<semaphore> needs to know about whether native semaphores are supported
or not, even if we're not using the pthread API.
The file was modifiedlibcxx/include/__threading_support
Commit c1a024053d3b80a62bd65971fe9ac09539dea5ae by pklausler
[flang] Emit error about missing interface when needed

When a procedure pointer with no interface is called by a
function reference, complain about the lack.

Differential Revision: https://reviews.llvm.org/D103573
The file was modifiedflang/test/Semantics/resolve09.f90
The file was modifiedflang/lib/Semantics/expression.cpp
Commit 73c3530f5e057333eeac300b9d9925a13c55c9a6 by pklausler
[flang] Catch errors in function calls instead of crashing

Add some missing error messages, and permit the appearance
of EntityDetails symbols in dummy argument type characterization.

Differential Revision: https://reviews.llvm.org/D103576
The file was modifiedflang/lib/Evaluate/characteristics.cpp
The file was modifiedflang/lib/Semantics/expression.cpp
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit a96f875fe98de5eb5f44b0148baa442c998364ed by i
[CMake][ELF] Add -fno-semantic-interposition for GCC and Clang>=13

In a `-DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD=X86 -DLLVM_LINK_LLVM_DYLIB=on -DCLANG_LINK_CLANG_DYLIB=on`
build, libLLVM-13git.so is 2% smaller and libclang-cpp.so is 1% smaller (on top of -Wl,-Bsymbolic-functions).
There may be some small performance improvement as well because GCC
-fPIC suppresses interprocedural optimizations for non-inline
definitions by default.

Note: we cannot add -fno-semantic-interposition for Clang<13.  Clang<13's
implementation additionally optimizes global variables, which is incompatible
with unfortunate ELF -fno-pic default: direct access relocations for external
data. If the executable has a -fno-pic object file referencing a global variable
declared in a public header, the direct access relocation will cause a copy
relocation. The executable and libLLVM.so/libclang-cpp.so will disagree on the
address.

Reviewed By: phosek

Differential Revision: https://reviews.llvm.org/D102453
The file was modifiedllvm/cmake/modules/HandleLLVMOptions.cmake
Commit d515a52a3a58cea82f0adc168199b918f7d68541 by Louis Dionne
[libc++] Simplify apple-install-libcxx since we always use the same CMake cache
The file was modifiedlibcxx/utils/ci/apple-install-libcxx.sh
Commit 69a82d7c08be4c7d7ab6f3de7711944a00d3e4cc by pklausler
[flang] Fix spurious "already declared" errors for interfaces

When a subroutine or function symbol is defined in an INTERFACE
block, it's okay if a symbol of the same name appears in a
scope between the global scope and the scope of the INTERFACE.

Differential Revision: https://reviews.llvm.org/D103580
The file was modifiedflang/lib/Semantics/resolve-names.cpp
Commit edf2056ff3730316f376f29d9986c9913b95ceb1 by aeubanks
[BuildLibCalls] Properly set ABI attributes on arguments

Some floating point lib calls have ABI attributes that need to be set on
the caller. Found via D103412.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D103415
The file was modifiedllvm/test/Transforms/InstCombine/exp2-1.ll
The file was modifiedllvm/test/Transforms/InstCombine/simplify-libcalls.ll
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int16.ll
Commit 9255a5c1baa6020c009934b4fa342f9f6dbbcc46 by aeubanks
[TargetLowering] Only inspect attributes in the arguments for ArgListEntry

Parameter attributes are considered part of the function [1], and like
mismatched calling conventions [2], we can't have the verifier check for
mismatched parameter attributes.

Issues can be diagnosed with D103412.

[1] https://llvm.org/docs/LangRef.html#parameter-attributes
[2] https://llvm.org/docs/FAQ.html#why-does-instcombine-simplifycfg-turn-a-call-to-a-function-with-a-mismatched-calling-convention-into-unreachable-why-not-make-the-verifier-reject-it

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D101806
The file was modifiedllvm/docs/ReleaseNotes.rst
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was addedllvm/test/CodeGen/X86/mismatched-byval.ll
Commit 986bef97826fc41cbac1b7ff74b4f40f4594ba68 by amy.zhuang
[mlir] Remove redundant loads

Reviewed By: vinayaka-polymage, bondhugula

Differential Revision: https://reviews.llvm.org/D103294
The file was modifiedmlir/test/Transforms/memref-dataflow-opt.mlir
The file was modifiedmlir/lib/Transforms/MemRefDataFlowOpt.cpp
Commit e42def62d8d9572190b31182e5db8c4b3a57cdaf by Yaxun.Liu
[HIP] Fix amdgcn builtin for long type

Currently some amdgcn builtins are defined with long int type,
which causes invalid IR on Windows since long int is 32 bit
on Windows whereas these builtins have 64 bit arguments.

long long int type cannot be used since it is 128 bit in OpenCL.

This patch uses 64 bit int type instead of long int to define 64 bit int
arguments or return for amdgcn builtins.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D103563
The file was modifiedclang/include/clang/Basic/BuiltinsAMDGPU.def
The file was modifiedclang/test/CodeGenCUDA/builtins-amdgcn.cu
Commit d6af89beb26df549d5b9e9041dac3b205b44e512 by riddleriver
[mlir-lsp-server] Add support for tracking the use/def chains of symbols

This revision adds assembly state tracking for uses of symbols, allowing for go-to-definition and references support for SymbolRefAttrs.

Differential Revision: https://reviews.llvm.org/D103585
The file was modifiedmlir/lib/Parser/AsmParserState.cpp
The file was modifiedmlir/lib/Parser/AttributeParser.cpp
The file was modifiedmlir/test/mlir-lsp-server/definition-split-file.test
The file was modifiedmlir/lib/Tools/mlir-lsp-server/MLIRServer.cpp
The file was modifiedmlir/lib/Parser/Parser.cpp
The file was modifiedmlir/test/mlir-lsp-server/hover.test
The file was modifiedmlir/test/mlir-lsp-server/references.test
The file was modifiedmlir/test/mlir-lsp-server/definition.test
The file was modifiedmlir/include/mlir/Parser/AsmParserState.h
Commit 13155138c1ce1e91032d467e20e557f9cdbf08f5 by thakis
[gn build] port d1d36f7ad (llvm-tapi-diff)
The file was addedllvm/utils/gn/secondary/llvm/tools/llvm-tapi-diff/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
Commit cfa9ae99408fceb063473d9339b7006075c686a9 by ravishankarm
[mlir][SPIRV] Add lowering for math.log1p operation to SPIR-V dialect.

Differential Revision: https://reviews.llvm.org/D103635
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-ops-to-spirv.mlir
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/StandardToSPIRV.cpp
Commit 8a96993da5ef408847505ec2e470805a71c30392 by jpienaar
[NFC] Add ArrayRef includes to two files.

These started failing on one of our buildbots. I didn't completely root cause the situation and just added the explicit includes that correct the issue.

Reviewed By: rriddle, jpienaar

Differential Revision: https://reviews.llvm.org/D103657
The file was modifiedmlir/include/mlir/Interfaces/FoldInterfaces.h
The file was modifiedmlir/include/mlir/IR/AffineExprVisitor.h
Commit e9313fa33ae501182666101380282228fb3f4acc by craig.topper
[RISCV] Simplify some code in RISCVInsertVSETVLI by calling an existing function that does the same thing. NFCI
The file was modifiedllvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
Commit aaa826fac16bef995ff074bc13ce7baa37ab4d47 by aktoon
[CSSPGO][llvm-profgen] Make extended binary the default output format

Make extended binary the default output format for CSSPGO. This avoids having to pass flag every time when generating profile. It also matches llvm-profdata where binary profile is the default (should we switch to extbinary as default for llvm-profdata?).

We plan to compress name table for context profile, which depends on the built-in compression of extbinary.

Differential Revision: https://reviews.llvm.org/D103650
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-pseudoprobe.test
The file was modifiedllvm/tools/llvm-profgen/ProfileGenerator.cpp
The file was modifiedllvm/test/tools/llvm-profgen/noinline-cs-noprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/merge-cold-profile.test
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-noprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-dangling-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/cs-preinline.test
The file was modifiedllvm/test/tools/llvm-profgen/recursion-compression-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/fname-canonicalization.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-noprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/truncated-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/inline-cs-pseudoprobe.test
The file was modifiedllvm/test/tools/llvm-profgen/pseudoprobe-decoding.test
Commit 1aae55ddea92c9a0eb1024305b248f20653778a2 by thakis
[lld/mac] Add test coverage for --reproduce + -flat_namespace

Works fine already, now it has a test too.

Differential Revision: https://reviews.llvm.org/D103643
The file was modifiedlld/test/MachO/flat-namespace.s
Commit 5c600dc6d4b75bc71dc3033f37ea187b3fd454d7 by thakis
Revert "Update and improve compiler-rt tests for -mllvm -asan_use_after_return=(never|[runtime]|always)."

This reverts commit 41b3088c3f33d712e3d2f64b66ae4eb701fa4bfb.
Doesn't build on macOS, see comments on https://reviews.llvm.org/D103304
The file was modifiedcompiler-rt/test/asan/TestCases/scariness_score_test.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Linux/uar_signals.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/pass-struct-byval-uar.cpp
The file was modifiedcompiler-rt/lib/asan/asan_interface.inc
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/stack_use_after_return.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Posix/stack-use-after-return.cpp
The file was modifiedcompiler-rt/lib/asan/asan_rtl.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/Windows/dll_stack_use_after_return.cpp
The file was modifiedcompiler-rt/test/asan/TestCases/uar_and_exceptions.cpp
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/fake-stack.ll
The file was modifiedcompiler-rt/test/asan/TestCases/heavy_uar_test.cpp
Commit 868317b3fd765830c07ecf16cbfcf6c7708adc3c by kostyak
[scudo] Rework Vector/String

Some platforms (eg: Trusty) are extremelly memory constrained, which
doesn't necessarily work well with some of Scudo's current assumptions.

`Vector` by default (and as such `String` and `ScopedString`) maps a
page, which is a bit of a waste. This CL changes `Vector` to use a
buffer local to the class first, then potentially map more memory if
needed (`ScopedString` currently are all stack based so it would be
stack data). We also want to allow a platform to prevent any dynamic
resizing, so I added a `CanGrow` templated parameter that for now is
always `true` but would be set to `false` on Trusty.

Differential Revision: https://reviews.llvm.org/D103641
The file was modifiedcompiler-rt/lib/scudo/standalone/string_utils.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/quarantine_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/string_utils.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/vector_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/report.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/size_class_map.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/strings_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/primary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/combined.h
The file was modifiedcompiler-rt/lib/scudo/standalone/tests/secondary_test.cpp
The file was modifiedcompiler-rt/lib/scudo/standalone/vector.h
The file was modifiedcompiler-rt/lib/scudo/standalone/primary64.h
Commit 738abfdbea21acd2597d83ad3390daf5696b6d07 by aeubanks
[NFC] Remove checking pointee type for byval/preallocated type

These currently always require a type parameter. The bitcode reader
already upgrades old bitcode without the type parameter to use the
pointee type.
The file was modifiedllvm/include/llvm/IR/InstrTypes.h
Commit d71ff907ef23eaef86ad66ba2d711e4986cd6cb2 by mahesha.comp
[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering.

Before packing LDS globals into a sorted structure, make sure that
their alignment is properly updated based on their size. This will make
sure that the members of sorted structure are properly aligned, and
hence it will further reduce the probability of unaligned LDS access.

Reviewed By: rampitec

Differential Revision: https://reviews.llvm.org/D103261
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_write2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
The file was addedllvm/test/CodeGen/AMDGPU/update-lds-alignment.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-alignment.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2_offset_order.ll
Commit 5337c7550d31597f04bcca0c49e1ce62000cc59b by Cyndy Ishida
Revert "[llvm] llvm-tapi-diff"

This reverts commit d1d36f7ad2ae82bea8a6fcc40d6c42a72e21f096.
Reverting this patch to investigate linux bot failures
+ fix with author offline
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/macho.yaml
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-mismatched-number-of-inlines.test
The file was removedllvm/tools/llvm-tapi-diff/CMakeLists.txt
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-same-number-of-inlines.test
The file was removedllvm/tools/llvm-tapi-diff/DiffEngine.cpp
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/v4E.tbd
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-tbd-has-single-inlineA.test
The file was modifiedllvm/lib/TextAPI/Platform.cpp
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/v4B.tbd
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-matching-tbd.test
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/v4C.tbd
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-tbd-has-single-inlineB.test
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-no-inlines.test
The file was modifiedllvm/lib/TextAPI/Target.cpp
The file was modifiedllvm/include/llvm/Object/TapiUniversal.h
The file was modifiedllvm/include/llvm/TextAPI/Symbol.h
The file was modifiedllvm/include/llvm/TextAPI/Target.h
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-incorrect-format.test
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-misspelled-tbd.test
The file was removedllvm/tools/llvm-tapi-diff/DiffEngine.h
The file was removedllvm/tools/llvm-tapi-diff/llvm-tapi-diff.cpp
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/v4A.tbd
The file was removedllvm/test/tools/llvm-tapi-diff/tapi-diff-tbd-has-multiple-inlines.test
The file was modifiedllvm/include/llvm/TextAPI/Platform.h
The file was removedllvm/test/tools/llvm-tapi-diff/Inputs/v4D.tbd
Commit 753437fc1db357499109bf8a14fca2dc4d88eb11 by mahesha.comp
Revert "[AMDGPU] Increase alignment of LDS globals if necessary before LDS lowering."

This reverts commit d71ff907ef23eaef86ad66ba2d711e4986cd6cb2.
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-alloca-globals.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/lds-global-value.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_write2.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2.ll
The file was removedllvm/test/CodeGen/AMDGPU/update-lds-alignment.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULowerModuleLDSPass.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/ds_read2_offset_order.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/lds-alignment.ll
Commit 6a3beb1f68d6791a4cd0190f68b48510f754a00a by Madhur.Amilkanthwar
[AMDGPU] [IndirectCalls] Don't propagate attributes to address taken functions and their callees

Don't propagate launch bound related attributes to
address taken functions and their callees. The idea
is to do a traversal over the call graph starting at
address taken functions and erase the attributes
set by previous logic i.e. process().

This two phase approach makes sure that we don't
miss out on deep nested callees from address taken
functions as a function might be called directly as
well as indirectly.

This patch is also reattempt to D94585 as latent issues
are fixed in hasAddressTaken function in the recent
past.

Reviewed By: arsenm

Differential Revision: https://reviews.llvm.org/D103138
The file was addedllvm/test/CodeGen/AMDGPU/propagate-attributes-common-callees.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/opt-pipeline.ll
The file was addedllvm/test/CodeGen/AMDGPU/propagate-attributes-direct-indirect-common-callee.ll
The file was addedllvm/test/CodeGen/AMDGPU/propagate-attributes-indirect.ll
The file was addedllvm/test/CodeGen/AMDGPU/propagate-attributes-launch-bounds.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/propagate-attributes-function-pointer-argument.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPropagateAttributes.cpp
Commit 3d8180cb2ffc2272b56e3445c74f2f3170562403 by omair.javaid
Add LLDB in release binaries by default

LLDB is currently not selected in LLVM release testing and thus it
doesnt make its way into prebuilt binaries which build with default
configuration. This patch enables LLDB by default in test-release
script.

Assuming LLDB build by default was disabled back in 2016 LLDB support
for various architectures has a long way since then. It has buildbots
for most architectures and supports a case to be included by default.

Also lldb build can easily be disabled in case some release managers
choose to do so.

Reviewed By: tstellar

Differential Revision: https://reviews.llvm.org/D101864
The file was modifiedllvm/utils/release/test-release.sh
Commit fcf8827a98beb1f8baea883451508d9cd91f57bc by shihpo.hung
[Sema][RISCV][SVE] Allow ?: to select Typedef BuiltinType in C

This patch solves an error such as:
  incompatible operand types ('vbool4_t' (aka '__rvv_bool4_t') and '__rvv_bool4_t')
when one of the value is a TypedefType of the other value in ?:.

Reviewed By: rjmccall

Differential Revision: https://reviews.llvm.org/D103603
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/test/Sema/riscv-types.c
The file was modifiedclang/test/Sema/sizeless-1.c
Commit 21c18d5a04316891110cecc2bf37ce51533decba by marek.kurdej+llvm.org
[Format] Fix incorrect pointer detection

https://llvm.org/PR50429

Before:
    void f() { f(float(1), a *a); }

After:
    void f() { f(float(1), a * a); }

Signed-off-by: Yilong Guo <yilong.guo@intel.com>

Reviewed By: HazardyKnusperkeks, curdeius

Differential Revision: https://reviews.llvm.org/D103589
The file was modifiedclang/lib/Format/TokenAnnotator.cpp
The file was modifiedclang/unittests/Format/FormatTest.cpp
Commit fbfd717197671769e92b1c00b08391a7cac62fed by esme.yi
[Debug-Info] handle DW_CC_pass_by_value/DW_CC_pass_by_reference under strict DWARF.

Summary: When -strict-dwarf=true is specified, the calling convention info
    DW_CC_pass_by_value or DW_CC_pass_by_reference can only be generated at DWARF5.

Reviewed By: shchenz, dblaikie

Differential Revision: https://reviews.llvm.org/D103300
The file was modifiedllvm/test/DebugInfo/Generic/pass-by-value.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
Commit 263a89c9b788b4c6bc174dc169dca2a3b729ea02 by diana.picus
[flang] Change capitalization for Adjustl/r

Rename the definitions of the character runtime functions Adjustl and
Adjustr (used to be AdjustL and AdjustR respectively).

Also add unit tests (and move some of the helpers to the top of the
file, since they're now used in more than one place).

Differential Revision: https://reviews.llvm.org/D103392
The file was modifiedflang/runtime/character.cpp
The file was modifiedflang/unittests/RuntimeGTest/CharacterTest.cpp
Commit b16ddd03753df778181d500d0ea3e2400c35e6fe by Tim Northover
AArch64: support atomic zext/sextloads
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-atomic.ll
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
Commit 67b1c37d9fd1283d7015edb9c0fecb24362751f4 by gysit
[mlir][linalg] Cleanup left over uses of deprecated LinalgOp methods.

Replace all remaining uses of deprecated Structured Op Interface methods. This patch is based on https://reviews.llvm.org/D103394.

Differential Revision: https://reviews.llvm.org/D103673
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/IR/LinalgInterfaces.td
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgInterfaces.cpp
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp
The file was modifiedmlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp
Commit aec9cbbeb863dbd3ea362f99eb8b84dfbdb568a2 by fraser
[SelectionDAG] Extend FoldConstantVectorArithmetic to SPLAT_VECTOR

This patch extends the SelectionDAG's ability to constant-fold vector
arithmetic to include support for SPLAT_VECTOR. This is not only for
scalable-vector types but also for fixed-length vector types, which
helps Hexagon in a couple of cases.

The original RISC-V test case was in fact an infinite DAGCombine loop.
The pattern `and (truncate v1), (truncate v2)` can be combined to
`truncate (and v1, v2)` but the truncate can similarly be combined back
to `truncate (and v1, v2)` (but, crucially, only when one of `v1` or
`v2` is a constant vector).

It wasn't exposed in on fixed-length types because a TRUNCATE of a
constant BUILD_VECTOR was folded into the BUILD_VECTOR itself, whereas
this did not happen for the equivalent (scalable-vector) SPLAT_VECTOR.

Reviewed By: RKSimon, craig.topper

Differential Revision: https://reviews.llvm.org/D103246
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vdivu-sdnode-rv64.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modifiedllvm/test/CodeGen/AArch64/sve-expand-div.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vremu-sdnode-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vremu-sdnode-rv64.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/constant-folding.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vdivu-sdnode-rv32.ll
The file was modifiedllvm/test/CodeGen/Hexagon/isel-memory-vNi1.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/setcc-integer-rv32.ll
Commit b0cc7b53a53f180c0b70b8b2f02999be78a32395 by martin
[libcxx] Don't use an undefined '+' in unsigned/octal/hexal print formats

If building code like this:

    unsigned long val = 1000;
    snprintf(buf, sizeof(buf), "%+lu", val);

with clang, clang warns

    warning: flag '+' results in undefined behavior with 'u' conversion specifier [-Wformat]

Therefore, don't construct such undefined format strings. (There's
no compiler warnings here, as the compiler can't inspect dynamically
assembled format strings.)

This fixes number formatting in mingw-w64 if built with
`__USE_MINGW_ANSI_STDIO` defined (there, the '+' flag causes a
leading plus to be printed when formatting unsigned numbers too,
while the '+' flag doesn't cause any extra leading plus in other
stdio implementations).

Differential Revision: https://reviews.llvm.org/D103444
The file was modifiedlibcxx/src/locale.cpp
Commit 0a655c62eca878cd5f366c08a4a5fee1b8723ce8 by Raphael Isemann
[lldb][NFC] Remove a redundant call to weak_ptr::expired

The `lock` call directly will check for us if the `weak_ptr` is expired and
returns an invalid `shared_ptr` (which we correctly handle), so this check is
redundant.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D103442
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
Commit d7e0948242b8b05c1ebc0f46bf7aa37273a1d521 by thomasp
[test] Fix accidental match in parent_recurse_depth.s

The CHECK-NOT directives in
tools/llvm-dwarfdump/X86/parent_recurse_depth.s can accidentally match
something in the path of the object file created by yaml2obj, for
example:

llvm-project/llvm/test/tools/llvm-dwarfdump/X86/parent_recurse_depth.s:13:12:
error: ONE-NOT: excluded string found in input
           ^
<stdin>:1:22: note: found here
builds/llvm-projects/mainline/release/test/tools/llvm-dwarfdump/X86/Output/parent_recurse_depth.s.tmp.o: file format elf64-x86-64
                     ^~~~

This commit alleviate this issue by consuming the file name from the
output, forcing all the CHECK-NOT to match what comes after.

Reviewed By: Higuoxing

Differential Revision: https://reviews.llvm.org/D103676
The file was modifiedllvm/test/tools/llvm-dwarfdump/X86/parent_recurse_depth.s
Commit 4501928eb2fdec9af1908e008fa748924db0f688 by jeremy.morse
Re-land ae4303b42c, "Track PHI values through register coalescing"

Was reverted in 0507fc2ffc9, in phi-coalesce-subreg.mir I'd explicitly named
some passes to run instead of specifying a range. As a result some
two-address-instrs weren't correctly rewritten and the verifier got upset.
Original commit message:

[DebugInstrRef][2/3] Track PHI values through register coalescing

In the instruction referencing variable location model, we store variable
locations that point at PHIs in MachineFunction during register allocation.
Unfortunately, register coalescing can substantially change the locations
of registers, and so that PHI-variable-location side table needs
maintenence during the pass.

This patch builds an index from the side table, and whenever a vreg gets
coalesced into another vreg, update the index to record the new vreg that
the PHI happens in. It also accepts a limited range of subregister
coalescing, for example merging a subregister into a larger class.

Differential Revision: https://reviews.llvm.org/D86813
The file was modifiedllvm/lib/CodeGen/RegisterCoalescer.cpp
The file was addedllvm/test/DebugInfo/MIR/InstrRef/phi-coalesce-subreg.mir
The file was addedllvm/test/DebugInfo/MIR/InstrRef/phi-coalescing.mir
Commit d84ed15c649616a50abdd7fbd9b28ddebb9f432c by thakis
Revert "[gn build] port d1d36f7ad (llvm-tapi-diff)"

This reverts commit 13155138c1ce1e91032d467e20e557f9cdbf08f5.
d1d36f7ad was reverted in 5337c7550d.
The file was removedllvm/utils/gn/secondary/llvm/tools/llvm-tapi-diff/BUILD.gn
The file was modifiedllvm/utils/gn/secondary/llvm/test/BUILD.gn
Commit 8937450e8581a8a135c61ff083828e6603755ef5 by spatel
[InstCombine] add tests for sext-of-trunc-of-lshr; NFC
The file was modifiedllvm/test/Transforms/InstCombine/lshr-trunc-sext-to-ashr-sext.ll
Commit 23a116c8c446f82ec5e2d2337c3253d0dc9c75b5 by spatel
[InstCombine] convert lshr to ashr to eliminate cast op

This is similar to b865eead7657 ( D103617 ) and fixes:
https://llvm.org/PR50575

41b71f718b94c6f12b did this and more (noted with TODO
comments in the tests), but it didn't handle the case
where the destination is narrower than the source, so
it got reverted.

This is a simple match-and-replace. If there's evidence
that the TODO cases are useful, we can revisit/extend.
The file was modifiedllvm/test/Transforms/InstCombine/lshr-trunc-sext-to-ashr-sext.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCasts.cpp
Commit fd3f2518a4fe3f9ee52d03eb519bd654c3ce4055 by csigg
[mlir] Catch nonconvertible types in async conversion

Reviewed By: ezhulenev, ftynse

Differential Revision: https://reviews.llvm.org/D103592
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
Commit e42ee2d50963eb12e4d2dc0a20f36b1cb2af8543 by bradley.smith
[AArch64][SVE] Add support for using reverse forms of SVE2 shifts

When using and ACLE intrinsic for an SVE2 shift, if the predicate passed
has all relevant lanes active, then use a reversed version of the
instruction if beneficial.
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/sve2-intrinsics-uniform-dsp.ll
The file was modifiedllvm/lib/Target/AArch64/SVEInstrFormats.td
Commit ceb62388f2d8bd8deed447ebfed77ac7d9be293d by 1.int32
[clang][AST] Set correct DeclContext in ASTImporter lookup table for ParmVarDecl.

ParmVarDecl is created with translation unit as the parent DeclContext
and later moved to the correct DeclContext. ASTImporterLookupTable
should be updated at this move.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D103231
The file was modifiedclang/lib/AST/ASTImporter.cpp
The file was modifiedclang/include/clang/AST/ASTImporterLookupTable.h
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
The file was modifiedclang/lib/AST/ASTImporterLookupTable.cpp
Commit 1971960a6fed78d250c66906c804c6c41c86e3ec by jperier
[flang] Generate type info symbols outside of derived type scopes

A recent change was made in https://reviews.llvm.org/D101482 to cope
with kind parameters. It had the side effect of generating some type
info symbols inside derived type scopes. Derived type scope symbols
are meant for components, and other/later compilation phases might
choke when finding compiler generated symbols there that are not
components.

This patch preserves the fix from D101482 while still generating the
symbols outside of derived type scopes.

Differential Revision: https://reviews.llvm.org/D103621
The file was modifiedflang/lib/Semantics/runtime-type-info.cpp
The file was modifiedflang/test/Semantics/typeinfo01.f90
Commit cd093cbb115a4fda1544a789e3b1355e5b155aea by dmitry.preobrazhensky
[AMDGPU][MC][NFC] Fixed typos in parser

Differential Revision: https://reviews.llvm.org/D103680
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
Commit 93a058190cc67c18bf4e0af9d871d56106b80a49 by Jan Svoboda
[clang][deps] Add argument for customizing PCM paths

Dependency scanning currently performs an implicit build. When testing that Clang can build modules with the command-lines generated by `clang-scan-deps`, the actual compilation would overwrite artifacts created during the scan, which makes debugging harder than it should be and can lead to errors in multi-step builds.

To prevent this, this patch adds new flag to `clang-scan-deps` that allows developers to customize the directory to use when generating module map paths, instead of always using the module cache. Moreover, the explicit context hash in now part of the PCM path, which will be useful in D102488, where the context hash can change due to command-line pruning.

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D103516
The file was modifiedclang/test/ClangScanDeps/modules-full.cpp
The file was modifiedclang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h
The file was modifiedclang/tools/clang-scan-deps/ClangScanDeps.cpp
Commit 35ef4c940bea1e2b803f17f13a625b2126c62b82 by Mirko.Brkusanin
[AMDGPU][GlobalISel] Legalize G_ABS

Legalize and select G_ABS so that we can use llvm.abs intrinsic

Differential Revision: https://reviews.llvm.org/D102391
The file was modifiedllvm/lib/Target/AMDGPU/SOPInstructions.td
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.abs.ll
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
Commit 20bd2142d46536f4ffd61f28a029d6bda68f1a7f by andrzej.warzynski
[flang][driver] Add support for `-module-suffix`

This option is supported in `f18`, but not yet available in `flang-new`.
It is required in order to call `flang-new` from the `flang` bash
script.

Differential Revision: https://reviews.llvm.org/D103613
The file was addedflang/test/Driver/module-suffix.f90
The file was modifiedflang/include/flang/Frontend/CompilerInvocation.h
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedflang/test/Driver/driver-help.f90
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
Commit de07b1e84d8de948304766df602fee2b845e9532 by Jan Svoboda
[clang][deps] Support object files

When a project uses PCH with explicit modules, the build will look like this:

1. scan PCH dependencies
2. explicitly build PCH
3. scan TU dependencies
4. explicitly build TU

Step 2 produces an object file for the PCH, which the dependency scanner needs to read in step 3. This patch adds support for this.

The `clang-scan-deps` invocation in the attached test would fail without this change.

Depends on D103516.

Reviewed By: Bigcheese

Differential Revision: https://reviews.llvm.org/D103519
The file was modifiedclang/lib/Tooling/DependencyScanning/CMakeLists.txt
The file was addedclang/test/ClangScanDeps/Inputs/modules-pch/module.modulemap
The file was addedclang/test/ClangScanDeps/Inputs/modules-pch/mod_tu.h
The file was addedclang/test/ClangScanDeps/Inputs/modules-pch/tu.c
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp
The file was addedclang/test/ClangScanDeps/Inputs/modules-pch/pch.h
The file was modifiedclang/lib/Tooling/DependencyScanning/DependencyScanningService.cpp
The file was addedclang/test/ClangScanDeps/Inputs/modules-pch/cdb_tu.json
The file was addedclang/test/ClangScanDeps/modules-pch.c
Commit 1fc6027406c51fcbe0cb83c92c92e16ddd9aca43 by spatel
[InstCombine] add/adjust test comments; NFC

Follow-up to post-commit comment:
https://reviews.llvm.org/rG23a116c8c446
The file was modifiedllvm/test/Transforms/InstCombine/lshr-trunc-sext-to-ashr-sext.ll
Commit b5dea8701ba98425991d4f1ec3d87bdb98789e04 by Yaxun.Liu
[HIP] Fix spack HIP device lib detection

spack HIP device library is installed at amdgcn directory under llvm/clang
directory.

This patch fixes detection of HIP device library for spack.

Reviewed by: Artem Belevich, Harmen Stoppels

Differential Revision: https://reviews.llvm.org/D103281
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_908.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_unsafe_math_on.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/ockl.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_1010.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_1010.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_803.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_803.bc
The file was modifiedclang/test/Driver/rocm-detect.hip
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_daz_opt_off.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_1012.bc
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_1011.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/hip.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/ockl.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_900.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_isa_version_908.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_900.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/opencl.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_unsafe_math_on.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_daz_opt_on.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_finite_only_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_finite_only_on.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_correctly_rounded_sqrt_off.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_finite_only_on.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_correctly_rounded_sqrt_on.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_1012.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/ocml.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/ocml.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/opencl.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_wavefrontsize64_off.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_unsafe_math_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_finite_only_off.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_daz_opt_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_wavefrontsize64_on.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/asanrtl.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/asanrtl.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/hip.bc
The file was removedclang/test/Driver/Inputs/rocm-spack/rocm-device-libs-4.0.0-6wnyzz4hgl3hr7uswasnagt7j2adctbs/amdgcn/bitcode/oclc_daz_opt_on.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_unsafe_math_off.bc
The file was addedclang/test/Driver/Inputs/rocm-spack/llvm-amdgpu-4.0.0-ieagcs7inf7runpyfvepqkurasoglq4z/amdgcn/bitcode/oclc_isa_version_1011.bc
Commit 3043cbc4363ad16f897052a05ac364e5f8ef3770 by nicholas.guy
[AArch64] Further enable UnrollAndJam

Due to the dependency on runtime unrolling, UnJ is only
enabled by default on in-order scheduling models,
and if a cpu is specified through -mcpu.

Differential Revision: https://reviews.llvm.org/D103604
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
The file was addedllvm/test/CodeGen/AArch64/aarch64-unroll-and-jam.ll
Commit 86c24493ea666a0ef91b7af884d616b0a181e849 by stuart.brady
[OpenCL][NFC] Test commit: tidy up whitespace in comment
The file was modifiedclang/lib/Headers/opencl-c.h
Commit a9c9183ca42629fa83cdda297d1d30c7bc1d7c91 by Louis Dionne
[libc++] Use the using_if_exists attribute when provided

As discussed on cfe-dev [1], use the using_if_exists Clang attribute when
the compiler supports it. This makes it easier to port libc++ on top of
new platforms that don't fully support the C Standard library.

Previously, libc++ would fail to build when trying to import a missing
declaration in a <cXXXX> header. With the attribute, the declaration will
simply not be imported into namespace std, and hence it won't be available
for libc++ to use. In many cases, the declarations were *not* actually
required for libc++ to work (they were only surfaced for users to use
them as std::XXXX), so not importing them into namespace std is acceptable.

The same thing could be achieved by conscious usage of `#ifdef` along
with platform detection, however that quickly creates a maintenance
problem as libc++ is ported to new platforms. Furthermore, this problem
is exacerbated when mixed with vendor internal-only platforms, which can
lead to difficulties maintaining a downstream fork of the library.

For the time being, we only use the using_if_exists attribute when it
is supported. At some point in the future, we will start removing #ifdef
paths that are unnecessary when the attribute is supported, and folks
who need those #ifdef paths will be required to use a compiler that
supports the attribute.

[1]: http://lists.llvm.org/pipermail/cfe-dev/2020-June/066038.html

Differential Revision: https://reviews.llvm.org/D90257
The file was modifiedlibcxx/include/csetjmp
The file was modifiedlibcxx/include/cstdarg
The file was modifiedlibcxx/include/cfenv
The file was modifiedlibcxx/include/csignal
The file was modifiedlibcxx/include/clocale
The file was modifiedlibcxx/include/cstdio
The file was modifiedlibcxx/include/cctype
The file was modifiedlibcxx/include/__config
The file was modifiedlibcxx/include/cmath
The file was modifiedlibcxx/include/cstdlib
The file was modifiedlibcxx/include/cstring
The file was modifiedlibcxx/include/cwchar
The file was modifiedlibcxx/include/cinttypes
The file was modifiedlibcxx/include/ctime
The file was modifiedlibcxx/include/cstddef
The file was modifiedlibcxx/include/cstdint
The file was modifiedlibcxx/include/cwctype
Commit e9a9c850989e2392b7f16dea2449312c15bd0240 by thakis
Revert "[InstrProfiling] If no value profiling, make data variable private and (for Windows) use one comdat"

This reverts commit a14fc749aab2c8e1a45d19d512255ebfc69357c3.
Breaks check-profile on macOS. See https://reviews.llvm.org/D103372 for details.
The file was modifiedllvm/test/Transforms/PGOProfile/comdat_internal.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/profiling.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/platform.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/icall.ll
The file was modifiedllvm/test/Instrumentation/InstrProfiling/linkage.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modifiedllvm/test/Instrumentation/InstrProfiling/comdat.ll
Commit b5f0a14fc7b40cec36fa001ea708f290f2f3ce37 by mydeveloperday
[clang-format] NFC, 2% improvement in overall clang-formatted status (now 50%)
The file was modifiedclang/docs/ClangFormattedStatus.rst
Commit db3e4faa4d2cadf204e67f42bccd98957496a87a by thakis
Temporarily remove one of the tests added in effb87dfa810a

It fails on some Linux systems. Remove the test until we've figured
out what's going on. See https://crbug.com/1216005 for details.
The file was removedcompiler-rt/test/profile/Linux/coverage-linkage.cpp
Commit f03f4944cf829c86bc2c080b9a564bbc59aad277 by spatel
[InstCombine] add tests for pow() reassociation; NFC

Baseline tests for D102574
The file was modifiedllvm/test/Transforms/InstCombine/fmul-pow.ll
Commit 2b4c9bc4d489a4be1c5aa1924fba542dc80ab0c9 by andrzej.warzynski
[flang][driver] Add checks for missing option arguments

With this patch, the following invocation of the frontend driver will
return an error:
```
flang-new -fc1 input-file.f90 -o
```
Similar logic applies to other options that require arguments.

Similar checks are already available in the compiler driver, flang-new
(that's implemented in clangDriver).

Differential Revision: https://reviews.llvm.org/D103554
The file was modifiedflang/lib/Frontend/CompilerInvocation.cpp
The file was addedflang/test/Driver/missing-arg.f90
Commit fcb1547229454fcc814a58784495a7ef9ad991d2 by clementval
[mlir][openacc] Conversion of data operands in acc.data to LLVM IR dialect

Convert data operands from the acc.data operation using the same conversion pattern than D102170.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D103332
The file was addedmlir/test/Conversion/OpenACCToLLVM/convert-data-operands-to-llvmir.mlir
The file was modifiedmlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
The file was modifiedmlir/lib/Conversion/OpenACCToLLVM/OpenACCToLLVM.cpp
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was removedmlir/test/Conversion/OpenACCToLLVM/convert-standalone-data-to-llvmir.mlir
Commit 827b5c21545aaa820403e9b5cced8c0181349ee2 by a.bataev
[OPENMP]Fix PR49790: Constexpr values not handled in `omp declare mapper` clause.

Patch allows using of constexpr vars evaluatable to constant calue to be
used in declare mapper construct.

Differential Revision: https://reviews.llvm.org/D103642
The file was modifiedclang/lib/Sema/SemaOpenMP.cpp
The file was modifiedclang/test/OpenMP/declare_mapper_ast_print.cpp
Commit 1928bcd8bdcd17c8345e51487e3b8ae0e70596a1 by thakis
[gn build] (manually) port de07b1e84d8de9
The file was modifiedllvm/utils/gn/secondary/clang/lib/Tooling/DependencyScanning/BUILD.gn
Commit 700b64dc54d43e9ea544dd14e0bb344101567423 by springerm
[mlir] Mark VectorToSCF patterns as recursive

Differential Revision: https://reviews.llvm.org/D103599
The file was modifiedmlir/lib/Conversion/VectorToSCF/VectorToSCF.cpp
Commit f917c5b8d40b7894d52d56052bb18f8e989bad9e by thakis
Revert test fixups after e9a9c850989e (which reverted a14fc74).

This reverts commit da3ed58b97c1cc1356b7732d5dcbb6e4de3057da.
This reverts commit ba1fb0ff8c9f9ef7f9b7d1fe43cb95c8d1363f78.
The file was modifiedclang/test/Profile/c-linkage.c
The file was modifiedclang/test/Profile/c-linkage-available_externally.c
The file was modifiedclang/test/Profile/cxx-linkage.cpp
Commit 50c0aaed47b518beea550a6858c2967eaeaef7eb by thakis
Temporarily remove another test added in one of the tests added in effb87d

This test reads the test file removed in db3e4faa4d2ca.
The file was removedcompiler-rt/test/profile/Linux/coverage-linkage-lld.cpp
Commit e789efc92a5aa6495a22bd3a93a03f640dc2f32a by springerm
[mlir][linalg] Refactor PadTensorOpVectorizationPattern (NFC)

* Rename PadTensorOpVectorizationPattern to GenericPadTensorOpVectorizationPattern.
* Make GenericPadTensorOpVectorizationPattern a private pattern, to be instantiated via populatePadTensorOpVectorizationPatterns.
* Factor out parts of PadTensorOpVectorizationPattern into helper functions.

This commit prepares PadTensorOpVectorizationPattern for a series of subsequent commits that add more specialized PadTensorOp vectorization patterns.

Differential Revision: https://reviews.llvm.org/D103681
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp