Changes

Summary

  1. [Debug-Info][NFC] move emitDwarfUnitLength to MCStreamer class (details)
  2. [mlir][Inliner] Don't optimize callees in async mode if there is only one to optimize (details)
  3. [lld-macho] Use full input file name in invalid relocation error message (details)
  4. [lld-macho] Fix semantics & add tests for ARM64 GOT/TLV relocs (details)
  5. [lld-macho] Check for arch compatibility when loading ObjFiles and TBDs (details)
  6. [lld-macho] Better deduplication of personality pointers (details)
  7. Revert "Add more historic DWARF vendor extensions" (details)
  8. [XCOFF] add C_FILE symbol at index 0 of symbol table. (details)
  9. [AArch64][GlobalISel][PostSelectOpt] Constrain reg operands after mutating instructions. (details)
  10. [HIP] Fix managed variable linkage (details)
  11. [ASan] Introduce a way set different ways of emitting module destructors. (details)
  12. patch (details)
  13. [Docs] Mention clone depth feature of git in LLVM getting started (details)
  14. [libc][NFC] Merge llvmlibc and llvmlibm targets in to a single target. (details)
  15. Revert "patch" it wass my mistake inusing git (details)
  16. Reduce the number of attributes attached to each function (details)
  17. [ThinLTO, NewPM] Run OptimizerLastEPCallbacks from buildThinLTOPreLinkDefaultPipeline (details)
  18. [asan] Increase CHECK limit in __sanitizer_annotate_contiguous_container (details)
  19. [Test][AArch64] Test SADDO/SSUBO narrowing legalization (details)
  20. [LegalizeIntegerTypes] Use GetExpandedInteger instead of SplitInteger in ExpandIntRes_XMULO. (details)
  21. Add REQUIRES aarch64 to test incompatible-arch.s since it fails if that target is not built. (details)
  22. [libc++] [docs] [C++2b] Update status page with papers adopted in February 2021 virtual meeting. (details)
  23. Revert "[InstrProfiling] Use nobits as __llvm_prf_cnts section type in ELF" (details)
  24. [ARM] Expand the range of allowed post-incs in load/store optimizer (details)
  25. [LLD] [COFF] Allow invoking lib.exe mode via -lib in addition to /lib (details)
  26. [libcxx] [test] Don't pass INCLUDE to clang via -isystem (details)
  27. [OpenCL] Add declarations with enum/typedef args (details)
  28. [OpenCL] Add ndrange builtin functions to TableGen (details)
  29. [AArch64] Use CMTST for != 0 vector compares (vnot (CMEQz A)). (details)
  30. [JITLink] Fix comments about JITLink's generic link algorithm. (details)
  31. [JITLink] Add assertions, fix a comment. (details)
  32. [docs][JITLink] Add a JITLink design and API document. (details)
  33. [docs][JITLink] Sphinx does not like '::' in monotype. Try using a (details)
  34. Update REQUIRES line in 4 tests that attempt to use arm64 which should be aarch64 not arm. (details)
  35. [mlir][linalg] Fix Linalg roundtrip test. (details)
  36. Recommit "[LV] Allow tryToCreateWidenRecipe to return a VPValue, use for blends." (details)
  37. [docs][JITLink] More attempted fixes for formatting issues in the JITLink doc. (details)
  38. [docs][JITLink] Try explicit literal blocks for monospace list elements. (details)
  39. [docs][JITLink] Return to `` for inline literals. (details)
  40. [docs][JITLink] Make ``ObjectLinkingLayer`` not a paragraph start. (details)
  41. [DAG] Add basic mul-with-overflow constant folding support (details)
  42. [clangd] Fix a race (details)
  43. [dexter] Force dexter tests to use the host triple (details)
  44. [docs][JITLink] More experiments to try to understand sphinx error. (details)
  45. [docs][JITLink] Yet more experiments to try to understand sphinx error. (details)
  46. [docs][JITLink] Remove the JITLink doc for now. (details)
  47. [Utils] collectBitParts - add truncate() handling (details)
  48. [asan] Avoid putting globals in a comdat section when targetting elf. (details)
  49. [ValueTracking] ComputeKnownBits - minimum leading/trailing zero bits in LSHR/SHL (PR44526) (details)
  50. [lldb] Add asserts that prevent construction of cycles in the decl origin tracking (details)
  51. [OpenCL] Allow taking address of functions as an extension. (details)
Commit be5d92e37e4fe0b7ba2f5658fa828c1c39988374 by czhengsz
[Debug-Info][NFC] move emitDwarfUnitLength to MCStreamer class

We may need to do some customization for DWARF unit length in DWARF
section headers for some targets for some code generation path.

For example, for XCOFF in assembly path, AIX assembler does not require
the debug section containing its debug unit length in the header.

Move emitDwarfUnitLength to MCStreamer class so that we can do
customization in different Streamers

Reviewed By: ikudrin

Differential Revision: https://reviews.llvm.org/D95932
The file was modifiedllvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
The file was modifiedllvm/lib/MC/MCStreamer.cpp
The file was modifiedllvm/unittests/CodeGen/AsmPrinterDwarfTest.cpp
The file was modifiedllvm/include/llvm/MC/MCStreamer.h
The file was modifiedllvm/include/llvm/CodeGen/AsmPrinter.h
Commit 59f0e4627a5e8789c9ab997cd13f96600848fea8 by riddleriver
[mlir][Inliner] Don't optimize callees in async mode if there is only one to optimize

This avoids unnecessary async overhead in situations that won't benefit from it.
The file was modifiedmlir/lib/Transforms/Inliner.cpp
Commit e5d780e049c275b628461c043fa5953ecd4f16e0 by jezng
[lld-macho] Use full input file name in invalid relocation error message

Just something I noticed while debugging arm relocations...

Reviewed By: #lld-macho, thakis

Differential Revision: https://reviews.llvm.org/D97078
The file was modifiedlld/test/MachO/invalid/invalid-relocation-pcrel.yaml
The file was modifiedlld/MachO/InputFiles.cpp
Commit 5e851733c5b603bec962bb4c5cf9d5cc93d88175 by jezng
[lld-macho] Fix semantics & add tests for ARM64 GOT/TLV relocs

I've adjusted the RelocAttrBits to better fit the semantics of
the relocations. In particular:

1. *_UNSIGNED relocations are no longer marked with the `TLV` bit, even
   though they can occur within TLV sections. Instead the `TLV` bit is
   reserved for relocations that can reference thread-local symbols, and
   *_UNSIGNED relocations have their own `UNSIGNED` bit. The previous
   implementation caused TLV and regular UNSIGNED semantics to be
   conflated, resulting in rebase opcodes being incorrectly emitted for TLV
   relocations.

2. I've added a new `POINTER` bit to denote non-relaxable GOT
   relocations. This distinction isn't important on x86 -- the GOT
   relocations there are either relaxable or non-relaxable loads -- but
   arm64 has `GOT_LOAD_PAGE21` which loads the page that the referent
   symbol is in (regardless of whether the symbol ends up in the GOT). This
   relocation must reference a GOT symbol (so must have the `GOT` bit set)
   but isn't itself relaxable (so must not have the `LOAD` bit). The
   `POINTER` bit is used for relocations that *must* reference a GOT
   slot.

3. A similar situation occurs for TLV relocations.

4. ld64 supports both a pcrel and an absolute version of
   ARM64_RELOC_POINTER_TO_GOT. But the semantics of the absolute version
   are pretty weird -- it results in the value of the GOT slot being
   written, rather than the address. (That means a reference to a
   dynamically-bound slot will result in zeroes being written.) The
   programs I've tried linking don't use this form of the relocation, so
   I've dropped our partial support for it by removing the relevant
   RelocAttrBits.

Reviewed By: alexshap

Differential Revision: https://reviews.llvm.org/D97031
The file was addedlld/test/MachO/arm64-reloc-tlv-load.s
The file was modifiedlld/MachO/Arch/ARM64.cpp
The file was modifiedlld/MachO/Target.cpp
The file was addedlld/test/MachO/arm64-reloc-pointer-to-got.s
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/MachO/Arch/X86_64.cpp
The file was modifiedlld/MachO/Target.h
The file was modifiedlld/MachO/Writer.cpp
The file was addedlld/test/MachO/arm64-reloc-got-load.s
The file was modifiedlld/MachO/InputSection.cpp
Commit 4752cdc9a20abb5fbb2a255011417b8a77e4c31e by jezng
[lld-macho] Check for arch compatibility when loading ObjFiles and TBDs

The silent failures had confused me a few times.

I haven't added a similar check for platform yet as we don't yet have logic to
infer the platform automatically, and so adding that check would require
updating dozens of test files.

Reviewed By: #lld-macho, thakis, alexshap

Differential Revision: https://reviews.llvm.org/D97209
The file was addedlld/test/MachO/invalid/Inputs/libincompatible.tbd
The file was modifiedlld/MachO/InputFiles.cpp
The file was modifiedlld/test/MachO/header.s
The file was addedlld/test/MachO/invalid/incompatible-arch-tapi.s
The file was modifiedlld/test/MachO/Inputs/MacOSX.sdk/usr/lib/libc++.tbd
The file was addedlld/test/MachO/invalid/incompatible-arch.s
Commit 4a5e111aea7ac78190211a2549f8d0d53ee2f01d by jezng
[lld-macho] Better deduplication of personality pointers

{D95809} introduced a mechanism for synthetic symbol creation of personality
pointers. When multiple section relocations referred to the same personality
pointer, it would deduplicate them. However, it neglected to consider that we
could have symbol relocations that also refer to the same personality pointer.
This diff fixes it.

In practice, this mix of relocations arises when there is a statically-linked
personality routine that is referenced from multiple object files. Within the
same object file, it will be referred to via section relocations, but
(obviously) other object files will refer to it via symbol relocations. Failing
to deduplicate these references resulted in us going over the
3-personality-pointer limit when linking some larger applications.

Fixes llvm.org/PR48389.

Reviewed By: #lld-macho, thakis, alexshap

Differential Revision: https://reviews.llvm.org/D97245
The file was modifiedlld/test/MachO/compact-unwind.s
The file was modifiedlld/MachO/UnwindInfoSection.cpp
Commit f14a14dd2564703db02f80c00db8ae492b594f77 by thakis
Revert "Add more historic DWARF vendor extensions"

This reverts commit c4a91444689455a35db1e7f50bcd876a3eb86126.
Breaks check-llvm everywhere, see https://reviews.llvm.org/D97242#2583716
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.h
The file was modifiedllvm/include/llvm/BinaryFormat/Dwarf.def
Commit 71a39862475e1d192d41d335452267590103acfc by czhengsz
[XCOFF] add C_FILE symbol at index 0 of symbol table.

This is for XCOFF DWARF support.

Seems when DWARF debug is enable, symbol 0 has special usage
for AIX binder. At least, symbol 0 can not be the .text
section. Otherwise, we get some binding time error.

Add correct C_FILE symbol at index 0 here to make AIX binder
work.

Reviewed By: hubert.reinterpretcast

Differential Revision: https://reviews.llvm.org/D97117
The file was modifiedllvm/test/CodeGen/PowerPC/aix-overflow-toc.py
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-data.ll
The file was modifiedllvm/lib/MC/XCOFFObjectWriter.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/aix-user-defined-memcpy.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-extern.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-func-dsc-gen.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-symbol-rename.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-reloc.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-llvm-intrinsic.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-explicit-section.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-rodata.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-lcomm.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-extern-weak.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-weak.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-data-sections.ll
Commit eb55203e009ec98351f2be6e5655b7178b604920 by Amara Emerson
[AArch64][GlobalISel][PostSelectOpt] Constrain reg operands after mutating instructions.

The non-flag setting variants of instructions may have different regclass
requirements. If so, we need to constrain them.

Differential Revision: https://reviews.llvm.org/D97343
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64PostSelectOptimize.cpp
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/postselectopt-constrain-new-regop.mir
Commit a3ce7f5cd2ae236bec7752e343f4b63ddda7ebe7 by Yaxun.Liu
[HIP] Fix managed variable linkage

Currently managed variables are emitted as undefined symbols, which
causes difficulty for diagnosing undefined symbols for non-managed
variables.

This patch transforms managed variables in device compilation so that
they can be emitted as normal variables.

Reviewed by: Artem Belevich

Differential Revision: https://reviews.llvm.org/D96195
The file was modifiedclang/lib/CodeGen/CGCUDANV.cpp
The file was modifiedclang/lib/CodeGen/CodeGenModule.cpp
The file was modifiedllvm/lib/IR/ReplaceConstant.cpp
The file was modifiedclang/test/CodeGenCUDA/device-var-linkage.cu
The file was modifiedclang/lib/CodeGen/CGCUDARuntime.h
The file was modifiedclang/test/CodeGenCUDA/managed-var.cu
Commit 7d3ef103b55a28a5ca6983dcef63f24ddc3986f1 by Dan Liew
[ASan] Introduce a way set different ways of emitting module destructors.

Previously there was no way to control how module destructors were emitted
by `ModuleAddressSanitizerPass`. However, we want language frontends (e.g. Clang)
to be able to decide how to emit these destructors (if at all).

This patch introduces the `AsanDtorKind` enum that represents the different ways
destructors can be emitted. There are currently only two valid ways to emit destructors.

* `Global` - Use `llvm.global_dtors`. This was the previous behavior and is the default.
* `None`   - Do not emit module destructors.

The `ModuleAddressSanitizerPass` and the various wrappers around it have been updated
to take the `AsanDtorKind` as an argument.

The `-asan-destructor-kind=` command line argument has been introduced to make this
easy to test from `opt`. If this argument is specified it overrides the value passed
to the `ModuleAddressSanitizerPass` constructor.

Note that `AsanDtorKind` is not `bool` because we will introduce a new way to
emit destructors in a subsequent patch.

Note that `AsanDtorKind` is given its own header file because if it is declared
in `Transforms/Instrumentation/AddressSanitizer.h` it leads to compile error
(Module is ambiguous) when trying to use it in
`clang/Basic/CodeGenOptions.def`.

rdar://71609176

Differential Revision: https://reviews.llvm.org/D96571
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
The file was addedllvm/test/Instrumentation/AddressSanitizer/no_global_dtors.ll
The file was addedllvm/include/llvm/Transforms/Instrumentation/AddressSanitizerOptions.h
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Commit 3f30cd73795d17f071cc03926fea28943c65f05f by shivam98.tkg
patch
The file was addedllvm/test/Examples/BrainF/HelloWorld.ll
The file was addedllvm/test/Examples/BrainF/HelloWorld.test
Commit 9a9d56eb3e69219f6bafc02c396fb6584b54114f by shivam98.tkg
[Docs] Mention clone depth feature of git in LLVM getting started

The current size of the llvm-project repository exceeds 1 GB. A shallow clone can save a lot of space and time. Some developers might not aware of this feature.

Reviewed By: awarzynski

Differential Revision: https://reviews.llvm.org/D97118
The file was modifiedllvm/docs/GettingStarted.rst
Commit 8d4ac5337f196967fa7266a7f65d6b827911416a by sivachandra
[libc][NFC] Merge llvmlibc and llvmlibm targets in to a single target.

The single target is called llvmlibc. We can add back smaller libm and
other targets in future if required.
The file was modifiedlibc/lib/CMakeLists.txt
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/CMakeLists.txt
The file was modifiedlibc/test/src/CMakeLists.txt
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
Commit 0f279c7a5c34eaae797c325c18614def21eba921 by shivam98.tkg
Revert "patch" it wass my mistake inusing git

This reverts commit 3f30cd73795d17f071cc03926fea28943c65f05f.
The file was removedllvm/test/Examples/BrainF/HelloWorld.ll
The file was removedllvm/test/Examples/BrainF/HelloWorld.test
Commit 053dc95839b3b8a36db46f8c419e36e632e989cd by Dávid Bolvanský
Reduce the number of attributes attached to each function

Patch takes advantage of the implicit default behavior to reduce the number of attributes, which in turns reduces compilation time.

Reviewed By: serge-sans-paille

Differential Revision: https://reviews.llvm.org/D97116
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was modifiedclang/test/CodeGenCXX/dllexport.cpp
The file was modifiedclang/test/CodeGen/aarch64-neon-scalar-x-indexed-elem.c
The file was modifiedclang/test/CodeGen/aarch64-neon-ldst-one.c
The file was modifiedclang/test/CodeGen/aarch64-poly64.c
The file was modifiedclang/test/CodeGen/aarch64-poly128.c
The file was modifiedclang/test/CodeGenCXX/dllexport-ctor-closure.cpp
Commit 8560c2d4268c32fb57a99993ffeb99b3745e0999 by Vitaly Buka
[ThinLTO, NewPM] Run OptimizerLastEPCallbacks from buildThinLTOPreLinkDefaultPipeline

-O1 and above do dont call real optimizer pipeline in ThinLTO PreLink.
Also clang can't add PostLink OptimizerLastEPCallbacks for in-process ThinLTO.
This results in missing sanitizer passes with ThinLTO.

Simple working solution is just call OptimizerLastEPCallbacks
at the end of buildThinLTOPreLinkDefaultPipeline.

Differential Revision: https://reviews.llvm.org/D96320
The file was modifiedclang/test/Driver/tsan.c
The file was modifiedclang/test/Driver/dfsan.c
The file was modifiedclang/test/Driver/asan.c
The file was modifiedclang/test/Driver/msan.c
The file was modifiedllvm/lib/Passes/PassBuilder.cpp
The file was modifiedclang/test/Driver/sancov.c
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
Commit bc897bad66170e7db845373695b0a09c554bbd4b by Vitaly Buka
[asan] Increase CHECK limit in __sanitizer_annotate_contiguous_container

Asan allocator already support up to (1 << 40) bytes allocations.
The file was modifiedcompiler-rt/lib/asan/asan_poisoning.cpp
Commit 2ddd25fd0d6faf3d2faaab68bcd29d4f0ab36dfb by code
[Test][AArch64] Test SADDO/SSUBO narrowing legalization

Reviewed By: aemerson

Differential Revision: https://reviews.llvm.org/D96675
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-saddo.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalize-ssubo.mir
Commit cb6fc4b0a35402a946e17b101ecd5cd0edd8c602 by craig.topper
[LegalizeIntegerTypes] Use GetExpandedInteger instead of SplitInteger in ExpandIntRes_XMULO.

We know the input is going to be expanded as well, so we should
just ask for the already expanded operands. Otherwise we create
nodes that are just going to need to be legalized.
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
Commit 91e31ebbbe0c5781d1c0d5b3470c2cb8932faf0b by douglas.yung
Add REQUIRES aarch64 to test incompatible-arch.s since it fails if that target is not built.

This should fix the PS4 linux buildbot failure: http://lab.llvm.org:8011/#/builders/139/builds/63
The file was modifiedlld/test/MachO/invalid/incompatible-arch.s
Commit 77bd454da34e9cfba6cb007bdf25fc422b947641 by marek.kurdej
[libc++] [docs] [C++2b] Update status page with papers adopted in February 2021 virtual meeting.
The file was modifiedlibcxx/docs/Cxx2bStatusPaperStatus.csv
Commit 11a53f47fb3448c747e18519f3799c919ec65aa1 by phosek
Revert "[InstrProfiling] Use nobits as __llvm_prf_cnts section type in ELF"

This reverts commit 6b286d93f7ec8518c685a302269e44b06a0a24f3 because
in some cases when the optimizer evaluates the global initializer,
__llvm_prf_cnts may not be entirely zero initialized.
The file was modifiedllvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was removedllvm/test/Instrumentation/InstrProfiling/X86/nobits.ll
Commit 03892a27d6b89df92def3239338cafbbfa541dbd by david.green
[ARM] Expand the range of allowed post-incs in load/store optimizer

Currently the load/store optimizer will only fold in increments of the
same size as the load/store. This patch expands that to any legal
immediate for the post-inc instruction.

This is a recommit of 3b34b06fc5908b with correctness fixes and extra
tests.

Differential Revision: https://reviews.llvm.org/D95885
The file was modifiedllvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp
The file was modifiedllvm/test/CodeGen/ARM/store-prepostinc.mir
The file was modifiedllvm/test/CodeGen/Thumb2/store-prepostinc.mir
The file was modifiedllvm/test/CodeGen/Thumb2/mve-float32regloops.ll
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
Commit 075539ddf6525f5dac31d9b5506cd58c44108633 by martin
[LLD] [COFF] Allow invoking lib.exe mode via -lib in addition to /lib

Remove a stray -lib argument in guardcf-lto.ll; llvm-lib doesn't
support generating import libs from a def file unlike lib.exe.
Previously this worked because the -lib argument was ignored
(printing only a warning).

Differential Revision: https://reviews.llvm.org/D96699
The file was modifiedlld/test/COFF/driver.test
The file was modifiedlld/COFF/Driver.cpp
The file was modifiedlld/test/COFF/guardcf-lto.ll
Commit 90232b2ecd72422fbaad5ea53679f27f59249d95 by martin
[libcxx] [test] Don't pass INCLUDE to clang via -isystem

Passing the MSVC include dirs via -isystem makes them included before
clang's own include resource dir (<prefix>/lib/clang/<version>/include).
This causes includes of stddef.h to bypass clang's stddef.h which
defines max_align_t, which libc++ needs defined.

This was added in 4372f06d0fcaba1a6913e2f37be064e06a7b5b5b when the
initial windows testing support was added, and has been brought along
since. It's unclear if this was needed back then - now it no longer is
needed at least, and since libc++ started depending on max_align_t, this
became an issue.

Differential Revision: https://reviews.llvm.org/D97167
The file was modifiedlibcxx/utils/libcxx/test/config.py
Commit 85eb12eefdf6a95afc49bc66df41738d19702977 by sven.vanhaastregt
[OpenCL] Add declarations with enum/typedef args

Add the remaining missing builtin function declarations that have enum
or typedef argument or return types.

Differential Revision: https://reviews.llvm.org/D96860
The file was modifiedclang/test/SemaOpenCL/fdeclare-opencl-builtins.cl
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
Commit 0344aea6ea379d945d1de1f5c258414dc61ccacd by sven.vanhaastregt
[OpenCL] Add ndrange builtin functions to TableGen

Also ensure all kernel enqueue functions have CL 2.0 as minimum
version.

Differential Revision: https://reviews.llvm.org/D97060
The file was modifiedclang/lib/Sema/OpenCLBuiltins.td
The file was modifiedclang/test/SemaOpenCL/fdeclare-opencl-builtins.cl
Commit 5c74c6be3c291c27b78918aefe4017ea59b4ede8 by flo
[AArch64] Use CMTST for != 0 vector compares (vnot (CMEQz A)).

(CMTST A, A) will only set elements to 0 if the element is 0 in A. Use
it for != 0 compares, which currently use (vnot (CMEQz A)). This saves a
mvn instruction.

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D97303
The file was modifiedllvm/test/CodeGen/AArch64/vec_umulo.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.td
The file was modifiedllvm/test/CodeGen/AArch64/neon-compare-instructions.ll
Commit d637235ceed7517287c8b4a724ef58a4681b8ed3 by Lang Hames
[JITLink] Fix comments about JITLink's generic link algorithm.

These comments had gotten out of date with the code.
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.h
Commit 8380d07e398e5f7d6edd877d293a2e28db058d8c by Lang Hames
[JITLink] Add assertions, fix a comment.

The new assertions check that Addressables removed when removing
external or absolute symbols are not referenced by another symbol.

A comment on post-fixup passes is updated: vmaddrs have all been
set up by the time the pre-fixup passes are run, post-fixup passes
run after fixups have been applied to content.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
Commit ab4648504b259d30cfa0bf12af35246c19017028 by Lang Hames
[docs][JITLink] Add a JITLink design and API document.
The file was addedllvm/docs/JITLink.rst
The file was modifiedllvm/docs/Reference.rst
The file was modifiedllvm/docs/UserGuides.rst
Commit a5e15c770646b05150ca9ca5456ac0a00cf1be5d by Lang Hames
[docs][JITLink] Sphinx does not like '::' in monotype. Try using a
cpp domain expr instead.
The file was modifiedllvm/docs/JITLink.rst
Commit 691c3d59484f6d7f03c68db3b9c5b00c30fe8420 by douglas.yung
Update REQUIRES line in 4 tests that attempt to use arm64 which should be aarch64 not arm.
The file was modifiedlld/test/MachO/arm64-reloc-got-load.s
The file was modifiedlld/test/MachO/header.s
The file was modifiedlld/test/MachO/arm64-reloc-tlv-load.s
The file was modifiedlld/test/MachO/arm64-reloc-pointer-to-got.s
Commit 945b76d42838498740e2aed77a4a8f0168fbe00b by pifon
[mlir][linalg] Fix Linalg roundtrip test.

The test did not check whether the operations can be parsed again after
printing them once.

Differential Revision: https://reviews.llvm.org/D97368
The file was modifiedmlir/test/Dialect/Linalg/roundtrip.mlir
The file was modifiedmlir/lib/Dialect/Linalg/IR/LinalgOps.cpp
Commit 6240f436dd24f6734344c732d41e487662141174 by flo
Recommit "[LV] Allow tryToCreateWidenRecipe to return a VPValue, use for blends."

This reverts the revert commit 437f0bbcd509d0ed71b91ec1f86f48c2f4aae980.

It adds a new toVPRecipeResult, which forces VPRecipeOrVPValueTy to be
constructed with a VPRecipeBase *. This should address ambiguous
constructor issues for recipe sub-types that also inherit from VPValue.
The file was modifiedllvm/lib/Transforms/Vectorize/VPRecipeBuilder.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/Transforms/LoopVectorize/single-value-blend-phis.ll
Commit d91cfcebbde502c01922b10f1ce39e4196e95223 by Lang Hames
[docs][JITLink] More attempted fixes for formatting issues in the JITLink doc.

Try using the literal domain for `ObjectLinkingLayer::Plugin` and literal
blocks for multi-line method names.
The file was modifiedllvm/docs/JITLink.rst
Commit 731a2bcaf7469e8411cc07b48d36c8f4040d4455 by Lang Hames
[docs][JITLink] Try explicit literal blocks for monospace list elements.
The file was modifiedllvm/docs/JITLink.rst
Commit e2db0d2fa69a7cadf0d47feb71702d19c9548d17 by Lang Hames
[docs][JITLink] Return to `` for inline literals.

Also awkwardly reformat text to test whether the error is occurring
on the line with the '::', or the previous one.
The file was modifiedllvm/docs/JITLink.rst
Commit a4f9c0f562f9356dada313fb189992318c13ca50 by Lang Hames
[docs][JITLink] Make ``ObjectLinkingLayer`` not a paragraph start.

More experiments as I try to placate sphinx.
The file was modifiedllvm/docs/JITLink.rst
Commit 8082bfe7e58d89f6f065fab101db3481516afdbe by llvm-dev
[DAG] Add basic mul-with-overflow constant folding support

As noticed on D97160
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/test/CodeGen/X86/xmulo.ll
Commit c94ecf3f81ca42a98b3b279a7b210b67715f1c41 by kadircet
[clangd] Fix a race

Differential Revision: https://reviews.llvm.org/D97366
The file was modifiedclang-tools-extra/clangd/unittests/ClangdLSPServerTests.cpp
Commit 52bc1c1bd5397ef6ff37214a0186a47aa3348b72 by orlando.hyams
[dexter] Force dexter tests to use the host triple

If the default target and host triple don't match then print the following
message when the lit test runs:

    Forcing dexter tests to use host triple {HOST_TRIPLE}.

If we can't target the host arch then, when lit runs, we mark
the dexter test directories as UNSUPPORTED and print the message:

    Host triple {HOST_TRIPLE} not supported. Skipping dexter tests in
    the debuginfo-tests project.

Reviewed By: rnk

Differential Revision: https://reviews.llvm.org/D96494
The file was modifieddebuginfo-tests/dexter/feature_tests/lit.local.cfg
The file was modifieddebuginfo-tests/lit.site.cfg.py.in
The file was addeddebuginfo-tests/dexter-tests/lit.local.cfg
The file was modifieddebuginfo-tests/lit.cfg.py
Commit 3fbe630e03c2da2d2ffaac9ea476d249412883cc by Lang Hames
[docs][JITLink] More experiments to try to understand sphinx error.
The file was modifiedllvm/docs/JITLink.rst
Commit 038a09120b4e71faaa5f99457c951a1c7ddeceda by Lang Hames
[docs][JITLink] Yet more experiments to try to understand sphinx error.
The file was modifiedllvm/docs/JITLink.rst
Commit 912bc4980e969da1a849c16f1f5ab0c73414d8f2 by Lang Hames
[docs][JITLink] Remove the JITLink doc for now.

I'll reinstate and continue investigation tomorrow.
The file was removedllvm/docs/JITLink.rst
The file was modifiedllvm/docs/UserGuides.rst
Commit b94c215592bdba915455895b2041398dfb2ac44a by llvm-dev
[Utils] collectBitParts - add truncate() handling
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/test/Transforms/InstCombine/bswap.ll
Commit 27830bc2b1b876b1948bcd8ae7ee62819be69758 by pierre.gousseau
[asan] Avoid putting globals in a comdat section when targetting elf.

Putting globals in a comdat for dead-stripping changes the semantic and
can potentially cause false negative odr violations at link time.
If odr indicators are used, we keep the comdat sections, as link time
odr violations will be dectected for the odr indicator symbols.

This fixes PR 47925
The file was addedllvm/test/Instrumentation/AddressSanitizer/global_with_comdat.ll
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/instrument-section-invalid-c-ident.ll
The file was modifiedllvm/test/Instrumentation/AddressSanitizer/global_metadata.ll
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Commit d65ddca83ff85c7345fe9a0f5a15750f01e38420 by llvm-dev
[ValueTracking] ComputeKnownBits - minimum leading/trailing zero bits in LSHR/SHL (PR44526)

Followup to D72573 - as detailed in https://blog.regehr.org/archives/1709 we don't make use of the known leading/trailing zeros for shifted values in cases where we don't know the shift amount value.

Stop ValueTracking returning zero for poison shift patterns and use the KnownBits shift helpers directly.

Extend KnownBits::shl to combine all possible shifted combinations if both min/max shift amount values are in range.

Differential Revision: https://reviews.llvm.org/D90479
The file was modifiedllvm/lib/Support/KnownBits.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
The file was modifiedllvm/test/Transforms/InstSimplify/icmp-constant.ll
Commit 2105912ee0b831d5141146b7700c1934c4185bd6 by Raphael Isemann
[lldb] Add asserts that prevent construction of cycles in the decl origin tracking

LLDB tracks where any imported `clang::Decl` originally came from via a simple
map from 'imported decl' to 'original decl'. That information is used to later
complete parts of the Decl when more information is requested about a certain
Decl (e.g., via the ExternalASTSource interface from Clang).

When finding the 'original decl' for a given decl, the ASTImporterDelegate
essentially just recursively follows the previously mentioned map from
'imported' to 'original decl' until it can find any further 'original decl'. The
final found decl is then the one that will be imported. The recursion is
necessary as in LLDB we don't just import decls from one ASTContext to another,
but also from one ASTContext to another via a (potentially temporary)
ASTContext. For example, the expression parser creates a temporary ASTContext
for parsing the current expression.

The problem with the recursion is however that if we somehow get a cycle into
our mapping, then the ASTImporterDelegate will just infinite recurse. As the
infinite recursion usually happens after the cycle was already created in a code
path such as completing a type, the crash backtraces we get for these bugs are
not very useful. However having the backtrace where the faulty map entry is
created usually makes the code trivial to fix (as there should be some rogue
CopyType call or something similar nearby. See for example D96366).

This patch tries to make these issues easier to track down by putting a bunch of
sanity asserts in the code that fills out the map. All the asserts are just
checking that there is no direct cycle (ASTContext maps to itself) when updating
the origin tracking map.

The assert in the ASTImportDelegate constructor is an `lldbassert` (which also
is getting checked in release builds with disabled asserts) as the code path
there is pretty cold and we can reliably detect a rogue CopyType call from
there.

I also had to update some code in
`ClangASTImporter::ASTImporterDelegate::Imported`. This code already had a
safety check for creating a cycle in the origin tracking map, but it still
constructed an ASTImporter while checking for the cycle (by requesting a
delegate via `GetDelegate` and passing two identical ASTContexts which looks
like a rogue CopyType call to the checks).

Reviewed By: shafik

Differential Revision: https://reviews.llvm.org/D97300
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.cpp
The file was modifiedlldb/source/Plugins/ExpressionParser/Clang/ClangASTImporter.h
Commit abbdb5639c70d167bd66cd62296927330782c3b4 by anastasia.stulova
[OpenCL] Allow taking address of functions as an extension.

When '__cl_clang_function_pointers' extension is enabled
the parser should allow obtaining the function address.

This fixes PR49264!

Differential Revision: https://reviews.llvm.org/D97203
The file was modifiedclang/test/SemaOpenCL/func.cl
The file was modifiedclang/lib/Parse/ParseExpr.cpp