Changes

Summary

  1. [AMDGPU] Select d16 stores even when sramecc is enabled (details)
  2. [Concepts] Fix overload resolution bug with constrained candidates (details)
  3. [mlir][emitc] Add test for invalid type (details)
  4. [OpenCL] opencl-c.h: Add const to get_image_num_samples (details)
  5. [lldb] Handle empty search string in "memory find" (details)
  6. [analyzer][NFC] Introduce the checker package separator character (details)
  7. [analyzer] Turn missing tablegen doc entry of a checker into fatal error (details)
  8. [analyzer] ClangSA should tablegen doc urls refering to the main doc page (details)
  9. [analyzer] Remove HasAlphaDocumentation tablegen enum value (details)
  10. [AMDGPU][MC] Corrected error message "image data size does not match dmask and tfe" (details)
  11. Fix SLP score for out of order contiguous loads (details)
  12. [AArch64] Cost all perfect shuffles entries as cost 1 (details)
  13. [VPlan] Expand induction step in VPlan pre-header. (details)
  14. Revert "[Concepts] Fix overload resolution bug with constrained candidates" (details)
  15. [AArch64] Only mark cost 1 perfect shuffles as legal (details)
  16. [MLIR][GPU] Add canonicalizer for gpu.memcpy (details)
  17. [OpenMP] Make Xopenmp-target args compile-only to silence warnings (details)
  18. [OpenMP][Docs] Remove old 14.0 release information (details)
  19. [clangd] IncludeCleaner: Add filtering mechanism (details)
  20. Revert "[SLP]Improve reductions analysis and emission, part 1." (details)
  21. [SLP][NFC]Add a test for reducing same values, NFC. (details)
  22. [AArch64] Add lane moves to PerfectShuffle tables (details)
  23. [clang][AArch64] Remove BTI after setjmp from release notes (details)
  24. [clang] Adding Platform/Architecture Specific Resource Header Installation Targets (details)
  25. [llvm-ar][test] Rename two tests and use correct thin command (details)
  26. [analyzer] Expose Taint.h to plugins (details)
  27. [SystemZ] Handle SystemZ specific inline assembly address operands. (details)
  28. [ASan] Fixed a reporting bug in (load|store)N functions which would print unknown-crash instead of the proper error message when a the data access is unaligned. (details)
  29. [PPCGCodeGeneration] Avoid pointer element type access (details)
  30. [VPlan] Remove unused SCEV forward declaration (NFC). (details)
  31. [PerfectShuffle] Remove unused variables from D123386. NFC (details)
  32. [PPCGCodeGeneration] Avoid another pointer element type access (details)
  33. [PPCGCodeGeneration] Look for function instead of function pointer type (details)
  34. [Test] Add more tests showing duplicate PHIs generated by RS4GC (NFC) (details)
  35. [OCaml] Fix pass builder test (details)
  36. [InstCombine] add tests for freeze of partial undef vector constants; NFC (details)
  37. Apply clang-tidy fixes for performance-unnecessary-value-param in ControlFlowInterfaces.cpp (NFC) (details)
  38. Apply clang-tidy fixes for llvm-qualified-auto in OpenMPToLLVMIRTranslation.cpp (NFC) (details)
  39. [clangd] Dont include version string in update tasks (details)
  40. Print custom assembly on pass failure by default (details)
  41. [compiler-rt] Use ld64 flag -lto_library instead of DYLD_LIBRARY_PATH (details)
  42. [Go] Remove PopulateLTOPassManager binding after D123882 (details)
  43. [IRSim] Ignore debug instructions when creating canonical numbering (details)
  44. [CUDA][HIP] Fix delete operator for -fopenmp (details)
  45. [NFC][SLP] Improved description of getShallowScore() and getScoreAtLevelRec() (details)
  46. [ASan] Removed checks if the tested functions were emitted. (details)
  47. [InstCombine] add tests for shift-of-add with constants; NFC (details)
  48. [InstCombine] C0 shift (X add nuw C) --> (C0 shift C) shift X (details)
  49. [BuildLibCalls] Introduce getOrInsertLibFunc() for use when building libcalls. (details)
  50. [MLIR] Add function to create BFloat16 array attribute (details)
  51. [analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions. (details)
  52. [mlir][transform] Introduce transform.sequence op (details)
  53. [mlir] Adds getUpperBound() to LoopLikeInterface. (details)
  54. [clang][Sema] Add flag to LookupName to force C/ObjC codepath (details)
  55. [gn build] Port c57f03415f96 (details)
  56. [Libomptarget][remote] Fix compile-time error (details)
  57. [clang][dataflow] Do not crash on missing `Value` for struct-typed variable init. (details)
Commit f707e1255e2f0a46c7a23271f594a9a4e5ec8f08 by jay.foad
[AMDGPU] Select d16 stores even when sramecc is enabled

The sramecc feature changes the behaviour of d16 loads so they do not
preserve the unused 16 bits of the result register, but it has no impact
on d16 stores, so we should make use of them even when the feature is
enabled.

Differential Revision: https://reviews.llvm.org/D104912
The file was modifiedllvm/lib/Target/AMDGPU/BUFInstructions.td
The file was modifiedllvm/lib/Target/AMDGPU/DSInstructions.td
The file was modifiedllvm/test/CodeGen/AMDGPU/store-hi16.ll
The file was modifiedllvm/lib/Target/AMDGPU/FLATInstructions.td
Commit 454d1df9423c95e54c3a2f5cb58d864096032d09 by roi.jacobson1
[Concepts] Fix overload resolution bug with constrained candidates

When doing overload resolution, we have to check that candidates' parameter types are equal before trying to find a better candidate through checking which candidate is more constrained.
This revision adds this missing check and makes us diagnose those cases as ambiguous calls when the types are not equal.

Fixes GitHub issue https://github.com/llvm/llvm-project/issues/53640

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D123182
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was addedclang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p6.cpp
Commit 2ba865903daed7b4dff0d4afb2410614325a19fe by marius.brehler
[mlir][emitc] Add test for invalid type

Reviewed By: jpienaar

Differential Revision: https://reviews.llvm.org/D123503
The file was modifiedmlir/lib/Dialect/EmitC/IR/EmitC.cpp
The file was addedmlir/test/Dialect/EmitC/invalid_types.mlir
Commit f3ee0afc6739bf2990f9d302ff6b28dbb0429e8d by sven.vanhaastregt
[OpenCL] opencl-c.h: Add const to get_image_num_samples

Align with the `-fdeclare-opencl-builtins` option and other
get_image_* builtins which have the const attribute.

Differential Revision: https://reviews.llvm.org/D122728
The file was modifiedclang/lib/Headers/opencl-c.h
Commit 68e73eaee632b29d36e8b24f62e77ef26084885d by david.spickett
[lldb] Handle empty search string in "memory find"

Given that you'd never find empty string, just error.

Also add a test that an invalid expr generates an error.

Reviewed By: JDevlieghere

Differential Revision: https://reviews.llvm.org/D123793
The file was modifiedlldb/test/API/functionalities/memory/find/TestMemoryFind.py
The file was modifiedlldb/source/Commands/CommandObjectMemory.cpp
Commit b7c988811d50f0f068a375292fb5f2b6df384400 by balazs.benics
[analyzer][NFC] Introduce the checker package separator character

Reviewed By: martong, ASDenysPetrov

Differential Revision: https://reviews.llvm.org/D122243
The file was modifiedclang/utils/TableGen/ClangSACheckersEmitter.cpp
Commit 63c4ca9d14bad909f92ef019ec85f7a1c42311f2 by balazs.benics
[analyzer] Turn missing tablegen doc entry of a checker into fatal error

It turns out all checkers explicitly mention the `Documentation<>`.
It makes sense to demand this, so emit a fatal tablegen error if such
happens.

Reviewed By: martong, Szelethus

Differential Revision: https://reviews.llvm.org/D122244
The file was modifiedclang/utils/TableGen/ClangSACheckersEmitter.cpp
Commit 744e2a3e2232db87cb68b201739956ca205dc946 by balazs.benics
[analyzer] ClangSA should tablegen doc urls refering to the main doc page

AFAIK we should prefer
https://clang.llvm.org/docs/analyzer/checkers.html to
https://clang-analyzer.llvm.org/{available_checks,alpha_checks}.html

This patch will ensure that the doc urls produced by tablegen for the
ClangSA, will use the new url. Nothing else will be changed.

Reviewed By: martong, Szelethus, ASDenysPetrov

Differential Revision: https://reviews.llvm.org/D121387
The file was modifiedclang/utils/TableGen/ClangSACheckersEmitter.cpp
The file was modifiedclang/test/Analysis/diagnostics/Inputs/expected-sarif/sarif-multi-diagnostic-test.c.sarif
Commit 798418982630b5e3acdfc7ba398993aef2071f32 by balazs.benics
[analyzer] Remove HasAlphaDocumentation tablegen enum value

D121387 simplified the doc url generation process, so we no longer need
the HasAlphaDocumentation enum entry. This patch removes that.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D121459
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/CheckerBase.td
Commit e01dbabdd18d5e3af5134818dab8c67341cd25d5 by d-pre
[AMDGPU][MC] Corrected error message "image data size does not match dmask and tfe"

Differential Revision: https://reviews.llvm.org/D123929
The file was modifiedllvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
The file was modifiedllvm/test/MC/AMDGPU/gfx10_err_pos.s
The file was modifiedllvm/test/MC/AMDGPU/gfx10_asm_mimg_err.s
The file was modifiedllvm/test/MC/AMDGPU/mimg.s
Commit 8daffd1dfb55c706d8661c65ed05380bcc68ce4b by malhar.jajoo
Fix SLP score for out of order contiguous loads

SLP uses the distance between pointers to optimize
the getShallowScore. However the current code misses
the case where we are trying to vectorize for VF=4, and the distance
between pointers is 2. In that case the returned score
reflects the case of contiguous loads, when it's not actually
contiguous.

The attached unit tests have 5 loads, where the program order
is not the same as the offset order in the GEPs. So, the choice
of which 4 loads to bundle together matters. If we pick the
first 4, then we can vectorize with VF=4. If we pick the
last 4, then we can only vectorize with VF=2.

This patch makes a more conservative choice, to consider
all distances>1 to not be a case of contiguous load, and
give those cases a lower score.

Reviewed By: ABataev

Differential Revision: https://reviews.llvm.org/D123516
The file was addedllvm/test/Transforms/SLPVectorizer/AArch64/tsc-s116.ll
Commit 50af82701c169e3ca2cf31a89fe7927e0ecb9b35 by david.green
[AArch64] Cost all perfect shuffles entries as cost 1

A brief introduction to perfect shuffles - AArch64 NEON has a number of
shuffle operations - dups, zips, exts, movs etc that can in some way
shuffle around the lanes of a vector. Given a shuffle of size 4 with 2
inputs, some shuffle masks can be easily codegen'd to a single
instruction. A <0,0,1,1> mask for example is a zip LHS, LHS. This is
great, but some masks are not so simple, like a <0,0,1,2>. It turns out
we can generate that from zip LHS, <0,2,0,2>, having generated
<0,2,0,2> from uzp LHS, LHS, producing the result in 2 instructions.

It is not obvious from a given mask how to get there though. So we have
a simple program (PerfectShuffle.cpp in the util folder) that can scan
through all combinations of 4-element vectors and generate the perfect
combination of results needed for each shuffle mask (for some definition
of perfect). This is run offline to generate a table that is queried for
generating shuffle instructions. (Because the table could get quite big,
it is limited to 4 element vectors).

In the perfect shuffle tables zip, unz and trn shuffles were being cost
as 2, which is higher than needed and skews the perfect shuffle tables
to create inefficient combinations. This sets them to 1 and regenerates
the tables. The codegen will usually be better and the costs should be
more precise (but it can get less second-order re-use of values from
multiple shuffles, these cases should be fixed up in subsequent patches.

Differential Revision: https://reviews.llvm.org/D123379
The file was modifiedllvm/test/CodeGen/AArch64/neon-wide-splat.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-dup.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-rev.ll
The file was modifiedllvm/test/CodeGen/AArch64/sinksplat.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64PerfectShuffle.h
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-wide-shuffle.ll
The file was modifiedllvm/test/CodeGen/AArch64/build-vector-extract.ll
The file was modifiedllvm/test/CodeGen/AArch64/insert-extend.ll
The file was modifiedllvm/test/CodeGen/AArch64/shuffle-tbl34.ll
The file was modifiedllvm/utils/PerfectShuffle/PerfectShuffle.cpp
The file was modifiedllvm/test/CodeGen/AArch64/shuffles.ll
Commit a65f2730d291e83f4fa39d3cb104b36c86f36e73 by flo
[VPlan] Expand induction step in VPlan pre-header.

This patch moves SCEV expansion of steps used by
VPWidenIntOrFpInductionRecipes to the pre-header using
VPExpandSCEVRecipe. This ensures that those steps are expanded while the
CFG is in a valid state. Previously, SCEV expansion may happen during
vector body code-generation, during which the CFG may be invalid,
causing issues with SCEV expansion.

Depends on D122095.

Reviewed By: Ayal

Differential Revision: https://reviews.llvm.org/D122096
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-printing.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/vplan-sink-scalars-and-merge.ll
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/test/Transforms/LoopVectorize/first-order-recurrence-sink-replicate-region.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/icmp-uniforms.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlan.h
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
Commit 76410040b9f391185c7df48c14519860e1cf75e5 by roi.jacobson1
Revert "[Concepts] Fix overload resolution bug with constrained candidates"

This reverts commit 454d1df9423c95e54c3a2f5cb58d864096032d09.
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/Sema/SemaOverload.cpp
The file was modifiedclang/docs/ReleaseNotes.rst
The file was modifiedclang/lib/Sema/SemaTemplateDeduction.cpp
The file was removedclang/test/CXX/temp/temp.decls/temp.fct/temp.func.order/p6.cpp
Commit cc9495f6791aaaacbff55d7eace43550eb27e3c9 by david.green
[AArch64] Only mark cost 1 perfect shuffles as legal

The perfect shuffle tables encode a cost of either 0 (a nop-copy) or 1
(a single instruction) with a cost encoding of 0 in the upper 2 bits.
All perfect shuffles with any cost are then marked as legal shuffles
though (the maximum encoded cost is 3), which can confuse the DAG
combiner into thinking the shuffles are cheaper than the should be.

Limiting legal shuffles to single instructions seems to do better in
most case, producing less instructions for complex shuffles. There are
some cases that now become tbl, which may be better or worse depending
on whether the instruction is in a loop and the tbl load can be hoisted
out.

Differential Revision: https://reviews.llvm.org/D123377
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/build-vector-extract.ll
The file was modifiedllvm/test/CodeGen/AArch64/neon-reverseshuffle.ll
The file was modifiedllvm/test/CodeGen/AArch64/neon-widen-shuffle.ll
The file was modifiedllvm/test/CodeGen/AArch64/shuffles.ll
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-wide-shuffle.ll
Commit 12f55cac69d8978d1c433756a8b2114bf9ed1e1b by uday
[MLIR][GPU] Add canonicalizer for gpu.memcpy

Fold away gpu.memcpy op when only uses of dest are
the memcpy op in question, its allocation and deallocation
ops.

Reviewed By: bondhugula

Differential Revision: https://reviews.llvm.org/D121279
The file was modifiedmlir/test/Dialect/GPU/canonicalize.mlir
The file was modifiedmlir/lib/Dialect/GPU/IR/GPUDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/GPU/GPUOps.td
Commit 944b25aee393ceb31d847fb4d3b98695852eecc9 by jhuber6
[OpenMP] Make Xopenmp-target args compile-only to silence warnings

Summary:
Previously we needed the `Xopenmp-target=` option during the linking
phase so the old offloading driver knew which items to extract and link
for the device. Now that the new driver has become the default this is
no longer necessary and will cause a warning to be emitted for the
unused argument. This should be silenced to avoid noise.
The file was modifiedclang/include/clang/Driver/Options.td
Commit 0f8b8d79af8bf97a414986cdebfa728ce5018f80 by jhuber6
[OpenMP][Docs] Remove old 14.0 release information

Summary:
This patch removes the OpenMP sections in the release notes. These will
be filled once the release is close and implementations are finalized.
The file was modifiedclang/docs/ReleaseNotes.rst
Commit bdf0b757d5938a9f774d17e81be226da3229d3e5 by kbobyrev
[clangd] IncludeCleaner: Add filtering mechanism

This introduces filtering out inclusions based on the resolved path. This
mechanism will be important for disabling warnings for headers that we can not
diagnose correctly yet.

Reviewed By: sammccall

Differential Revision: https://reviews.llvm.org/D123488
The file was modifiedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
The file was modifiedclang-tools-extra/clangd/ConfigFragment.h
The file was modifiedclang-tools-extra/clangd/Config.h
The file was modifiedclang-tools-extra/clangd/IncludeCleaner.cpp
The file was modifiedclang-tools-extra/clangd/ConfigCompile.cpp
The file was modifiedclang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
Commit 883571928c3416bb46e0cb63344915fccd9e6192 by a.bataev
Revert "[SLP]Improve reductions analysis and emission, part 1."

This reverts commit 0e1f4d4d3cb08ff84df5adc4f5e41d0a2cebc53d to fix
a crash reported in PR54976
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/blending-shuffle.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35628_1.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR39774.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose.ll
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/matched-shuffled-entries.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/blending-shuffle-inseltpoison.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR40310.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reorder_repeated_ops.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction_loads.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/gather-root.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/horizontal-list.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/vectorize-reorder-reuse.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/slp-umax-rdx-matcher-crash.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/reduction_unrolled.ll
The file was modifiedllvm/test/Transforms/PhaseOrdering/X86/vector-reductions-logical.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/PR35628_2.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/revectorized_rdx_crash.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/AArch64/transpose-inseltpoison.ll
Commit 7adfa31bc65e44ce65ee47ebe27e61695b34805a by a.bataev
[SLP][NFC]Add a test for reducing same values, NFC.
The file was addedllvm/test/Transforms/SLPVectorizer/X86/reduction-same-vals.ll
Commit 73dc996428aeed7e5005b4bc80a112f7d5c45a9b by david.green
[AArch64] Add lane moves to PerfectShuffle tables

This teaches the perfect shuffle tables about lane inserts, that can
help reduce the cost of many entries. Many of the shuffle masks are
one-away from being correct, and a simple lane move can be a lot simpler
than trying to use ext/zip/etc. Because they are not exactly like the
other masks handled in the perfect shuffle tables, they require special
casing to generate them, with a special InsOp Operator.

The lane to insert into is encoded as the RHSID, and the move from is
grabbed from the original mask. This helps reduce the maximum perfect
shuffle entry cost to 3, with many more shuffles being generatable in a
single instruction.

Differential Revision: https://reviews.llvm.org/D123386
The file was modifiedllvm/lib/Target/AArch64/AArch64PerfectShuffle.h
The file was modifiedllvm/test/CodeGen/AArch64/shuffle-tbl34.ll
The file was modifiedllvm/test/CodeGen/AArch64/shuffles.ll
The file was modifiedllvm/test/CodeGen/AArch64/neon-wide-splat.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-rev.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/utils/PerfectShuffle/PerfectShuffle.cpp
The file was modifiedllvm/test/CodeGen/AArch64/insert-extend.ll
The file was modifiedllvm/test/CodeGen/AArch64/neon-bitwise-instructions.ll
The file was modifiedllvm/test/CodeGen/AArch64/arm64-dup.ll
Commit 218b5c83940d469424564ba6f1ec488c4970a5e5 by david.spickett
[clang][AArch64] Remove BTI after setjmp from release notes

This is now going into 14.0.2 as
571c7d8f6dae1a8797ae3271c0c09fc648b1940b so will not be
new in clang-15.
The file was modifiedclang/docs/ReleaseNotes.rst
Commit 2512a875ccac158bc9b654b09e3347db167e33df by daltenty
[clang] Adding Platform/Architecture Specific Resource Header Installation Targets

The goal of this patch is to improve distribution build's flexibility to include only applicable header files.

Currently, the clang-resource-headers target contains nearly all the files in clang/lib/Headers. Most of these files are platform specific (e.g. immintrin.h is x86 specific). A distribution build will have to either include all the headers for all the platforms, or not include any headers. For example, if a distribution build for powerpc includes the clang-resource-headers target, it will include all the x86 specific headers, even-though the x86 specific headers cannot be used.

This patch breaks up the clang-resource-headers list to a core list and platform specific lists. With the patch, a distribution build can now include the ppc-resource-headers to include the headers applicable to the powerpc platform.

Specifically, one can now have

cmake ... LLVM_DISTRIBUTION_COMPONENTS="clang;ppc-resource-headers" ... ../llvm
ninja install-distribution then installs the powerpc headers.

Similarly, one can do

cmake ... LLVM_DISTRIBUTION_COMPONENTS="clang;x86-resource-headers" ... ../llvm
to include headers applicable to the x86 platform in a distribution installation.

To implement this behaviour, the patch does two things:
* It breaks up the long files header file list to a core list and platform specific lists.
* It adds numerous platform specific installation targets.

Differential Revision: https://reviews.llvm.org/D123498
The file was modifiedclang/lib/Headers/CMakeLists.txt
Commit 42865819b22486963294434fb21b51ab3e6ebfa4 by gbreynoo
[llvm-ar][test] Rename two tests and use correct thin command

Two tests used the term "full archive" rather than "regular", these have
been updated including the test names. They now also use --thin rather
than the deprecated T. This change was made in preparation of D123142.

Differential Revision: https://reviews.llvm.org/D123778
The file was addedllvm/test/tools/llvm-ar/regular-to-thin-archive.test
The file was modifiedllvm/test/tools/llvm-ar/flatten-thin-archive.test
The file was removedllvm/test/tools/llvm-ar/full-to-thin-archive.test
The file was removedllvm/test/tools/llvm-ar/thin-to-full-archive.test
The file was addedllvm/test/tools/llvm-ar/thin-to-regular-archive.test
Commit 82f3ed99045de9a2f06981621a485c5a47546270 by balazs.benics
[analyzer] Expose Taint.h to plugins

Reviewed By: NoQ, xazax.hun, steakhal

Differential Revision: https://reviews.llvm.org/D123155
The file was modifiedclang/docs/tools/clang-formatted-files.txt
The file was modifiedclang/lib/StaticAnalyzer/Checkers/Taint.cpp
The file was removedclang/lib/StaticAnalyzer/Checkers/Taint.h
The file was modifiedclang/lib/StaticAnalyzer/Checkers/VLASizeChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/TaintTesterChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DivZeroChecker.cpp
The file was addedclang/include/clang/StaticAnalyzer/Checkers/Taint.h
The file was modifiedclang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp
Commit 4aa5dc15f0869f8a5fb6fe760c517d2d5d4c710e by paulsson
[SystemZ] Handle SystemZ specific inline assembly address operands.

Handle ZQ, ZR, ZS and ZT inline assembly operand constraints.

Review: Ulrich Weigand

Differential Revision: https://reviews.llvm.org/D110267
The file was modifiedclang/lib/Basic/Targets/SystemZ.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.h
The file was modifiedclang/lib/Basic/Targets/SystemZ.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/SystemZ/inline-asm-addr.ll
The file was modifiedllvm/include/llvm/IR/InlineAsm.h
The file was modifiedclang/test/CodeGen/SystemZ/systemz-inline-asm-03.c
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
Commit 64c929ec0937ba7f66368a645835dacd7be29a99 by kstoimenov
[ASan] Fixed a reporting bug in (load|store)N functions which would print unknown-crash instead of the proper error message when a the data access is unaligned.

Reviewed By: kda, eugenis

Differential Revision: https://reviews.llvm.org/D123643
The file was modifiedcompiler-rt/lib/asan/asan_rtl.cpp
The file was addedcompiler-rt/test/asan/TestCases/load_and_store_n.cpp
Commit ee6bd28f233f330b34d0a83453eeaf56b0cc87ee by npopov
[PPCGCodeGeneration] Avoid pointer element type access

Pass through the ArrayTy instead.
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp
Commit 4026b718b8d37f1ec8b71e1175541104de8bdacc by flo
[VPlan] Remove unused SCEV forward declaration (NFC).
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanTransforms.h
Commit cc03414125d234da80e9b445909568b065c7f2a6 by david.green
[PerfectShuffle] Remove unused variables from D123386. NFC
The file was modifiedllvm/utils/PerfectShuffle/PerfectShuffle.cpp
Commit 880014b59343c8e8e5dc55f6324ce08fd37bd43c by npopov
[PPCGCodeGeneration] Avoid another pointer element type access

Use an API that returns both the address and the element type,
and use that for the load type.
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp
Commit dbe6d85b8b245bd913e6f38425dc5e37cd610bfa by npopov
[PPCGCodeGeneration] Look for function instead of function pointer type

What this code is actually interested in are references to functions.
Use of a function pointer type is being used as an imprecise proxy
for that.
The file was modifiedpolly/lib/CodeGen/PPCGCodeGeneration.cpp
Commit 084ad1ebeee2af9f7a9b464a346a7ca51d6f83dc by d.makogon
[Test] Add more tests showing duplicate PHIs generated by RS4GC (NFC)

This adds more tests with derived pointers.
The file was modifiedllvm/test/Transforms/RewriteStatepointsForGC/base-pointers-14.ll
Commit f2d955a8a420c6866dfc9e882c8aabf33775a3fc by npopov
[OCaml] Fix pass builder test

The LTO API has been removed.
The file was modifiedllvm/test/Bindings/OCaml/passmgr_builder.ml
Commit 5f7c38549869e15f898482a398fd4fb3ea44c6fe by spatel
[InstCombine] add tests for freeze of partial undef vector constants; NFC
The file was modifiedllvm/test/Transforms/InstCombine/freeze.ll
The file was modifiedllvm/test/Transforms/InstCombine/select.ll
Commit f9735be7e2bc8ad79072cf009f15f387976cdfdb by joker.eph
Apply clang-tidy fixes for performance-unnecessary-value-param in ControlFlowInterfaces.cpp (NFC)
The file was modifiedmlir/lib/Interfaces/ControlFlowInterfaces.cpp
Commit 2d6335421fb04d0c7470ae2a49f1c94c21c272ed by joker.eph
Apply clang-tidy fixes for llvm-qualified-auto in OpenMPToLLVMIRTranslation.cpp (NFC)
The file was modifiedmlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
Commit 1aa3a54921a1e6bb43ff14c072b9129aa78d6988 by kadircet
[clangd] Dont include version string in update tasks

This increases cardinality of span latency metrics. Currently this was
being shown to the user via file status updates as `Running Update (x)` after
this change we'll only display `Running Update`. This also affects logs in case
of a crash, but contents and version number for inputs are printed separately in
that case already.

Differential Revision: https://reviews.llvm.org/D124013
The file was modifiedclang-tools-extra/clangd/TUScheduler.cpp
Commit 83892d76f460402b45729e10b2219563b01d71b4 by joker.eph
Print custom assembly on pass failure by default

The printer is now resilient to invalid IR and will already automatically
fallback to the generic form on invalid IR. Using the generic printer on
pass failure was a conservative option before the printer was made
failsafe.

Reviewed By: lattner, rriddle, jpienaar, bondhugula

Differential Revision: https://reviews.llvm.org/D123915
The file was addedmlir/test/Pass/invalid-ir-print-after-failure.mlir
The file was modifiedmlir/test/Pass/ir-printing.mlir
The file was modifiedmlir/lib/Pass/IRPrinting.cpp
The file was modifiedmlir/test/lib/Pass/TestPassManager.cpp
Commit f6b2ddbf381dda5f201f48a5211fb0d053640225 by thakis
[compiler-rt] Use ld64 flag -lto_library instead of DYLD_LIBRARY_PATH

Makes

bin/llvm-lit \
  projects/compiler-rt/test/profile/Profile-arm64/instrprof-darwin-dead-strip.c

pass on my machine.

Without this change, ld64 complains that the bitcode was generated by LLVM 15
while the reader is 13.1 -- the version of Xcode on my machine. Looks like the
DYLD_LIBRARY_PATH technique isn't working.

-lto_library was added back in ld64-136, which was in Xcode 4.6, which was
released over 10 years ago. So relying on it should be safe by now.

Differential Revision: https://reviews.llvm.org/D124018
The file was modifiedcompiler-rt/test/lit.common.cfg.py
The file was modifiedcompiler-rt/test/profile/lit.cfg.py
The file was modifiedcompiler-rt/test/safestack/lit.cfg.py
Commit 06cafd045e7e3730c50edf60eb9a15c3cf700926 by i
[Go] Remove PopulateLTOPassManager binding after D123882
The file was modifiedllvm/bindings/go/llvm/transforms_pmbuilder.go
Commit 3de29ad20955eb8ed68e831795bf55bfe9fbe58b by andrew.litteken
[IRSim] Ignore debug instructions when creating canonical numbering

When constructing canonical relationships between two regions, the first instruction of a basic block from the first region is used to find the corresponding basic block from the second region. However, debug instructions are not included in similarity matching, and therefore do not have a canonical numbering. This patch makes sure to ignore the debug instructions when finding the first instruction in a basic block.

Reviewer: paquette

Differential Revision: https://reviews.llvm.org/D123903
The file was modifiedllvm/lib/Analysis/IRSimilarityIdentifier.cpp
The file was addedllvm/test/Analysis/IRSimilarityIdentifier/debug-inst-starts-block.ll
Commit 800f26386cd9054ceed68e481612908f635b9718 by Yaxun.Liu
[CUDA][HIP] Fix delete operator for -fopenmp

When new operator is called in OpenMP parallel region,
delete operator is resolved and checked. Due to similar
issue fixed by https://reviews.llvm.org/D121765,
when resolving delete operator, the caller was not
determined correctly, which results in error as
shown in https://godbolt.org/z/jKhd8qKos.

This patch fixes the issue in a similar way as
https://reviews.llvm.org/D121765

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D123976
The file was modifiedclang/test/SemaCUDA/openmp-parallel.cu
The file was modifiedclang/lib/Sema/SemaExprCXX.cpp
Commit 8d4b5e083392df73c3a4c84228865326086e352d by vporpodas
[NFC][SLP] Improved description of getShallowScore() and getScoreAtLevelRec()

Differential Revision: https://reviews.llvm.org/D124027
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
Commit ab99a414ef95cc70d7ff2571735775d185626362 by kstoimenov
[ASan] Removed checks if the tested functions were emitted.

Reviewed By: eugenis

Differential Revision: https://reviews.llvm.org/D124030
The file was modifiedcompiler-rt/test/asan/TestCases/load_and_store_n.cpp
Commit a9aa14e0cbb26ada60e28099ba6cafca4e990ba0 by spatel
[InstCombine] add tests for shift-of-add with constants; NFC
The file was modifiedllvm/test/Transforms/InstCombine/shift-add.ll
Commit 8a9c70fc01e6c900f060f3c23d96ee444be33a9a by spatel
[InstCombine] C0 shift (X add nuw C) --> (C0 shift C) shift X

With 'nuw' we can convert the increment of the shift amount
into a pre-shift (constant fold) of the shifted constant:
https://alive2.llvm.org/ce/z/FkTyR2

Fixes issue #41976
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modifiedllvm/test/Transforms/InstCombine/shift-add.ll
Commit 0f8c626723d2bbd547e78dcab5ab260dfbc437e1 by paulsson
[BuildLibCalls] Introduce getOrInsertLibFunc() for use when building libcalls.

A new set of overloaded functions named getOrInsertLibFunc() are now supposed
to be used instead of getOrInsertFunction() when building a libcall from
within an LLVM optimizer(). The idea is that this new function also makes
sure that any mandatory argument attributes are added to the function
prototype (after calling getOrInsertFunction()).

inferLibFuncAttributes() is renamed to inferNonMandatoryLibFuncAttrs() as it
only adds attributes that are not necessary for correctness but merely
helping with later optimizations.

Generally, the front end is responsible for building a correct function
prototype with the needed argument attributes. If the middle end however is
the one creating the call, e.g. when replacing one libcall with another, it
then must take this responsibility.

This continues the work of properly handling argument extension if required
by the target ABI when building a lib call. getOrInsertLibFunc() now does
this for all libcalls currently built by any LLVM optimizer. It is expected
that when in the future a new optimization builds a new libcall with an
integer argument it is to be added to getOrInsertLibFunc() with the proper
handling. Note that not all targets have it in their ABI to sign/zero extend
integer arguments to the full register width, but this will be done
selectively as determined by getExtAttrForI32Param().

Review: Eli Friedman, Nikita Popov, Dávid Bolvanský

Differential Revision: https://reviews.llvm.org/D123198
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was addedllvm/test/Transforms/InstCombine/SystemZ/libcall-arg-exts.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/BuildLibCalls.h
The file was modifiedllvm/test/Transforms/InferFunctionAttrs/annotate.ll
The file was modifiedllvm/test/Transforms/InstCombine/double-float-shrink-1.ll
The file was modifiedllvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
The file was modifiedllvm/lib/Transforms/Utils/BuildLibCalls.cpp
The file was modifiedllvm/include/llvm/IR/Module.h
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
Commit 25c218be36d73bb3e6ddd3f3b441b508ab5ff66f by silvasean
[MLIR] Add function to create BFloat16 array attribute

This patch adds a new function `mlirDenseElementsAttrBFloat16Get()`,
which accepts the shaped type, the number of BFloat16 values, and a
pointer to an array of BFloat16 values, each of which is a `uint16_t`
value.

Reviewed By: stellaraccident

Differential Revision: https://reviews.llvm.org/D123981
The file was modifiedmlir/include/mlir-c/BuiltinAttributes.h
The file was modifiedmlir/test/CAPI/ir.c
The file was modifiedmlir/lib/CAPI/IR/BuiltinAttributes.cpp
Commit e37726beb22a8e3865e1f6fcdbb5cd4262786903 by dpetrov
[analyzer] Implemented RangeSet::Factory::castTo function to perform promotions, truncations and conversions.

Summary: Handle casts for ranges working similarly to APSIntType::apply function but for the whole range set. Support promotions, truncations and conversions.
Example:
promotion: char [0, 42] -> short [0, 42] -> int [0, 42] -> llong [0, 42]
truncation: llong [4295033088, 4295033130] -> int [65792, 65834] -> short [256, 298] -> char [0, 42]
conversion: char [-42, 42] -> uint [0, 42]U[4294967254, 4294967295] -> short[-42, 42]

Differential Revision: https://reviews.llvm.org/D103094
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h
The file was modifiedclang/unittests/StaticAnalyzer/RangeSetTest.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/RangedConstraintManager.h
Commit 0eb403ad1b0c4d052ed93b58892c6432f78e0e7d by zinenko
[mlir][transform] Introduce transform.sequence op

Sequence is an important transform combination primitive that just indicates
transform ops being applied in a row. The simplest version requires fails
immediately if any transformation in the sequence fails. Introducing this
operation allows one to start placing transform IR within other IR.

Depends On D123135

Reviewed By: Mogball, rriddle

Differential Revision: https://reviews.llvm.org/D123664
The file was addedmlir/lib/Dialect/Transform/IR/TransformOps.cpp
The file was addedmlir/test/Dialect/Transform/ops-invalid.mlir
The file was addedmlir/test/Dialect/Transform/ops.mlir
The file was modifiedmlir/include/mlir/Dialect/Transform/IR/TransformDialect.td
The file was modifiedmlir/lib/Dialect/Transform/IR/CMakeLists.txt
The file was modifiedmlir/test/Dialect/Transform/test-interpreter.mlir
The file was modifiedmlir/test/lib/Dialect/Transform/TestTransformDialectExtension.cpp
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformOps.h
The file was modifiedmlir/lib/Dialect/Transform/IR/TransformInterfaces.cpp
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/include/mlir/Dialect/Transform/IR/TransformInterfaces.h
The file was modifiedmlir/include/mlir/Dialect/Transform/IR/CMakeLists.txt
The file was addedmlir/include/mlir/Dialect/Transform/IR/TransformOps.td
The file was modifiedmlir/test/lib/Dialect/Transform/TestTransformDialectInterpreter.cpp
The file was modifiedmlir/lib/Dialect/Transform/IR/TransformDialect.cpp
Commit ddc2eb0ada99cab81b6fae5f0cca999643a4b9f7 by Krzysztof.Drewniak
[mlir] Adds getUpperBound() to LoopLikeInterface.

getUpperBound is analogous to getLowerBound(), except for the upper
bound, and is used in range analysis.

Reviewed By: Mogball

Differential Revision: https://reviews.llvm.org/D124020
The file was modifiedmlir/include/mlir/Dialect/Affine/IR/AffineOps.td
The file was modifiedmlir/lib/Dialect/Affine/IR/AffineOps.cpp
The file was modifiedmlir/lib/Dialect/SCF/SCF.cpp
The file was modifiedmlir/include/mlir/Dialect/SCF/SCFOps.td
The file was modifiedmlir/include/mlir/Interfaces/LoopLikeInterface.td
Commit c57f03415f9668f942802ff7108410d57c2b10da by apl
[clang][Sema] Add flag to LookupName to force C/ObjC codepath

Motivation: The intent here is for use in Swift.
When building a clang module for swift consumption, swift adds an
extension block to the module for name lookup purposes. Swift calls
this a SwiftLookupTable. One purpose that this serves is to handle
conflicting names between ObjC classes and ObjC protocols. They exist in
different namespaces in ObjC programs, but in Swift they would exist in
the same namespace. Swift handles this by appending a suffix to a
protocol name if it shares a name with a class. For example, if you have
an ObjC class named "Foo" and a protocol with the same name, the
protocol would be renamed to "FooProtocol" when imported into swift.

When constructing the previously mentioned SwiftLookupTable, we use
Sema::LookupName to look up name conflicts for the previous problem.
By this time, the Parser has long finished its job so the call to
LookupName gets nullptr for its Scope (TUScope will be nullptr
by this point). The C/ObjC path does not have this problem because it
only uses the Scope in specific scenarios. The C++ codepath uses the
Scope quite extensively and will fail early on if the Scope it gets is
null. In our very specific case of looking up ObjC classes with a
specific name, we want to force sema::LookupName to take the C/ObjC
codepath even if C++ or ObjC++ is enabled.
The file was modifiedclang/lib/Sema/SemaLookup.cpp
The file was modifiedclang/unittests/Sema/CMakeLists.txt
The file was modifiedclang/include/clang/Sema/Sema.h
The file was addedclang/unittests/Sema/SemaLookupTest.cpp
Commit b5e962a5101f04890c73d1adae3674901afeb080 by llvmgnsyncbot
[gn build] Port c57f03415f96
The file was modifiedllvm/utils/gn/secondary/clang/unittests/Sema/BUILD.gn
Commit 489894f3631c0a4ed3cad6bf766707d962169247 by atmndp
[Libomptarget][remote] Fix compile-time error

This fixes a compile-time error recently introduced within the remote
offloading plugin. This patch also removes some extra linker flags that are unnecessary, and adds an explicit abseil linker flag without which we occasionally get problems.

Differential Revision: https://reviews.llvm.org/D119984
The file was modifiedopenmp/libomptarget/plugins/remote/server/CMakeLists.txt
The file was modifiedopenmp/libomptarget/plugins/remote/server/Server.cpp
The file was modifiedopenmp/libomptarget/plugins/remote/src/CMakeLists.txt
Commit eb2131bdbad3f74be2fcf236b4d6921612af47a9 by yitzhakm
[clang][dataflow] Do not crash on missing `Value` for struct-typed variable init.

Remove constraint that an initializing expression of struct type must have an
associated `Value`. This invariant is not and will not be guaranteed by the
framework, because of potentially uninitialized fields.

Differential Revision: https://reviews.llvm.org/D123961
The file was modifiedclang/lib/Analysis/FlowSensitive/Transfer.cpp
The file was modifiedclang/unittests/Analysis/FlowSensitive/TransferTest.cpp