Changes

Summary

  1. [mlir] Fix declaration of nano time function in benchmark infra (details)
  2. [demangler] Avoid special-subst code duplication (details)
  3. Comment parsing: Specify argument numbers for some block commands (details)
  4. Comment parsing: Allow inline commands to have 0 or more than 1 argument (details)
  5. Comment parsing: Treat properties as zero-argument inline commands (details)
  6. [ConstraintElimination] Simplify ssub(A,B) if B s>=b && B s>=0. (details)
  7. [IRBuilder] Add IsInBounds parameter to CreateGEP() (details)
  8. Silence some false positive -Wstrict-prototype warnings (details)
  9. [libc++] Overhaul how we select the ABI library (details)
  10. fix typos to cycle bots (details)
  11. [SLP][X86] Add common CHECK prefix to sub-128-bit vector tests (details)
  12. [InstSimplify] Fold and/or using implied conditions (details)
  13. [LoopVectorize] Add overflow checks when tail-folding with scalable vectors (details)
  14. Suggest typo corrections for preprocessor directives (details)
  15. [ControlHeightReduction] Simplify addToMergedCondition() (NFC) (details)
  16. [SystemZ] Patchset for expanding memcpy/memset using at most two stores. (details)
  17. [MSVC] Add support for pragma function (details)
  18. Revert "In MSVC compatibility mode, friend function declarations behave as function declarations" (details)
  19. [InstCombine] add tests for sub with rem operand; NFC (details)
  20. [ValueTracking] recognize sub X, (X % Y) as not overflowing (details)
  21. Remove a stale FIXME comment; NFC (details)
  22. [APInt] Fix documentation of *OrSelf methods (details)
  23. Try to disambiguate between overloads on Mac (details)
  24. Update my office hours (details)
  25. [X86] LowerStore - use is64BitVector() wrapper. NFCI. (details)
  26. [AIX] support write operation of big archive. (details)
  27. [LoopVectorize] Regenerate test checks (NFC) (details)
  28. [flang] Warn for the limit on name length (details)
  29. [clang-tidy] modernize-deprecated-headers check should respect extern "C" blocks (details)
  30. [x86] add test to show potential miscompile with undef value; NFC (details)
  31. [SDAG] freeze operand when expanging urem (details)
  32. [analyzer][NFC] Tighten some of the SValBuilder return types (details)
  33. [analyzer] Introduce clang_analyzer_dumpSvalType introspection function (details)
  34. Revert "[clang-tidy] modernize-deprecated-headers check should respect extern "C" blocks" (details)
  35. [InstSimplify] Add additional implied condition tests (NFC) (details)
  36. [OpenMP] Fix declare simd use on in-class member template function (details)
  37. [ParseResult] Mark this as LLVM_NODISCARD (like LogicalResult) and fix issues. (details)
  38. [RISCV] Add llvm.read.register support for vlenb (details)
  39. [CSSPGO][CSProfileConverter] Remove call target samples when including callee samples into caller. (details)
  40. [libc++abi][NFCI] Refactor demangling_terminate_handler to reduce nesting (details)
  41. [RISCV] Precommit tests showing missed vlenb optimizations (details)
  42. [RISCV] Address post-commit feedback from af5e09b (details)
  43. [libunwind] Remove -Wsign-conversion warning (details)
  44. DAGCombiner.cpp - break if-else chains that always return (style) (details)
  45. [CMake] Disable libedit in Fuchsia toolchain (details)
  46. Revert "[RISCV] Enable subregister liveness tracking for RVV." (details)
  47. [ELF] Disallow input section description without a filename (details)
  48. Fix implicit double -> float truncation warnings. NFCI. (details)
  49. [runtimes][NFC] Remove dead code for Standalone builds (details)
  50. [Libomptarget] Allow the device runtime to be compiled for the host (details)
  51. [Libomptarget] Address existing warnings in the device runtime library (details)
  52. [OpenMP] Add `__CUDA_ARCH__` definition when offloading with OpenMP (details)
  53. [OpenMP] Don't include the device wrappers if -nostdinc is used (details)
  54. [OpenMP] Don't set device runtime debugging flags if using '-nogpulib' (details)
  55. [Libomptarget] Remove global include directory from libomptarget (details)
  56. [Libomptarget] Build the device runtime as a static library (details)
  57. [OpenMP] Use the new OpenMP device static library when doing LTO (details)
  58. [runtimes] Fix how we trigger CI (details)
  59. [BOLT][CMAKE] Add missing clauses to bolt/runtime/CMakeLists.txt (details)
  60. [ELF][test] Clean up linkerscript/{filename-spec.s,group.s} (details)
  61. [ELF][test] Add an input section description test with "()" in the filename (details)
  62. [BOLT][NFC] Suppress unused variable warnings (details)
  63. [BOLT][NFC] Use refs for loop variables to avoid copies (details)
  64. [GlobalISel] Combine G_SHL, G_ASHR, G_SHL of undef shifts to undef. (details)
  65. [lldb] Parallelize fetching symbol files in crashlog.py (details)
  66. [Clang] Add DriverKit support (details)
Commit 89d4904541106172e307efc98fbed5d8a86c4342 by shabalin
[mlir] Fix declaration of nano time function in benchmark infra

In d4555698f89af373f43dcb4aa1587231496bcd31, the name of nano precision timer function has changed from `nano_time` to `nanoTime`, but benchmarks were not updated to reflect that. This change addresses the discrepancy.

Reviewed By: ftynse

Differential Revision: https://reviews.llvm.org/D125217
The file was modifiedmlir/benchmark/python/common.py
Commit 562ce15924560d14f7062173cbdc6a9cd778e2eb by nathan
[demangler] Avoid special-subst code duplication

We need to expand special substitutions in four different ways.  This
refactors to only have one conversion from enum to string, and derive
the other 3 needs off that.

The SpecialSubstitution node is derived from the
ExpandedSpecialSubstitution.  While this may seem unintuitive, it
works out quite well, as SpecialSubstitution can then use the former's
getBaseName and remove an unneeded 'basic_' prefix, for those
substitutions that are instantiations (to known typedef).  Similarly
all those instantiations use the same set of template arguments (with
'basic_string', getting an additional 'allocator' arg).

Expansion tests were added in D123134, and remain unchanged.

Reviewed By: MaskRay, dblaikie

Differential Revision: https://reviews.llvm.org/D125257
The file was modifiedllvm/include/llvm/Demangle/ItaniumDemangle.h
The file was modifiedlibcxxabi/src/demangle/ItaniumDemangle.h
Commit 99d35826a043916b259a0e440a2aa5cabbad2773 by aaron.puchert
Comment parsing: Specify argument numbers for some block commands

The command traits have a member NumArgs for which all the parsing
infrastructure is in place, but no command was setting it to a value
other than 0. By doing so we get warnings when passing an empty
paragraph to \retval (the first argument is the return value, then comes
the description). We also take \xrefitem along for the ride, although as
the documentation states it's unlikely to be used directly.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D125422
The file was modifiedclang/test/Sema/warn-documentation.cpp
The file was modifiedclang/test/AST/ast-dump-comment.cpp
The file was modifiedclang/include/clang/AST/CommentCommands.td
Commit d3a4033d6ee1d017e216ff7caeeeb5ca2e18a783 by aaron.puchert
Comment parsing: Allow inline commands to have 0 or more than 1 argument

That's required to support `\n`, but can also be used for other commands.
We already had the infrastructure in place to parse a varying number of
arguments, we simply needed to generalize it so that it would work not
only for block commands.

This should fix #55319.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D125429
The file was modifiedclang/include/clang/Basic/DiagnosticCommentKinds.td
The file was modifiedclang/test/Sema/warn-documentation.cpp
The file was modifiedclang/include/clang/AST/CommentParser.h
The file was modifiedclang/include/clang/AST/CommentCommands.td
The file was modifiedclang/lib/AST/CommentParser.cpp
The file was modifiedclang/include/clang/AST/CommentSema.h
The file was modifiedclang/test/Headers/x86-intrinsics-headers-clean.cpp
The file was modifiedclang/test/AST/ast-dump-comment.cpp
The file was modifiedclang/include/clang/AST/Comment.h
The file was modifiedclang/lib/AST/CommentSema.cpp
Commit d2396d896ee12ad20bc740174edfce2120d742b2 by aaron.puchert
Comment parsing: Treat properties as zero-argument inline commands

That is more accurate, and using a separate class in TableGen seems
appropriate since these are not parts of the text but properties of the
declaration itself.

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D125473
The file was modifiedclang/include/clang/AST/CommentCommands.td
Commit 8e6d481f3b7da224f8dd28a06fa91602e824db18 by flo
[ConstraintElimination] Simplify ssub(A,B) if B s>=b && B s>=0.

A first patch to use the reasoning in ConstraintElimination to simplify
sub with overflow to a regular sub, if the operation is guaranteed to
not overflow.

Reviewed By: spatel

Differential Revision: https://reviews.llvm.org/D125264
The file was modifiedllvm/lib/Transforms/Scalar/ConstraintElimination.cpp
The file was modifiedllvm/test/Transforms/ConstraintElimination/ssub-with-overflow.ll
Commit ed1cb01baf1727ce2eb9c58deafe1a92d6fc65b7 by npopov
[IRBuilder] Add IsInBounds parameter to CreateGEP()

We commonly want to create either an inbounds or non-inbounds GEP
based on a boolean value, e.g. when preserving inbounds from
existing GEPs. Directly accept such a boolean in the API, rather
than requiring a ternary between CreateGEP and CreateInBoundsGEP.

This change is not entirely NFC, because we now preserve an
inbounds flag in a constant expression edge-case in InstCombine.
The file was modifiedllvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
The file was modifiedllvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/test/Transforms/InstCombine/gep-combine-loop-invariant.ll
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
Commit 4be105c98a9c7e083cd878ee1751e11160b97b4a by aaron
Silence some false positive -Wstrict-prototype warnings

Before issuing the warning about use of a strict prototype, check if
the declarator is required to have a prototype through some other means
determined at parse time.

This silences false positives in OpenCL code (where the functions are
forced to have a prototype) and block literal expressions.
The file was modifiedclang/test/SemaOpenCL/func.cl
The file was modifiedclang/test/Sema/block-return.c
The file was modifiedclang/test/Sema/warn-strict-prototypes.m
The file was modifiedclang/test/Parser/opencl-kernel.cl
The file was modifiedclang/test/SemaOpenCL/address-spaces.cl
The file was modifiedclang/test/SemaOpenCL/cl20-device-side-enqueue.cl
The file was modifiedclang/lib/Sema/SemaType.cpp
Commit a80e65e00ada7a9c16acf17a5fd40b4f12ced3a8 by Louis Dionne
[libc++] Overhaul how we select the ABI library

This patch overhauls how we pick up the ABI library. Instead of setting
ad-hoc flags, it creates interface targets that can be linked against by
the rest of the build, which is easier to follow and extend to support
new ABI libraries.

This is intended to be a NFC change, however there are some additional
simplifications and improvements we can make in the future that would
require a slight behavior change.

Differential Revision: https://reviews.llvm.org/D120727
The file was modifiedlibcxx/test/configs/legacy.cfg.in
The file was modifiedlibcxx/docs/BuildingLibcxx.rst
The file was modifiedlibcxxabi/test/configs/cmake-bridge.cfg.in
The file was modifiedlibcxxabi/test/configs/ibm-libc++abi-shared.cfg.in
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedlibcxxabi/test/configs/apple-libc++abi-backdeployment.cfg.in
The file was modifiedlibcxxabi/test/configs/apple-libc++abi-shared.cfg.in
The file was modifiedlibcxx/cmake/Modules/HandleLibCXXABI.cmake
The file was modifiedlibcxx/lib/abi/CMakeLists.txt
The file was modifiedlibcxx/test/CMakeLists.txt
The file was modifiedlibcxx/src/CMakeLists.txt
The file was modifiedlibcxx/include/CMakeLists.txt
The file was modifiedclang/cmake/caches/CrossWinToARMLinux.cmake
The file was modifiedlibcxx/utils/libcxx/test/config.py
Commit 0f9a138034e4c0ec6f0fdb98c5157ff23bc57e14 by thakis
fix typos to cycle bots
The file was modifiedlld/test/MachO/compact-unwind-generated.test
The file was modifiedlld/test/MachO/icf.s
The file was modifiedlld/test/MachO/linkedit-contiguity.s
The file was modifiedlld/test/MachO/nonweak-definition-override.s
The file was modifiedlld/test/MachO/referenced-dynamically.s
Commit 5150d653aa04cd5a3b7d31f6989b1bed0670924f by llvm-dev
[SLP][X86] Add common CHECK prefix to sub-128-bit vector tests
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/arith-add-load.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/arith-mul-load.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/arith-and-const-load.ll
Commit ddfee075199db7bd4285bb5b2c739630c5ff9706 by npopov
[InstSimplify] Fold and/or using implied conditions

This adds two conjugated folds:

* A | B -> B if A implies B (https://alive2.llvm.org/ce/z/R6GU4j)
* A & B -> A if A implies B (https://alive2.llvm.org/ce/z/EGMqyy)

If A and B are icmps themselves, we will usually fold this through
other logic already (though the tests show a couple additional cases
we previously missed). However, isImpliedCond() also supports A
being of the form X & Y, which allows us to handle cases like
(X & Y) | B where X implies B. This addresses the regression from
D125398.

Something that notably doesn't work yet is the (X | Y) & B case.
This is due to an asymmetry in the isImpliedCondition()
implementation that will have to be addressed separately.

Differential Revision: https://reviews.llvm.org/D125530
The file was modifiedllvm/test/Transforms/InstSimplify/or-icmps-same-ops.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/and-or-implied-cond.ll
The file was modifiedllvm/test/Transforms/InstSimplify/and-icmps-same-ops.ll
Commit 92c645b5c196fb093af699f9e47cc4c539aa174b by david.sherwood
[LoopVectorize] Add overflow checks when tail-folding with scalable vectors

In InnerLoopVectorizer::getOrCreateVectorTripCount there is an
assert that the known minimum value for the VF is a power of 2
when tail-folding is enabled. However, for scalable vectors the
value of vscale may not be a power of 2, which means we have
to worry about the possibility of overflow. I have solved this
problem by adding preheader checks that prevent us from entering
the vector body if the canonical IV would overflow, i.e.

  if ((IntMax - TripCount) < (VF * UF)) ... skip vector loop ...

Differential Revision: https://reviews.llvm.org/D125235
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-unroll.ll
Commit a247ba9d15635d96225ef39c8c150c08f492e70a by aaron
Suggest typo corrections for preprocessor directives

When a preprocessor directive is unknown outside of a skipped
conditional block, we give an error diagnostic because we don't know
how to proceed with preprocessing. But when the directive is in a
skipped conditional block, we would not diagnose it on the theory that
the directive may be known to an implementation other than Clang.

Now, for unknown directives inside a skipped conditional block, we
diagnose the unknown directive as a warning if it is sufficiently
similar to a directive specific to preprocessor conditional blocks. For
example, we'll warn about `#esle` and suggest `#else` but we won't warn
about `#progma` because it's not a directive specific to preprocessor
conditional blocks.

Fixes #51598

Differential Revision: https://reviews.llvm.org/D124726
The file was modifiedclang/lib/Lex/PPDirectives.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Lex/Preprocessor.h
The file was modifiedclang/include/clang/Basic/DiagnosticLexKinds.td
The file was addedclang/test/Preprocessor/suggest-typoed-directive.c
Commit afc21c7e7970854dc7290f2461aa0e830510b798 by npopov
[ControlHeightReduction] Simplify addToMergedCondition() (NFC)
The file was modifiedllvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
Commit eaa78035c6a59b0607878f463ad7b7b7444f2c60 by paulsson
[SystemZ] Patchset for expanding memcpy/memset using at most two stores.

* Set MaxStoresPerMemcpy and MaxStoresPerMemset to 2.

* Optimize stores of replicated values in SystemZ::combineSTORE(). This
  handles the now expanded memory operations and as well some other
  pre-existing cases.

* Reject a big displacement in isLegalAddressingMode() for a vector type.

* Return true from shouldConsiderGEPOffsetSplit().

Reviewed By: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D122105
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was addedllvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll
The file was addedllvm/test/CodeGen/SystemZ/memset-08.ll
The file was addedllvm/test/CodeGen/SystemZ/store-replicated-vals.ll
The file was addedllvm/test/CodeGen/SystemZ/dag-combine-06.ll
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h
The file was addedllvm/test/CodeGen/SystemZ/memcpy-03.ll
Commit 3946de0456fcbcd3a6c9f0d09d16d46c7987e0d7 by steplong
[MSVC] Add support for pragma function

MSVC pragma function tells the compiler to generate calls to functions in the pragma function list, instead of using the builtin. Needs https://reviews.llvm.org/D124701

https://docs.microsoft.com/en-us/cpp/preprocessor/function-c-cpp?view=msvc-170

Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D124702
The file was modifiedclang/test/Preprocessor/pragma_microsoft.c
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was addedclang/test/CodeGen/pragma-ms-function.c
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Parse/ParsePragma.cpp
The file was modifiedclang/lib/Sema/SemaAttr.cpp
The file was modifiedclang/test/Preprocessor/pragma_microsoft.cpp
The file was modifiedclang/include/clang/Parse/Parser.h
Commit e0fcdf5496ca686c8cebb63b63af86e666b42ab3 by thakis
Revert "In MSVC compatibility mode, friend function declarations behave as function declarations"

This reverts commit ad47114ad8500c78046161d492ac13a8e3e610eb.
See discussion on https://reviews.llvm.org/D124613.
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was removedclang/test/SemaCXX/ms-friend-function-decl.cpp
The file was modifiedclang/unittests/AST/ASTImporterTest.cpp
Commit 0fefb56da7fd04c36675eebc2f9d1d851dca725b by spatel
[InstCombine] add tests for sub with rem operand; NFC
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit ee6754c277a67cbc51eb6b3eb704a0ff751f9ddd by spatel
[ValueTracking] recognize sub X, (X % Y) as not overflowing

I fixed some poison-safety violations on related patterns in InstCombine
and noticed that we missed adding nsw/nuw on them, so this adds clauses
to the underlying analysis for that.

We need the undef input restriction to make this safe according to Alive2:
https://alive2.llvm.org/ce/z/48g9K8

Differential Revision: https://reviews.llvm.org/D125500
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Transforms/InstCombine/rem.ll
The file was modifiedllvm/test/Transforms/InstCombine/exact.ll
The file was modifiedllvm/test/Transforms/InstCombine/add4.ll
The file was modifiedllvm/test/Transforms/InstCombine/sub.ll
Commit d364307542d19ec5b0f4f5ee9adc5a3b7c8639a5 by aaron
Remove a stale FIXME comment; NFC
The file was modifiedclang/test/Sema/warn-strict-prototypes.m
Commit fcbf617dcc517291785dbf2d457af5a5f1e60cca by jay.foad
[APInt] Fix documentation of *OrSelf methods

Document that truncOrSelf, zextOrSelf and sextOrSelf only enforce
an upper or lower bound on the bitwidth of the result.
The file was modifiedllvm/include/llvm/ADT/APInt.h
Commit 25862f53cce966cef2957825095861dec631d4f1 by aaron.puchert
Try to disambiguate between overloads on Mac

Presumably Mac has a different understanding of how long `long` is.
Should fix a build error introduced by D125429 that's not visible on
other architectures.
The file was modifiedclang/lib/AST/CommentParser.cpp
Commit e1a8d05dd27b3247d36bc67177e7aefcf18e7eca by kristof.beyls
Update my office hours
The file was modifiedllvm/docs/GettingInvolved.rst
Commit 98f82d69bdef17932112235eab65c1ba085d10fd by llvm-dev
[X86] LowerStore - use is64BitVector() wrapper. NFCI.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit fe3b621f05e706fb04dec121c136b6de82a9e277 by zhijian
[AIX] support write operation of big archive.

SUMMARY

1. Enable supporting the write operation of big archive.
2. the first commit come from https://reviews.llvm.org/D104367
3. refactor the first commit and implement writing symbol table.
4. fixed the bugs and add more test cases in the second commit.

Reviewers: James Henderson
Differential Revision: https://reviews.llvm.org/D123949
The file was modifiedllvm/test/tools/llvm-ar/extract.test
The file was modifiedllvm/test/tools/llvm-ar/non-windows-name-case.test
The file was modifiedllvm/test/tools/llvm-readobj/basic.test
The file was modifiedllvm/test/Object/directory.ll
The file was modifiedllvm/test/tools/llvm-ar/display-empty.test
The file was modifiedllvm/include/llvm/Object/Archive.h
The file was modifiedllvm/test/tools/llvm-ar/full-path-option.test
The file was modifiedllvm/test/tools/llvm-ar/move-after.test
The file was modifiedllvm/test/tools/llvm-nm/option-X.test
The file was modifiedllvm/test/tools/llvm-objcopy/MachO/universal-object.test
The file was modifiedllvm/test/tools/llvm-size/archive.test
The file was modifiedllvm/test/Object/archive-malformed-object.test
The file was modifiedllvm/test/tools/llvm-lipo/create-archive-input.test
The file was modifiedllvm/test/tools/llvm-ar/default-xcoff.test
The file was modifiedllvm/test/tools/llvm-ar/read-only-archive.test
The file was modifiedllvm/test/tools/llvm-ar/response.test
The file was modifiedllvm/test/Object/archive-unknown-filetype.test
The file was modifiedllvm/test/tools/llvm-ar/count.test
The file was modifiedllvm/test/tools/llvm-ar/insert-before.test
The file was modifiedllvm/test/tools/llvm-ar/dash-before-letter.test
The file was modifiedllvm/test/tools/llvm-ar/mri-nonascii.test
The file was modifiedllvm/tools/llvm-ar/llvm-ar.cpp
The file was modifiedllvm/test/tools/llvm-ar/move-before.test
The file was modifiedllvm/test/tools/llvm-ar/response-utf8.test
The file was modifiedllvm/test/tools/llvm-ar/print.test
The file was modifiedllvm/test/tools/llvm-link/archivell.ll
The file was modifiedllvm/test/Object/archive-replace-pos.test
The file was modifiedllvm/test/tools/llvm-libtool-darwin/archive-flattening.test
The file was modifiedllvm/test/tools/llvm-ar/flatten-thin-archive.test
The file was modifiedllvm/test/tools/llvm-ar/mri-delete.test
The file was modifiedllvm/lib/Object/ArchiveWriter.cpp
The file was modifiedllvm/test/Object/archive-update.test
The file was modifiedllvm/test/tools/llvm-ar/insert-after.test
The file was modifiedllvm/test/tools/llvm-link/archive.ll
The file was modifiedllvm/test/tools/llvm-ar/error-opening-permission.test
The file was modifiedllvm/test/tools/llvm-ar/plugin.test
The file was modifiedllvm/test/tools/llvm-ar/create.test
The file was modifiedllvm/test/Object/archive-extract-dir.test
The file was modifiedllvm/test/tools/llvm-ar/double-hyphen.test
The file was modifiedllvm/test/Object/ar-create.test
Commit 0c00dbb97557e6ff177beeab3b2ea583b3eac482 by npopov
[LoopVectorize] Regenerate test checks (NFC)
The file was modifiedllvm/test/Transforms/LoopVectorize/induction.ll
Commit a2ac0bb2f141520150c823eb28896f45feb59832 by qiaopeixin
[flang] Warn for the limit on name length

As fortran 2018 C601, the maximum length of a name is 63 characters.

Reviewed By: klausler

Differential Revision: https://reviews.llvm.org/D125371
The file was modifiedflang/include/flang/Common/Fortran.h
The file was modifiedflang/lib/Semantics/check-declarations.cpp
Commit 7e3ea55da88a9d7feaa22f29d51f89fd0152a189 by balazs.benics
[clang-tidy] modernize-deprecated-headers check should respect extern "C" blocks

The check should not report includes wrapped by `extern "C" { ... }` blocks,
such as:

```lang=C++
#ifdef __cplusplus
extern "C" {
#endif

#include "assert.h"

#ifdef __cplusplus
}
#endif
```

This pattern comes up sometimes in header files designed to be consumed
by both C and C++ source files.
The check now reports false reports when the header file is consumed by
a C++ translation unit.

In this change, I'm not emitting the reports immediately from the
`PPCallback`, rather aggregating them for further processing.
After all preprocessing is done, the matcher will be called on the
`TranslationUnitDecl`, ensuring that the check callback is called only
once.

Within that callback, I'm recursively visiting each decls, looking for
`LinkageSpecDecls` which represent the `extern "C"` specifier.
After this, I'm dropping all the reports coming from inside of it.
After the visitation is done, I'm emitting the reports I'm left with.

For performance reasons, I'm sorting the `IncludeMarkers` by their
corresponding locations.
This makes the scan `O(log(N)` when looking up the `IncludeMarkers`
affected by the given `extern "C"` block. For this, I'm using
`lower_bound()` and `upper_bound()`.

Reviewed By: whisperity

Differential Revision: https://reviews.llvm.org/D125209
The file was addedclang-tools-extra/test/clang-tidy/checkers/Inputs/modernize-deprecated-headers/mylib.h
The file was modifiedclang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.h
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was addedclang-tools-extra/test/clang-tidy/checkers/modernize-deprecated-headers-extern-c.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
Commit 905eff45a0af26cc0e877ddff846c97c77cead0c by spatel
[x86] add test to show potential miscompile with undef value; NFC

This is based on:
c2a5a87500d92c
The file was modifiedllvm/test/CodeGen/X86/combine-urem.ll
Commit e52e1dab2a25d77a135b891378ad98ae339781ed by spatel
[SDAG] freeze operand when expanging urem

This is a potential miscompile as discussed in issue #55291.

The related IR transform was patched with:
d428f09b2c9d49f6a32
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/combine-urem.ll
Commit d5ffc1ed8b629cd04bbd46ee6981529d9dafa48f by balazs.benics
[analyzer][NFC] Tighten some of the SValBuilder return types

This is purely a cosmetic change.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D125463
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
The file was modifiedclang/lib/StaticAnalyzer/Core/SValBuilder.cpp
Commit a1025e6ffe9b43afb9c6569423c4ea1d0ba8ecf2 by balazs.benics
[analyzer] Introduce clang_analyzer_dumpSvalType introspection function

In some rare cases the type of an SVal might be interesting.
This introspection function exposes this information in tests.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D125532
The file was modifiedclang/test/Analysis/expr-inspection.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
Commit e8cae487022c2216182ae1ec24f248f287a614b7 by balazs.benics
Revert "[clang-tidy] modernize-deprecated-headers check should respect extern "C" blocks"

This reverts commit 7e3ea55da88a9d7feaa22f29d51f89fd0152a189.

Looks like this breaks tests: http://45.33.8.238/linux/76033/step_8.txt
The file was removedclang-tools-extra/test/clang-tidy/checkers/modernize-deprecated-headers-extern-c.cpp
The file was modifiedclang-tools-extra/docs/ReleaseNotes.rst
The file was removedclang-tools-extra/test/clang-tidy/checkers/Inputs/modernize-deprecated-headers/mylib.h
The file was modifiedclang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.cpp
The file was modifiedclang-tools-extra/clang-tidy/modernize/DeprecatedHeadersCheck.h
Commit f01c7583b5ce9bfc93f833e40e19c3cfd988fd2c by npopov
[InstSimplify] Add additional implied condition tests (NFC)
The file was modifiedllvm/test/Transforms/InstSimplify/select-implied.ll
Commit 0d67c8a51d61cb0fac91f265a424767f072c7d5c by michael.p.rice
[OpenMP] Fix declare simd use on in-class member template function

Return the Decl when parsing the template member declaration so the
'omp declare simd' pragma can be applied to it. Previously a nullptr
was returned causing an error applying the pragma.

Fixes #52700.

Differential Revision: https://reviews.llvm.org/D125493
The file was modifiedclang/test/OpenMP/declare_simd_codegen.cpp
The file was modifiedclang/test/OpenMP/declare_simd_messages.cpp
The file was modifiedclang/lib/Parse/ParseTemplate.cpp
Commit 1d7b5cd5bf8cfe2593109ace361ad37ec3b54a1f by clattner
[ParseResult] Mark this as LLVM_NODISCARD (like LogicalResult) and fix issues.

There are a lot of cases where we accidentally ignored the result of some
parsing hook.  Mark ParseResult as LLVM_NODISCARD just like ParseResult is.
This exposed some stuff to clean up, so do.

Differential Revision: https://reviews.llvm.org/D125549
The file was modifiedmlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
The file was modifiedmlir/lib/Dialect/OpenACC/IR/OpenACC.cpp
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
The file was modifiedmlir/lib/IR/FunctionImplementation.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/include/mlir/Support/LogicalResult.h
The file was modifiedmlir/unittests/Interfaces/DataLayoutInterfacesTest.cpp
The file was modifiedmlir/test/Dialect/SCF/invalid.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
The file was modifiedmlir/lib/Dialect/Quant/IR/TypeParser.cpp
The file was modifiedmlir/lib/Dialect/Vector/IR/VectorOps.cpp
The file was modifiedmlir/lib/Dialect/Async/IR/Async.cpp
The file was modifiedmlir/test/IR/invalid.mlir
The file was modifiedmlir/lib/Parser/AffineParser.cpp
Commit af5e09b7d9646861863807d8d70e4e672505544e by preames
[RISCV] Add llvm.read.register support for vlenb

This patch adds minimal support for lowering an read.register intrinsic with vlenb as the argument. Note that vlenb is an implementation constant, so it is never allocatable.

This was split off a patch to eventually replace PseudoReadVLENB with a COPY MI because doing so revealed a couple of optimization opportunities which really seemed to warrant individual patches and tests. To write those patches, I need a way to write the tests involving vlenb, and read.register seemed like the right testing hook.

Differential Revision: https://reviews.llvm.org/D125552
The file was modifiedllvm/test/CodeGen/RISCV/get-register-noreserve.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVRegisterInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVRegisterInfo.td
Commit 1662cfa4be33edd94ab71f8aa83676eb8b378f4a by hoy
[CSSPGO][CSProfileConverter] Remove call target samples when including callee samples into caller.

When a flat CS profile is converted to a nested profile, the call target samples for inlined callee contexts are left over in the callsite target map. This could cause indirect call promotion to function improperly. One issue is that the inlined callsites are treated with double amount of samples. The other is the inlined callsites are reconsidered for subsequent PGO ICP.

I'm fixing this by excluding call targets from the callsite for inlined targets. While fixing this I found that callsite target sum and the number of body samples for that callsite could be mismatched. {D122609} has an explanation and a fix for that on llvm-profgen side. For now I'm tolerating it in this change.

Reviewed By: wenlei

Differential Revision: https://reviews.llvm.org/D125266
The file was modifiedllvm/include/llvm/ProfileData/SampleProf.h
The file was modifiedllvm/lib/ProfileData/SampleProf.cpp
The file was modifiedllvm/test/tools/llvm-profdata/cs-sample-nested-profile.test
The file was modifiedllvm/test/tools/llvm-profgen/cs-preinline.test
Commit f21cf11a4c1d4b09f956e50706307fe986f527dc by Louis Dionne
[libc++abi][NFCI] Refactor demangling_terminate_handler to reduce nesting

This keeps the same logic, but uses early return to avoid multiple layers
of nested ifs and make the code simpler to follow.

Differential Revision: https://reviews.llvm.org/D125476
The file was modifiedlibcxxabi/src/cxa_default_handlers.cpp
Commit 0513502a0ade0414d65f8af1a3f784b59b836a4f by preames
[RISCV] Precommit tests showing missed vlenb optimizations
The file was addedllvm/test/CodeGen/RISCV/vlenb.ll
Commit 853fa8ee225edf2d0de94b0dcbd31bea916e825e by preames
[RISCV] Address post-commit feedback from af5e09b
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfo.cpp
Commit 6716e2055ddeac304f47adc5ae39086381016ba7 by Louis Dionne
[libunwind] Remove -Wsign-conversion warning
The file was modifiedlibunwind/src/DwarfInstructions.hpp
Commit 3fc33ced10f255c830f24905c8aadee691b5f8a6 by llvm-dev
DAGCombiner.cpp - break if-else chains that always return (style)
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 534f6604200137bd4d84d3c91ea7f68bf132197d by phosek
[CMake] Disable libedit in Fuchsia toolchain

We don't need libedit in our toolchain build.

Differential Revision: https://reviews.llvm.org/D125570
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
The file was modifiedclang/cmake/caches/Fuchsia.cmake
Commit a2918976cd20211e9e87a3be38cd6ef5b4fa2e54 by craig.topper
Revert "[RISCV] Enable subregister liveness tracking for RVV."

This reverts most of ed242b54c9c2aa84a47f66af5b8497d93646b68d

I'm seeing failures in our intrinsic testing on qemu that seem
related to this. Reverting while I investigate.

I've left the command line option in place for directed testing.
It defaults to off.
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsuxseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-exttrunc.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/insert-subvector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsuxseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsegff-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-interleave.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsegff-rv32-dead.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsoxseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsoxseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-fp.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vluxseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsegff-rv64-dead.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/rv64-spill-zvlsseg.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vloxseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-interleave.ll
The file was modifiedllvm/test/CodeGen/RISCV/regalloc-last-chance-recoloring-failure.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vssseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsetvli-insert-crossbb.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vssseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/zvlsseg-zero-vl.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vloxseg-rv32.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/rv32-spill-zvlsseg.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vsseg-rv64.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVSubtarget.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/extract-subvector.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vector-segN-load.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vluxseg-rv64.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-reduction-int.ll
The file was modifiedllvm/test/CodeGen/RISCV/rvv/vlsegff-rv64.ll
Commit 177fd72f5f223810f647d104749b40abdb9e3d6d by i
[ELF] Disallow input section description without a filename

GNU ld does not allow `.foo : { (*foo) }`, but we may recognize it as three
input section descriptions: file "(" with any section name, file "*foo" with
any section name, file ")" with any section name. Disallow the error-prone usage.

Reviewed By: peter.smith

Differential Revision: https://reviews.llvm.org/D125523
The file was modifiedlld/test/ELF/linkerscript/no-filename-spec.s
The file was modifiedlld/ELF/ScriptParser.cpp
Commit 345ed58ed513ab34640af7f174f27834acd958c1 by llvm-dev
Fix implicit double -> float truncation warnings. NFCI.
The file was modifiedllvm/unittests/Analysis/MLModelRunnerTest.cpp
Commit 0a22dfcb11c05cbd4f654c8ef1868a4bc6085140 by Louis Dionne
[runtimes][NFC] Remove dead code for Standalone builds

Standalone builds have been deprecated and then removed for a while now.
Trying to use standalone builds leads to a fatal CMake error, so this
code is all dead. Remove it to clean things up.

Differential Revision: https://reviews.llvm.org/D125561
The file was modifiedlibcxx/CMakeLists.txt
The file was modifiedlibcxx/test/CMakeLists.txt
The file was modifiedlibcxx/benchmarks/CMakeLists.txt
The file was modifiedlibcxxabi/CMakeLists.txt
The file was modifiedlibcxxabi/test/CMakeLists.txt
The file was modifiedlibunwind/CMakeLists.txt
Commit b4f8443d97baf390e3a1e64021e39790c410af9d by jhuber6
[Libomptarget] Allow the device runtime to be compiled for the host

Currently the OpenMP offloading device runtime is only expected to be
compiled for the specific architecture it's targeting. This is
problematic if we want to make compiling the device runtime more general
via the standar `clang` driver rather than invoking the clang front-end
directly. This patch addresses this by primarily changing the declare
type to `nohost` so the host will not contain any of this code.
Additionally we forward declare the functions that are defined via
variants, otherwise these would cause problems on the host.

Reviewed By: jdoerfert, tianshilei1992

Differential Revision: https://reviews.llvm.org/D125260
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Mapping.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Synchronization.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Tasking.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Debug.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Configuration.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/include/State.h
The file was modifiedopenmp/libomptarget/DeviceRTL/include/Mapping.h
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Utils.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Misc.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Reduction.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Workshare.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Kernel.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Parallelism.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/State.cpp
Commit ce0caf41bdd44366b9913a8afb3dd79d184687c6 by jhuber6
[Libomptarget] Address existing warnings in the device runtime library

This patche attemps to address the current warnings in the OpenMP
offloading device runtime. Previously we did not see these because we
compiled the runtime without the standard warning flags enabled.
However, these warnings are used when we now build the static library
version of this runtime. This became extremely noisy when coupled with
the fact the we compile each file roughly 32 times when all the
architectures are considered. So it would be ideal to not have all these
warnings show up when building.

Most of these errors were simply implicit switch-case fallthroughs,
which can be addressed using C++17's fallthrough attribute. Additionally
there was a volatile variable that was being casted away. This is most
likely safe to remove because we cast it away before its even used and
didn't seem to affect anything in testing.

Depends on D125260

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D125339
The file was modifiedopenmp/libomptarget/DeviceRTL/src/State.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Debug.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Mapping.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Reduction.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Parallelism.cpp
The file was modifiedopenmp/libomptarget/DeviceRTL/src/Workshare.cpp
Commit 002a63f937d91c0aad192f2d4997317fb277b32a by jhuber6
[OpenMP] Add `__CUDA_ARCH__` definition when offloading with OpenMP

Currently we define the `__CUDA_ARCH__` macro only in CUDA mode. This
patch allows us to use this macro in OpenMP-offloading mode when
targeting NVPTX.

Reviewed By: tra, tianshilei1992

Differential Revision: https://reviews.llvm.org/D125256
The file was modifiedclang/test/OpenMP/driver-openmp-target.c
The file was modifiedclang/lib/Basic/Targets/NVPTX.cpp
Commit 5189f634a113b06fc2f2e8c6c021c0083f59bfb8 by jhuber6
[OpenMP] Don't include the device wrappers if -nostdinc is used

OpenMP uses several wrapper hearders to provide the definitions of
needed symbols contained in the host. However, some users may use the
`-nostdinc` option to override these definitions themselves. The OpenMP
wrapper headers are stored in the same location as the clang install. If
the user passes `-nostdinc` then this include directory is never looked
at by default which means that including these wrappers will always
fail. These headers should instead be included manually if they are
needed with a `-nostdinc` build.

Reviewed By: tra

Differential Revision: https://reviews.llvm.org/D125265
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit af757f89806e03229837425b77839498db470ef8 by jhuber6
[OpenMP] Don't set device runtime debugging flags if using '-nogpulib'

We use globals to configure debugging at compile-time for the device
runtime. Because these are only used by the OpenMP runtime we shouldn't
define them if we aren't using the device runtime. When a user passes in
'-nogpulib' this indicates that we are not using the device runtime, so
we should check for the precense of this flag and not emit these globals
if used.

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D125314
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/OpenMP/target_globals_codegen.cpp
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
Commit 9ffa945c401ccd248e1e35fbbccb1860b253b290 by jhuber6
[Libomptarget] Remove global include directory from libomptarget

We used to globally include the libomptarget include directory for all
projects. This caused some conflicts with the other files named
"Debug.h". This patch changes the cmake to include these files via the
target include instead.

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D125563
The file was modifiedopenmp/libomptarget/src/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/amdgpu/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/ve/CMakeLists.txt
The file was modifiedopenmp/libomptarget/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/cuda/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/common/elf_common/CMakeLists.txt
The file was modifiedopenmp/libomptarget/tools/deviceinfo/CMakeLists.txt
Commit 16b7a0b43b386a0cfde65060394d5296345ce9bb by jhuber6
[Libomptarget] Build the device runtime as a static library

This patch adds the necessary CMake configuration to build a static
library version of the device runtime, `libomptarget.devicertl.a`.
Various improvements in how we handle static libraries and generating
offloading code should allow us to treat the device library as a regular
project without needing to invoke the clang front-end directly. Here we
generate a job for each offloading architecture supported. Each
offloading architecture will be embedded into the static library and
used as-needed by the host.

This library will primarily be used to replace the bitcode library when
performing LTO. Currently, we need to manually pass in the bitcode
library which requires foreknowledge of the offloading architecture.
This approach lets us handle that in the linker wrapper instead.
Furthermore this should improve our interface to the device runtime. We
can now build it fully under a release build and have all the expected
entry points, as well as supporting debug builds.

Depends on D125265 D125256 D125260 D125314 D125563

Reviewed By: tianshilei1992

Differential Revision: https://reviews.llvm.org/D125315
The file was modifiedopenmp/libomptarget/DeviceRTL/CMakeLists.txt
The file was addedopenmp/libomptarget/DeviceRTL/src/CMakeLists.txt
Commit 4638ae3a8575d988df856116102c1ccd15583c00 by jhuber6
[OpenMP] Use the new OpenMP device static library when doing LTO

The previous patches allowed us to create a static library containing
all the device code. This patch uses that library to perform the device
runtime linking late when performing LTO. This in addition to
simplifying the libraries, allows us to transparently handle the runtime
library as-needed without needing Clang to manually pass the necessary
library in the linker wrapper job.

Depends on D125315

Reviewed By: jdoerfert

Differential Revision: https://reviews.llvm.org/D125333
The file was modifiedclang/test/Driver/openmp-offload-gpu-new.c
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
Commit 374d78999722a200ab0f05981f57daa7c8277e32 by Louis Dionne
[runtimes] Fix how we trigger CI

For example, we used to trigger CI even for commits that touched a file
whose path contained 'cmake', even if it's not the root cmake directory.
Fix that.
The file was modifiedlibcxx/utils/ci/buildkite-pipeline-premerge.sh
Commit c1532ac4aae240be64ec7cb062ceef8504668dce by aaupov
[BOLT][CMAKE] Add missing clauses to bolt/runtime/CMakeLists.txt

Fix build with Apple Clang.
Tip @tschuett for reporting the issue #55404.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D125480
The file was modifiedbolt/runtime/CMakeLists.txt
Commit 82482e709f028d78c584be884b29f8e55d5aeb44 by i
[ELF][test] Clean up linkerscript/{filename-spec.s,group.s}
The file was modifiedlld/test/ELF/linkerscript/group.s
The file was removedlld/test/ELF/linkerscript/Inputs/filename-spec.s
The file was modifiedlld/test/ELF/linkerscript/filename-spec.s
Commit 912f5f7183f28c5f3d0f4d2fe6a03bb5e5529474 by i
[ELF][test] Add an input section description test with "()" in the filename
The file was modifiedlld/test/ELF/linkerscript/filename-spec.s
Commit 139744ac5388e86139b1e33e0bf25359947e2522 by aaupov
[BOLT][NFC] Suppress unused variable warnings

Address warnings in Release build without assertions.
Tip @tschuett for reporting the issue #55404.

Reviewed By: rafauler

Differential Revision: https://reviews.llvm.org/D125475
The file was modifiedbolt/lib/Passes/RegReAssign.cpp
The file was modifiedbolt/lib/Target/X86/X86MCPlusBuilder.cpp
The file was modifiedbolt/lib/Core/DebugData.cpp
The file was modifiedbolt/lib/Core/BinaryFunction.cpp
The file was modifiedbolt/lib/Target/AArch64/AArch64MCPlusBuilder.cpp
Commit 253b8f0abd669ec1238e90080ce753fb3122e350 by aaupov
[BOLT][NFC] Use refs for loop variables to avoid copies

Addresses warnings when built with Apple Clang.

Reviewed By: yota9

Differential Revision: https://reviews.llvm.org/D125483
The file was modifiedbolt/lib/Profile/DataReader.cpp
The file was modifiedbolt/lib/Core/BinaryFunction.cpp
The file was modifiedbolt/lib/Rewrite/BoltDiff.cpp
Commit 41fef1044956a2aa9824d3284d363603d6f23537 by Amara Emerson
[GlobalISel] Combine G_SHL, G_ASHR, G_SHL of undef shifts to undef.

Differential Revision: https://reviews.llvm.org/D125041
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-undef.mir
The file was modifiedllvm/include/llvm/Target/GlobalISel/Combine.td
Commit a8abb695859ad4e7fe695b9ee238a2b0cd00af7c by Jonas Devlieghere
[lldb] Parallelize fetching symbol files in crashlog.py

When using dsymForUUID, the majority of time symbolication a crashlog
with crashlog.py is spent waiting for it to complete. Currently, we're
calling dsymForUUID sequentially when iterating over the modules. We can
drastically cut down this time by calling dsymForUUID in parallel. This
patch uses Python's ThreadPoolExecutor (introduced in Python 3.2) to
parallelize this IO-bound operation.

The performance improvement is hard to benchmark, because even with an
empty local cache, consecutive calls to dsymForUUID for the same UUID
complete faster. With warm caches, I'm seeing a ~30% performance
improvement (~90s -> ~60s). I suspect the gains will be much bigger for
a cold cache.

dsymForUUID supports batching up multiple UUIDs. I considered going that
route, but that would require more intrusive changes. It would require
hoisting the logic out of locate_module_and_debug_symbols which we
explicitly document [1] as a feature of Symbolication.py to locate
symbol files.

[1] https://lldb.llvm.org/use/symbolication.html

Differential reviison: https://reviews.llvm.org/D125107
The file was modifiedlldb/examples/python/crashlog.py
Commit 2f04e703bff3d9858f53225fa7c780b240c3e247 by e_zhdan
[Clang] Add DriverKit support

This is the second patch that upstreams the support for Apple's DriverKit.

The first patch: https://reviews.llvm.org/D118046.

Differential Revision: https://reviews.llvm.org/D121911
The file was addedclang/test/CodeGen/availability-check-driverkit.c
The file was modifiedclang/include/clang/Basic/Attr.td
The file was addedclang/test/Driver/driverkit-cplusplus.cpp
The file was modifiedclang/test/Driver/darwin-ld.c
The file was modifiedclang/test/Driver/instrprof-ld.c
The file was addedclang/test/Driver/driverkit-framework.c
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
The file was addedclang/test/Driver/driverkit-target-cpu.c
The file was modifiedclang/test/Driver/stack-protector.c
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was modifiedclang/test/Driver/pic.c
The file was modifiedclang/lib/Driver/ToolChains/Arch/X86.cpp
The file was addedclang/test/Driver/Inputs/DriverKit19.0.sdk/System/DriverKit/usr/include/.keep
The file was addedclang/test/Driver/Inputs/basic_darwin_driverkit_sdk_usr_cxx_v1/System/DriverKit/usr/lib/.keep
The file was modifiedclang/include/clang/Basic/Features.def
The file was addedclang/test/Driver/driverkit-armv7k.s
The file was modifiedclang/lib/Driver/ToolChains/Darwin.h
The file was addedclang/test/Driver/driverkit-exceptions.cpp
The file was modifiedclang/lib/Driver/ToolChains/Arch/ARM.cpp
The file was addedclang/test/Driver/driverkit-rtti.cpp
The file was addedclang/test/Driver/driverkit-arm64.c
The file was addedclang/test/Sema/attr-availability-driverkit.c
The file was modifiedclang/test/Preprocessor/arm-target-features.c
The file was addedclang/test/Driver/Inputs/basic_darwin_driverkit_sdk_usr_cxx_v1/System/DriverKit/usr/include/c++/v1/.keep
The file was addedclang/test/Driver/Inputs/DriverKit19.0.sdk/SDKSettings.plist
The file was modifiedclang/include/clang/Driver/Options.td
The file was addedclang/test/Driver/Inputs/resource_dir/lib/darwin/libclang_rt.driverkit.a
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/lib/Basic/Targets/OSTargets.h
The file was addedclang/test/Driver/darwin-ld-platform-version-driverkit.c
The file was addedclang/test/Driver/driverkit-version-min.c
The file was modifiedclang/include/clang/Basic/AttrDocs.td
The file was modifiedclang/test/Driver/darwin-version.c
The file was modifiedclang/test/Driver/debug-options.c
The file was addedclang/test/Driver/driverkit-arm64e.c
The file was modifiedclang/test/Frontend/darwin-version.c
The file was modifiedclang/lib/CodeGen/CGObjC.cpp
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/lib/Basic/Targets/OSTargets.cpp
The file was modifiedclang/lib/Basic/LangStandards.cpp
The file was modifiedclang/test/Driver/incompatible_sysroot.c