FailedChanges

Changes from Git (git http://labmaster3.local/git/llvm-zorg.git)

Summary

  1. Revert "Remove aarch64-sve-vector-bits-min compile flag from SVE 2 stage bot" (details)
Commit cd75632349bb753e715bf16255b24f7c437f1b04 by david.spickett
Revert "Remove aarch64-sve-vector-bits-min compile flag from SVE 2 stage bot"

This reverts commit 24c07902d058abcee3bcf908676bacaae1f3d448.

The issue is still present but given that it's not sending out any
new notifications I'm going to leave it as is for now.

It actively building is somewhat useful for those working on
the issue to know what the current status is.
The file was modifiedbuildbot/osuosl/master/config/builders.py

Changes from Git (git http://labmaster3.local/git/llvm-project.git)

Summary

  1. [llvm-jitlink] Don't hardcode LLVM version number into the runtime path. (details)
  2. [NFC][InstCombine] Fix typo (details)
  3. [AArch64] Fix -Wparentheses warning with gcc 5.4. NFC (details)
  4. [dfsan][NFC] Fix doc format (details)
  5. Build libSupport with -Werror=global-constructors (NFC) (details)
  6. [Attributor] Introduce getPotentialCopiesOfStoredValue and use it (details)
  7. [Attributor] Delete dead stores (details)
  8. [Local] Do not introduce a new `llvm.trap` before `unreachable` (details)
  9. [CSSPGO] Tweak ICP threshold in top-down inliner (details)
  10. Merge all the llvm-exegesis unit tests into a single binary (details)
  11. [Coroutine] Record the elided coroutines (details)
  12. [Attributor][FIX] Update AMDGPU attributor test (details)
  13. [Attributor] Update check lines for all AMDGPU attributor tests (details)
  14. [OpenMP] Prototype opt-in new GPU device RTL (details)
  15. [InstSimplify] Expose generic interface for replaced operand simplification (details)
  16. [Attributor] Utilize the InstSimplify interface to simplify instructions (details)
  17. [Attributor][FIX] Copy all members in the assignment operator (details)
  18. [OpenMP] Try to simplify all loads in device code (details)
  19. [ORC] Require ExecutorProcessControl when constructing an ExecutionSession. (details)
  20. [gn build] Port 2487db1f2862 (details)
  21. [clang][driver] NFC: Move InputInfo.h from lib to include (details)
  22. [clang][driver] NFC: Expose InputInfo in Job instead of plain filenames (details)
  23. [Debug-Info][llvm-dwarfdump] Don't try to dump location (details)
  24. [docs] Update release notes with all LLVM-C API changes (details)
  25. [LoopFlatten] Use SCEV and Loop APIs to identify increment and trip count (details)
  26. [ARM] Implement isLoad/StoreFromStackSlot for MVE stack stores accesses (details)
  27. [RISCV] Add tests showing missed vector saturating add/sub combines (details)
  28. [AArch64][SME] Add zero instruction (details)
  29. [clang][tooling] Accept Clang invocations with multiple jobs (details)
  30. [clang][tooling] Link clangDriver to ToolingTests (details)
  31. [NFC] Reflow some debug messages. (details)
  32. [RISCV] Add support for vector saturating add/sub operations (details)
  33. [clang-cl] Expose -fmodules and related flags in the driver (PR43391) (details)
  34. Revert "sanitizer_common: split LibIgnore into fast/slow paths" (details)
  35. [clang][tooling] Link LLVMOption to ToolingTests (details)
  36. [SelectionDAG] Support scalable splats in U(ADD|SUB)SAT combines (details)
  37. [mlir] Fix typo s/applyPermuationMap/applyPermutationMap/ (details)
  38. [GlobalISel] Constant fold G_SITOFP and G_UITOFP in CSEMIRBuilder (details)
  39. [flang] Fix thinko in CPU_TIME test (details)
  40. [flang] Fix minor style issues. NFC (details)
  41. [LV] Disable Scalable VFs when tail folding is enabled b/c of low tripcount. (details)
  42. [lldb][AArch64] Add memory tag writing to lldb-server (details)
  43. [X86] Add PR37025 test coverage (details)
  44. [LangRef][NFC] Fix variable name in llvm.maxnum docs (details)
  45. [PowerPC] add more testcases for ld_splat; nfc (details)
  46. [clang/darwin] Pass libclang_rt.profile last on linker command (details)
  47. Convert the error to warning for enabling OMPD in non-Linux platform (details)
  48. [lldb] Wait in TestGuiBasicDebug for the interface to open before quitting the welcome screen (details)
  49. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  50. [clangd] Use function pointer instead of function_ref to avoid GCC 5 bug (details)
  51. [flang][driver] Make `flang` ignore `-Mfree/-Mfixed` (details)
  52. [clangd] Add platform triple (host & target) to version info (details)
  53. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  54. [DebugInfo][InstrRef] Handle llvm.frameaddress intrinsics gracefully (details)
  55. [clang][Driver] Expose driver mode detection logic (details)
  56. Revert "Revert "[clangd] Canonicalize compile flags before applying edits"" (details)
  57. Revert "Revert "[clangd] Adjust compile flags to contain only the requested file as input"" (details)
  58. [DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR (details)
  59. [IVDescriptors] Fix bug in checkOrderedReduction (details)
  60. Handle unused variable when assertions are disabled (details)
  61. [libc++] NFC: Try to trigger Docker image rebuild on CI nodes (details)
  62. [clang-repl] Build and install clang-repl by default. (details)
  63. [DebugInfo][InstrRef] Correctly update DBG_PHIs during instr scheduling (details)
  64. [lldb][AArch64] Add memory tag writing to lldb (details)
  65. [libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr. (details)
  66. Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI." (details)
  67. Revert "Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI."" (details)
  68. Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI." (details)
Commit 25986a21ef6de4222f5bbd8b7f1e2c865b90431d by Lang Hames
[llvm-jitlink] Don't hardcode LLVM version number into the runtime path.

This should unbreak builders that were failing due to different patch numbers.
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
Commit 958dddf7dfd40bc01447b67b1b0a85e0c7c9941d by JunMa
[NFC][InstCombine] Fix typo
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit 2ea9db0c49d7406de650be9e5cd72fc5687c66dd by craig.topper
[AArch64] Fix -Wparentheses warning with gcc 5.4. NFC
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
Commit 531b19a49e66de5c4b35fc89eebc078c13eb9a85 by jianzhouzh
[dfsan][NFC] Fix doc format
The file was modifiedclang/docs/DataFlowSanitizer.rst
Commit 402461beb051b6a5c158f1e36d8e2c2b676e8804 by joker.eph
Build libSupport with -Werror=global-constructors (NFC)

Ensure that libSupport does not carry any static global initializer.
libSupport can be embedded in use cases where we don't want to load all
cl::opt unless we want to parse the command line.
ManagedStatic can be used to enable lazy-initialization of globals.

The -Werror=global-constructors is only added on platform that have
support for the flag and for which std::mutex does not have a global
destructor. This is ensured by having CMake trying to compile a file
with a global mutex before adding the flag to libSupport.
The file was modifiedllvm/lib/Support/CMakeLists.txt
The file was modifiedcompiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh
Commit adddd3dbdae074285f879c5eb7369a92fdd99117 by johannes
[Attributor] Introduce getPotentialCopiesOfStoredValue and use it

This patch introduces `getPotentialCopiesOfStoredValue` which uses
AAPointerInfo to determine all "aliases" or "potential copies" of a
value that is stored into memory. This operation can fail but if it
succeeds it means we can visit all "uses" of a value even if it is
temporarily stored in memory.

There are two users for the function:
  1) `Attributor::checkForAllUses` which will now ignore the value use
     in a store if all "potential copies" can be identified and instead
     be visited. This allows various AAs, including AAPointerInfo
     itself, to look through memory.
  2) `AANoCapture` which uses a custom use tracking through the
     CaptureTracker interface and therefore needs to be thought
     explicitly.

Differential Revision: https://reviews.llvm.org/D106185
The file was modifiedllvm/test/Transforms/Attributor/nodelete.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/OpenMP/spmdization.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/OpenMP/custom_state_machines.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 41bd26dff9869a0d72f95ed750a82136f1bccc81 by johannes
[Attributor] Delete dead stores

D106185 allows us to determine if a store is needed easily. Using that
knowledge we can start to delete dead stores.

In AAIsDead we now track more state as an instruction can be dead (= the
old optimisitc state) or just "removable". A store instruction can be
removable while being very much alive, e.g., if it stores a constant
into an alloca or internal global. If we would pretend it was dead
instead of only removablewe we would ignore it when we determine what
values a load can see, so that is not what we want.

Differential Revision: https://reviews.llvm.org/D106188
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/Attributor/misc_crash.ll
The file was modifiedllvm/test/Transforms/OpenMP/custom_state_machines.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/attrs.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval-2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/pr33641_remove_arg_dbgvalue.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/live_called_from_dead_2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/fp80.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/byval.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/OpenMP/spmdization.ll
The file was modifiedllvm/test/Transforms/Attributor/nodelete.ll
The file was modifiedllvm/test/Transforms/Attributor/wrapper.ll
Commit 25a3130d89f00f53a23f7fc38250d5dc43e29cfb by johannes
[Local] Do not introduce a new `llvm.trap` before `unreachable`

This is the second attempt to remove the `llvm.trap` insertion after
https://reviews.llvm.org/rGe14e7bc4b889dfaffb7180d176a03311df2d4ae6
reverted the first one. It is not clear what the exact issue was back
then and it might already be gone by now, it has been >5 years after
all.

Replaces D106299.

Differential Revision: https://reviews.llvm.org/D106308
The file was modifiedllvm/test/Transforms/SimplifyCFG/invoke.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/CoroSplit.cpp
The file was modifiedllvm/lib/Transforms/IPO/PruneEH.cpp
The file was modifiedllvm/test/Transforms/SimplifyCFG/trapping-load-unreachable.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/trap-debugloc.ll
The file was modifiedllvm/unittests/Transforms/Utils/LocalTest.cpp
The file was modifiedllvm/lib/Transforms/Coroutines/Coroutines.cpp
The file was modifiedllvm/test/CodeGen/Hexagon/swp-art-deps-rec.ll
The file was modifiedllvm/test/CodeGen/Thumb2/ifcvt-rescan-diamonds.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopSimplify.cpp
The file was modifiedllvm/lib/Transforms/Utils/Local.cpp
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/CodeGen/ARM/vmul.ll
The file was modifiedllvm/lib/Transforms/Utils/LoopUtils.cpp
The file was modifiedllvm/lib/CodeGen/WinEHPrepare.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/Local.h
The file was modifiedllvm/lib/Transforms/Utils/InlineFunction.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
Commit f0d41b58da4a102452af47c7b420577bd3d47a03 by wlei
[CSSPGO] Tweak ICP threshold in top-down inliner

This change slightly relaxed the current ICP threshold in top-down inliner, specifically always allow one ICP for it. It shows some perf improvements on SPEC and our internal benchmarks. Also renamed the previous flag. We can also try to turn off PGO ICP in the future.

Reviewed By: wenlei, hoy, wmi

Differential Revision: https://reviews.llvm.org/D106588
The file was modifiedllvm/test/Transforms/SampleProfile/csspgo-inline-icall.ll
The file was modifiedllvm/lib/Transforms/IPO/SampleProfile.cpp
Commit dbefcde6da1b58eb181dcbd8d7913175b2ec8350 by tstellar
Merge all the llvm-exegesis unit tests into a single binary

These tests access private symbols in the backends, so they cannot link
against libLLVM.so and must be statically linked.  Linking these tests
can be slow and with debug builds the resulting binaries use a lot of
disk space.

By merging them into a single test binary means we now only need to
statically link 1 test instead of 6, which helps reduce the build
times and saves disk space.

Reviewed By: courbet

Differential Revision: https://reviews.llvm.org/D106464
The file was modifiedllvm/tools/llvm-exegesis/lib/BenchmarkResult.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/Mips/RegisterAliasingTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/TargetTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/Mips/SnippetGeneratorTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/PowerPC/AnalysisTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/BenchmarkResultTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/CMakeLists.txt
The file was modifiedllvm/unittests/tools/llvm-exegesis/Mips/CMakeLists.txt
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/RegisterAliasingTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/CMakeLists.txt
The file was modifiedllvm/unittests/tools/llvm-exegesis/Mips/BenchmarkResultTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/SchedClassResolutionTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/X86/SnippetGeneratorTest.cpp
The file was modifiedllvm/unittests/tools/llvm-exegesis/PowerPC/CMakeLists.txt
The file was modifiedllvm/unittests/tools/llvm-exegesis/ARM/CMakeLists.txt
The file was modifiedllvm/unittests/tools/llvm-exegesis/PowerPC/SnippetGeneratorTest.cpp
The file was modifiedllvm/tools/llvm-exegesis/lib/BenchmarkResult.h
The file was modifiedllvm/unittests/tools/llvm-exegesis/AArch64/CMakeLists.txt
Commit 0237dbfdd38053cc190f814b6f92e311ae3509c6 by yedeng.yd
[Coroutine] Record the elided coroutines

Reviewed By: lxfind

Differential Revision: https://reviews.llvm.org/D105606
The file was removedllvm/test/Transforms/Coroutines/coro-elide-count.ll
The file was addedllvm/test/Transforms/Coroutines/coro-elide-stat.ll
The file was modifiedllvm/lib/Transforms/Coroutines/CoroElide.cpp
Commit cdb4cfe8b3ce2b0c50d4855ec260eab07fe63611 by johannes
[Attributor][FIX] Update AMDGPU attributor test

The test contains UB and should be improved, for now we update the check
lines pass it.
The file was modifiedllvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa-call.ll
Commit 2aaf038efd8cb5db4e35f8b26a0b28b6ac1bb8b1 by johannes
[Attributor] Update check lines for all AMDGPU attributor tests

I thought there was only one when I pushed
cdb4cfe8b3ce2b0c50d4855ec260eab07fe63611, these should be all (in the
CodeGen/AMDGPU folder).
The file was modifiedllvm/test/CodeGen/AMDGPU/simple-indirect-call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/annotate-kernel-features-hsa.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/direct-indirect-call.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/duplicate-attribute-indirect.ll
Commit 67ab875ff578588574a63d29d52f73fd25128c74 by johannes
[OpenMP] Prototype opt-in new GPU device RTL

The "old" OpenMP GPU device runtime (D14254) has served us well for many
years but modernizing it has caused some pain recently. This patch
introduces an alternative which is mostly written from scratch embracing
OpenMP 5.X, C++, LLVM coding style (where applicable), and conceptual
interfaces. This new runtime is opt-in through a clang flag (D106793).
The new runtime is currently only build for nvptx and has "-new" in its
name.

The design is tailored towards middle-end optimizations rather than
front-end code generation choices, a trend we already started in the old
runtime a while back. In contrast to the old one, state is organized in
a simple manner rather than a "smart" one. While this can induce costs
it helps optimizations. Our expectation is that the majority of codes
can be optimized and a "simple" design is therefore preferable. The new
runtime does also avoid users to pay for things they do not use,
especially wrt. memory. The unlikely case of nested parallelism is
supported but costly to make the more likely case use less resources.

The worksharing and reduction implementation have been taken from the
old runtime and will be rewritten in the future if necessary.

Documentation and debug features are still mostly missing and will be
added over time.

All external symbols start with `__kmpc` for legacy reasons but should
be renamed once we switch over to a single runtime. All internal symbols
are placed in appropriate namespaces (anonymous or `_OMP`) to avoid name
clashes with user symbols.

Differential Revision: https://reviews.llvm.org/D106803
The file was addedopenmp/libomptarget/DeviceRTL/src/Mapping.cpp
The file was addedopenmp/libomptarget/DeviceRTL/include/Configuration.h
The file was addedopenmp/libomptarget/DeviceRTL/include/State.h
The file was addedopenmp/libomptarget/DeviceRTL/src/Parallelism.cpp
The file was addedopenmp/libomptarget/DeviceRTL/include/Debug.h
The file was addedopenmp/libomptarget/DeviceRTL/src/Reduction.cpp
The file was addedopenmp/libomptarget/DeviceRTL/CMakeLists.txt
The file was addedopenmp/libomptarget/DeviceRTL/include/Synchronization.h
The file was addedopenmp/libomptarget/DeviceRTL/include/Types.h
The file was addedopenmp/libomptarget/DeviceRTL/src/Misc.cpp
The file was addedopenmp/libomptarget/DeviceRTL/include/Utils.h
The file was addedopenmp/libomptarget/DeviceRTL/include/generated_microtask_cases.gen
The file was addedopenmp/libomptarget/DeviceRTL/src/State.cpp
The file was addedopenmp/libomptarget/DeviceRTL/include/Interface.h
The file was addedopenmp/libomptarget/DeviceRTL/src/Tasking.cpp
The file was modifiedopenmp/libomptarget/CMakeLists.txt
The file was addedopenmp/libomptarget/DeviceRTL/src/Configuration.cpp
The file was addedopenmp/libomptarget/DeviceRTL/src/Debug.cpp
The file was addedopenmp/libomptarget/DeviceRTL/include/Mapping.h
The file was addedopenmp/libomptarget/DeviceRTL/src/Kernel.cpp
The file was addedopenmp/libomptarget/DeviceRTL/src/Synchronization.cpp
The file was addedopenmp/libomptarget/DeviceRTL/src/Workshare.cpp
The file was addedopenmp/libomptarget/DeviceRTL/src/Utils.cpp
Commit 75636868e2c96cb17fdfd1ed70e284ab19a15160 by johannes
[InstSimplify] Expose generic interface for replaced operand simplification

Users, especially the Attributor, might replace multiple operands at
once. The actual implementation of simplifyWithOpReplaced is able to
handle that just fine, the interface was simply not allowing to replace
more than one operand at a time. This is exposing a more generic
interface without intended changes for existing code.

Differential Revision: https://reviews.llvm.org/D106189
The file was modifiedllvm/include/llvm/Analysis/InstructionSimplify.h
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit d4bfce552110086f198ba46f37acf63df8758921 by johannes
[Attributor] Utilize the InstSimplify interface to simplify instructions

When we simplify at least one operand in the Attributor simplification
we can use the InstSimplify to work on the simplified operands. This
allows us to avoid duplication of the logic.

Depends on D106189

Differential Revision: https://reviews.llvm.org/D106190
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/aggregate-promote.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
The file was modifiedllvm/test/Transforms/Attributor/willreturn.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/chained.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/test/Transforms/Attributor/nonnull.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/internalize.ll
The file was modifiedllvm/test/Transforms/Attributor/depgraph.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-instances.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/liveness.ll
The file was modifiedllvm/test/Transforms/Attributor/dereferenceable-1.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR26044.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/dangling-block-address.ll
The file was modifiedllvm/test/Transforms/Attributor/lvi-after-jumpthreading.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/return-argument.ll
The file was modifiedllvm/test/Transforms/Attributor/range.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/invalidation.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/PR16052.ll
The file was modifiedllvm/test/Transforms/Attributor/potential.ll
Commit c55e18824d2e0711682c67b98653c38f8b0ac463 by johannes
[Attributor][FIX] Copy all members in the assignment operator

Also improve debug output slightly.
The file was modifiedllvm/test/Transforms/Attributor/nodelete.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/2008-02-01-ReturnAttrs.ll
The file was modifiedllvm/test/Transforms/Attributor/internal-noalias.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/value-simplify.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/profile.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/min-legal-vector-width.ll
The file was modifiedllvm/test/Transforms/Attributor/value-simplify-pointer-info.ll
The file was modifiedllvm/test/Transforms/Attributor/IPConstantProp/2009-09-24-byval-ptr.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/alignment.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/basictest.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/control-flow2.ll
The file was modifiedllvm/test/Transforms/Attributor/ArgumentPromotion/X86/attributes.ll
Commit 70b75f62fc617f1fa7e4859571a99137297146c6 by johannes
[OpenMP] Try to simplify all loads in device code

Eliminating loads/stores in the device code is worth the extra effort,
especially for the new device runtime.

At the same time we do not compute AAExecutionDomain for non-device code
anymore, there is no point.

Differential Revision: https://reviews.llvm.org/D106845
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/OpenMPOpt.cpp
Commit 2487db1f286222e2501c2fa8e8244eda13f6afc3 by Lang Hames
[ORC] Require ExecutorProcessControl when constructing an ExecutionSession.

Wrapper function call and dispatch handler helpers are moved to
ExecutionSession, and existing EPC-based tools are re-written to take an
ExecutionSession argument instead.

Requiring an ExecutorProcessControl instance simplifies existing EPC based
utilities (which only need to take an ES now), and should encourage more
utilities to use the EPC interface. It also simplifies process termination,
since the session can automatically call ExecutorProcessControl::disconnect
(previously this had to be done manually, and carefully ordered with the
rest of JIT tear-down to work correctly).
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
The file was modifiedllvm/tools/lli/lli.cpp
The file was removedllvm/unittests/ExecutionEngine/Orc/ExecutorProcessControlTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ExecutorProcessControl.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/EPCEHFrameRegistrar.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/OrcTestCommon.h
The file was modifiedllvm/examples/OrcV2Examples/LLJITWithTargetProcessControl/LLJITWithTargetProcessControl.cpp
The file was modifiedllvm/examples/SpeculativeJIT/SpeculativeJIT.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCExecutorProcessControl.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/LLJIT.h
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter2/KaleidoscopeJIT.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/EPCEHFrameRegistrar.cpp
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/Core.cpp
The file was modifiedllvm/examples/Kaleidoscope/BuildingAJIT/Chapter1/KaleidoscopeJIT.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.h
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CoreAPIsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/LLJIT.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/EPCDynamicLibrarySearchGenerator.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/EPCDebugObjectRegistrar.h
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/EPCDebugObjectRegistrar.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ExecutorProcessControl.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/MachOPlatform.h
The file was addedllvm/unittests/ExecutionEngine/Orc/ExecutionSessionWrapperFunctionCallsTest.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/MachOPlatform.cpp
The file was modifiedllvm/examples/Kaleidoscope/include/KaleidoscopeJIT.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/ObjectLinkingLayerTest.cpp
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RTDyldObjectLinkingLayerTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Core.h
Commit 66640aa5aeaf2d46040f6ae2d8ff5a4a35ecb8dc by llvmgnsyncbot
[gn build] Port 2487db1f2862
The file was modifiedllvm/utils/gn/secondary/llvm/unittests/ExecutionEngine/Orc/BUILD.gn
Commit 60426f33b1d417763ca1954fba5293c959c9623d by Jan Svoboda
[clang][driver] NFC: Move InputInfo.h from lib to include

Moving `InputInfo.h` from `lib/Driver/` into `include/Driver` to be able to expose it in an API consumed from outside of `clangDriver`.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D106787
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/lib/Driver/ToolChains/MSP430.h
The file was modifiedclang/lib/Driver/ToolChains/MinGW.cpp
The file was modifiedclang/lib/Driver/ToolChains/AVR.h
The file was modifiedclang/lib/Driver/ToolChains/BareMetal.cpp
The file was modifiedclang/lib/Driver/ToolChains/AVR.cpp
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.h
The file was modifiedclang/lib/Driver/ToolChains/NaCl.cpp
The file was addedclang/include/clang/Driver/InputInfo.h
The file was modifiedclang/lib/Driver/ToolChains/CommonArgs.cpp
The file was modifiedclang/lib/Driver/ToolChains/Cuda.cpp
The file was modifiedclang/lib/Driver/ToolChains/Hexagon.cpp
The file was modifiedclang/lib/Driver/ToolChains/AMDGPU.cpp
The file was modifiedclang/lib/Driver/ToolChains/Ananas.cpp
The file was removedclang/lib/Driver/InputInfo.h
The file was modifiedclang/lib/Driver/ToolChains/MSP430.cpp
The file was modifiedclang/lib/Driver/Job.cpp
The file was modifiedclang/lib/Driver/ToolChain.cpp
The file was modifiedclang/lib/Driver/ToolChains/CloudABI.cpp
The file was modifiedclang/lib/Driver/ToolChains/Minix.cpp
The file was modifiedclang/lib/Driver/ToolChains/RISCVToolchain.cpp
The file was modifiedclang/lib/Driver/Tool.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
The file was modifiedclang/lib/Driver/ToolChains/HIP.cpp
Commit b76c7c6faf06bb02b7b7b6bba3f6eb8a33edcdca by Jan Svoboda
[clang][driver] NFC: Expose InputInfo in Job instead of plain filenames

This patch exposes `InputInfo` in `Job` instead of plain filenames. This is useful in a follow-up patch that uses this to recognize `-cc1` commands interesting for Clang tooling.

Depends on D106787.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D106788
The file was modifiedclang/unittests/Driver/ToolChainTest.cpp
The file was modifiedclang/lib/Driver/Job.cpp
The file was modifiedclang/include/clang/Driver/Job.h
Commit 14f6cfcf3cab34ec26474dc464a6a35589f582f7 by esme.yi
[Debug-Info][llvm-dwarfdump] Don't try to dump location
list for attributes that don't have the loclist class.

Summary: The overflow error occurs when we try to dump
location list for those attributes that do not have the
loclist class, like DW_AT_count and DW_AT_byte_size.
After re-reviewed the entire list, I sorted those
attributes into two parts, one for dumping location list
and one for dumping the location expression.

Reviewed By: probinson

Differential Revision: https://reviews.llvm.org/D105613
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFAttribute.h
The file was modifiedllvm/lib/DWARFLinker/DWARFLinker.cpp
The file was addedllvm/test/tools/llvm-dwarfdump/X86/formclass3.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDie.cpp
Commit 3c7fd8df3b843b007edac9afe8a3369797724f0f by Lang Hames
[docs] Update release notes with all LLVM-C API changes

Patch by Mats Larsen. Thanks Mats!

Reviewed By: lhames

Differential Revision: https://reviews.llvm.org/D106764
The file was modifiedllvm/docs/ReleaseNotes.rst
Commit 491ac2802805f65c0960ae6685f9599048517a97 by rosie.sumpter
[LoopFlatten] Use SCEV and Loop APIs to identify increment and trip count

Replace pattern-matching with existing SCEV and Loop APIs as a more
robust way of identifying the loop increment and trip count. Also
rename 'Limit' as 'TripCount' to be consistent with terminology.

Differential Revision: https://reviews.llvm.org/D106580
The file was modifiedllvm/lib/Transforms/Scalar/LoopFlatten.cpp
The file was modifiedllvm/test/Transforms/LoopFlatten/loop-flatten-negative.ll
Commit 54c91c0c74ba997d3c0ce86eca2a96bec4699f0e by david.green
[ARM] Implement isLoad/StoreFromStackSlot for MVE stack stores accesses

This implements the isLoadFromStackSlot and isStoreToStackSlot for MVE
MVE_VSTRWU32 and MVE_VLDRWU32 functions. They behave the same as many
other loads/stores, expecting a FI in Op1 and zero offset in Op2. At the
same time this alters VLDR_P0_off and VSTR_P0_off to use the same code
too, as they too should be returning VPR in Op0, take a FI in Op1 and
zero offset in Op2.

Differential Revision: https://reviews.llvm.org/D106797
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-increment.ll
Commit 80e0266577b0536bb6cae0d5be0aa3b572b50ef7 by fraser
[RISCV] Add tests showing missed vector saturating add/sub combines

These will be optimized by upcoming patches. The tests are primarily not
being optimized due to the lack of support for saturating vector
arithmetic in the RISC-V backend.

On top of that, however, a large percentage of the scalable-vector tests
are also lacking support in the DAGCombiner: either in
`ISD::matchBinaryPredicate` or due to checks specifically for
`BUILD_VECTOR` and not `SPLAT_VECTOR`.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106649
The file was addedllvm/test/CodeGen/RISCV/rvv/combine-sats.ll
Commit 2e27c4e1f187446c84220f75e492f16807d21b12 by cullen.rhodes
[AArch64][SME] Add zero instruction

This patch adds the zero instruction for zeroing a list of 64-bit
element ZA tiles. The instruction takes a list of up to eight tiles
ZA0.D-ZA7.D, which must be in order, e.g.

  zero {za0.d,za1.d,za2.d,za3.d,za4.d,za5.d,za6.d,za7.d}
  zero {za1.d,za3.d,za5.d,za7.d}

The assembler also accepts 32-bit, 16-bit and 8-bit element tiles which
are mapped to corresponding 64-bit element tiles in accordance with the
architecturally defined mapping between different element size tiles,
e.g.

  * Zeroing ZA0.B, or the entire array name ZA, is equivalent to zeroing
    all eight 64-bit element tiles ZA0.D to ZA7.D.
  * Zeroing ZA0.S is equivalent to zeroing ZA0.D and ZA4.D.

The preferred disassembly of this instruction uses the shortest list of
tile names that represent the encoded immediate mask, e.g.

  * An immediate which encodes 64-bit element tiles ZA0.D, ZA1.D, ZA4.D and
    ZA5.D is disassembled as {ZA0.S, ZA1.S}.
  * An immediate which encodes 64-bit element tiles ZA0.D, ZA2.D, ZA4.D and
    ZA6.D is disassembled as {ZA0.H}.
  * An all-ones immediate is disassembled as {ZA}.
  * An all-zeros immediate is disassembled as an empty list {}.

This patch adds the MatrixTileList asm operand and related parsing to support
this.

Depends on D105570.

The reference can be found here:
https://developer.arm.com/documentation/ddi0602/2021-06

Reviewed By: david-arm

Differential Revision: https://reviews.llvm.org/D105575
The file was modifiedllvm/lib/Target/AArch64/AArch64SMEInstrInfo.td
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64MCCodeEmitter.cpp
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.h
The file was modifiedllvm/lib/Target/AArch64/SMEInstrFormats.td
The file was modifiedllvm/lib/Target/AArch64/AArch64RegisterInfo.td
The file was modifiedllvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp
The file was addedllvm/test/MC/AArch64/SME/zero-diagnostics.s
The file was modifiedllvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
The file was modifiedllvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was addedllvm/test/MC/AArch64/SME/zero.s
Commit 11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495 by Jan Svoboda
[clang][tooling] Accept Clang invocations with multiple jobs

When `-fno-integrated-as` is passed to the Clang driver (or set by default by a specific toolchain), it will construct an assembler job in addition to the cc1 job. Similarly, the `-fembed-bitcode` driver  flag will create additional cc1 job that reads LLVM IR file.

The Clang tooling library only cares about the job that reads a source file. Instead of relying on the fact that the client injected `-fsyntax-only` to the driver invocation to get a single `-cc1` invocation that reads the source file, this patch filters out such jobs from `Compilation` automatically and ignores the rest.

This fixes a test failure in `ClangScanDeps/headerwithname.cpp` and `ClangScanDeps/headerwithnamefollowedbyinclude.cpp` on AIX reported here: https://reviews.llvm.org/D103461#2841918 and `clang-scan-deps` failures with `-fembed-bitcode`.

Depends on D106788.

Reviewed By: dexonsmith

Differential Revision: https://reviews.llvm.org/D105695
The file was modifiedclang/unittests/Tooling/ToolingTest.cpp
The file was modifiedclang/include/clang/Tooling/Tooling.h
The file was modifiedclang/lib/Tooling/Tooling.cpp
The file was removedclang/test/Tooling/clang-check-offload.cpp
Commit 5bcbb5ec5f07e4ab0ec8f8941bb4a98cab44d169 by Jan Svoboda
[clang][tooling] Link clangDriver to ToolingTests

This fixes a build failure introduced in 11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495.
The file was modifiedclang/unittests/Tooling/CMakeLists.txt
Commit e00d67dc48be26cc9fc4958c3b2d5149eb5ec230 by david.green
[NFC] Reflow some debug messages.
The file was modifiedllvm/lib/CodeGen/DetectDeadLanes.cpp
The file was modifiedllvm/lib/CodeGen/HardwareLoops.cpp
Commit 172487fe4c67dfe97d40f4dfd0992569746ae651 by fraser
[RISCV] Add support for vector saturating add/sub operations

This patch adds support for lowering the saturating vector add/sub
intrinsics to RVV instructions, for both fixed-length and
scalable-vector forms alike.

Note that some of the DAG combines are still not triggering for the
scalable-vector tests. These require a bit more work in the DAGCombiner
itself.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106651
The file was modifiedllvm/test/CodeGen/RISCV/rvv/saddo-sdnode.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.h
The file was addedllvm/test/CodeGen/RISCV/rvv/vsadd-sdnode.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rvv/combine-sats.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vsaddu-sdnode.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsaddu.ll
The file was modifiedllvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssub.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vsadd.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/fixed-vectors-vssubu.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vssub-sdnode.ll
The file was addedllvm/test/CodeGen/RISCV/rvv/vssubu-sdnode.ll
Commit a648f34342740e3fe2ddf040d61909d53b09e323 by hans
[clang-cl] Expose -fmodules and related flags in the driver (PR43391)

I don't know how well this works with clang-cl, but people want to try
it out, and I think we want to make it work, so exposing the flags seems
reasonable.

Differential revision: https://reviews.llvm.org/D106791
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/test/Driver/cl-options.c
Commit 35e76a939cabbaa40aeeb572c3cf4039c3077fdf by dvyukov
Revert "sanitizer_common: split LibIgnore into fast/slow paths"

This reverts commit 1e1f7520279c93a59fa6511028ff40412065985e.

It breaks ignore_noninstrumented_modules=1.
Somehow we did not have any portable tests for this mode before
(only Darwin tests). Add a portable test as well.

Moreover, I think I was too fast uninlining all LibIgnore checks.
For Java, Darwin and OpenMP LibIgnore is always enabled,
so it makes sense to leave it as it was before.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D106855
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_libignore.h
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_libignore.cpp
The file was modifiedcompiler-rt/test/tsan/ignore_lib0.cpp
Commit 0f98e6e87558b34cb00e2a043d471cb71466783a by Jan Svoboda
[clang][tooling] Link LLVMOption to ToolingTests

This fixes a build failure introduced in 11ee699b3c812ebe56ce5d3b14ab7ef16c1e8495.
The file was modifiedclang/unittests/Tooling/CMakeLists.txt
Commit 7b33b849bd337fa68accf6a61e36cb4f0a947af1 by fraser
[SelectionDAG] Support scalable splats in U(ADD|SUB)SAT combines

This patch builds on top of D106575 in which scalable-vector splats were
supported in `ISD::matchBinaryPredicate`. It teaches the DAGCombiner how
to perform a variety of the pre-existing saturating add/sub combines on
scalable-vector types.

Reviewed By: craig.topper

Differential Revision: https://reviews.llvm.org/D106652
The file was modifiedllvm/test/CodeGen/RISCV/rvv/combine-sats.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
Commit 8c63c24dcaf5a5d090e40ce231c5174c15bd187e by benny.kra
[mlir] Fix typo s/applyPermuationMap/applyPermutationMap/
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp
The file was modifiedmlir/include/mlir/IR/AffineMap.h
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
Commit dc4ca0dbbcef5eb957efbd2e08a197b4aae3d909 by jay.foad
[GlobalISel] Constant fold G_SITOFP and G_UITOFP in CSEMIRBuilder

Differential Revision: https://reviews.llvm.org/D104528
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/udiv.i32.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/Utils.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/Utils.h
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.sbfe.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/srem.i32.ll
The file was modifiedllvm/lib/CodeGen/GlobalISel/CSEMIRBuilder.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/sdiv.i32.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/urem.i32.ll
Commit a5b2ec9c26db124dd7e7b576fff70ba94dc07842 by diana.picus
[flang] Fix thinko in CPU_TIME test

We used to test that end > start, but it can well be >= (otherwise the
loop doesn't make sense).
The file was modifiedflang/unittests/RuntimeGTest/Time.cpp
Commit dc721064b43a40ed57454caebd533f89df16da7e by diana.picus
[flang] Fix minor style issues. NFC
The file was modifiedflang/runtime/time-intrinsic.cpp
The file was modifiedflang/unittests/RuntimeGTest/Time.cpp
Commit d7dd12aee399a19e890143604b6993f02232ca24 by sander.desmalen
[LV] Disable Scalable VFs when tail folding is enabled b/c of low tripcount.

The loop vectorizer may decide to use tail folding when the trip-count
is low. When that happens, scalable VFs are no longer a candidate,
since tail folding/predication is not yet supported for scalable vectors.

This can be re-enabled in a future patch.

Reviewed By: kmclaughlin

Differential Revision: https://reviews.llvm.org/D106657
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was addedllvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll
Commit 7d27230de3336b8c79bfdc90f59858f6dad28fa5 by david.spickett
[lldb][AArch64] Add memory tag writing to lldb-server

This is implemented using the QMemTags packet, as specified
by GDB in:
https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#General-Query-Packets

(recall that qMemTags was previously added to read tags)

On receipt of a valid packet lldb-server will:
* align the given address and length to granules
  (most of the time lldb will have already done this
  but the specification doesn't guarantee it)
* Repeat the supplied tags as many times as needed to cover
  the range. (if tags > range we just use as many as needed)
* Call ptrace POKEMTETAGS to write the tags.

The ptrace step will loop just like the tag read does,
until all tags are written or we get an error.
Meaning that if ptrace succeeds it could be a partial write.
So we call it again and if we then get an error, return an error to
lldb.

We are not going to attempt to restore tags after a partial
write followed by an error. This matches the behaviour of the
existing memory writes.

The lldb-server tests have been extended to include read and
write in the same test file. With some updated function names
since "qMemTags" vs "QMemTags" isn't very clear when they're
next to each other.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105180
The file was modifiedlldb/include/lldb/Utility/StringExtractorGDBRemote.h
The file was modifiedlldb/include/lldb/Host/common/NativeProcessProtocol.h
The file was modifiedlldb/source/Utility/StringExtractorGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/Linux/NativeProcessLinux.h
The file was modifiedlldb/test/API/tools/lldb-server/memory-tagging/TestGdbRemoteMemoryTagging.py
The file was modifiedlldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
The file was modifiedlldb/source/Host/common/NativeProcessProtocol.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h
Commit 16ec706cc4b65dce5d6fb7ccf452ef3517a5fc76 by llvm-dev
[X86] Add PR37025 test coverage
The file was addedllvm/test/CodeGen/X86/pr37025.ll
Commit 71b7608df169da51d14684f373255629a84acae9 by fraser
[LangRef][NFC] Fix variable name in llvm.maxnum docs
The file was modifiedllvm/docs/LangRef.rst
Commit 47632352c85e020f5d70257ff1dd2ff190f0253c by czhengsz
[PowerPC] add more testcases for ld_splat; nfc
The file was modifiedllvm/test/CodeGen/PowerPC/load-and-splat.ll
Commit 452095fe2f58528c174ca780265f227439e3e07e by thakis
[clang/darwin] Pass libclang_rt.profile last on linker command

This reverts the functional change of https://reviews.llvm.org/D35385 because
it sounds like this is no longer necessary
(https://bugs.llvm.org/show_bug.cgi?id=51135#c11) and makes clang's behavior
more uniform across platforms.

Differential Revision: https://reviews.llvm.org/D106733
The file was modifiedclang/lib/Driver/ToolChains/Darwin.cpp
The file was modifiedclang/lib/Driver/ToolChains/Darwin.h
The file was modifiedclang/test/Driver/darwin-ld.c
Commit 23eced9ead21c4282cc68c1e93016ad4433a12d6 by Vignesh.Balasubrmanian
Convert the error to warning for enabling OMPD in non-Linux platform

OMPD is enabled by default on Linux machines and disabled on others.
However, if explicitly enabled it throws an error and exit while configuring.

It is mentioned in Bug: https://bugs.llvm.org/show_bug.cgi?id=51121

This patch, instead of throwing error, disables OMPD support with a warning message,
so configuration can continue.

Reviewed By: @protze.joachim
Differential Revision: https://reviews.llvm.org/D106682
The file was modifiedopenmp/runtime/CMakeLists.txt
Commit 43e45f0ec920b45d6073c0aff47597c44948f52c by Raphael Isemann
[lldb] Wait in TestGuiBasicDebug for the interface to open before quitting the welcome screen

Speculative fix for the failing lldb-aarch64-ubuntu bot.
The file was modifiedlldb/test/API/commands/gui/basicdebug/TestGuiBasicDebug.py
Commit 76f3ffb2b285998f02639db8fd42fb0de8a540d0 by chris.jackson
[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR

This patch extends salvaging of debuginfo in the Loop Strength Reduction
(LSR) pass by translating Scalar Evaluations (SCEV) into DIExpressions.
The method is as follows:
- Cache dbg.value intrinsics that are salvageable.
- Obtain a loop Induction Variable (IV) from ScalarExpressionExpander or
  the loop header.
- Translate the IV SCEV into an expression that recovers the current
  loop iteration count. Combine this with the dbg.value's location
  op SCEV to create a DIExpression that salvages the value.

Review by: jmorse

Differential Revision: https://reviews.llvm.org/D105207
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
Commit ec1fb9533305e9bd69294ede7e5e7d9befbb2225 by sam.mccall
[clangd] Use function pointer instead of function_ref to avoid GCC 5 bug

With GCC <6 constructing a function_ref from a free function reference
leads to it referencing a temporary function pointer. If the lifetime of
that temporary is insufficient it can crash.

Fixes https://github.com/clangd/clangd/issues/800
The file was modifiedclang-tools-extra/clangd/GlobalCompilationDatabase.cpp
Commit cad2affb789201f0d7ccb4b5542f652b37c51c3a by andrzej.warzynski
[flang][driver] Make `flang` ignore `-Mfree/-Mfixed`

`-Mfixed` is not supported by the new driver and hence
`flang`, the bash wrapper script, forwards it to the host compiler.
The forwarded options are used by the host compiler when compiling the
unparsed files. As the unparsed source files are always in the free
form, forwarding `-Mfixed` is problematic.

With this patch, `-Mfixed` (and `-Mfree` for consistency) will be
ignored altogether. The user will only see a warning. This is not a
particularly sound approach, but `flang` is only a temporary solution
for us and this workaround is a fair compromise.

Differential Revision: https://reviews.llvm.org/D106428
The file was modifiedflang/tools/f18/flang.in
Commit e2559e5dc62445a92a9a5344db79f78f735e1e61 by sam.mccall
[clangd] Add platform triple (host & target) to version info

Useful in logs to understand issues around some platforms we don't have much
experience with (e.g. m1, mingw)

Differential Revision: https://reviews.llvm.org/D105681
The file was modifiedclang-tools-extra/clangd/tool/ClangdMain.cpp
The file was modifiedclang-tools-extra/clangd/Features.h
The file was modifiedclang-tools-extra/clangd/ClangdLSPServer.cpp
The file was modifiedclang-tools-extra/clangd/Features.cpp
The file was modifiedclang-tools-extra/clangd/index/remote/Client.cpp
Commit 1930c4410d6b48645b7b7c58cf4403a2a0e3836d by chris.jackson
[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR

This reverts commit 76f3ffb2b285998f02639db8fd42fb0de8a540d0 because
of a failure on sanitixer-X86-64-linux-autoconf.
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was removedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
Commit 7dc9d7373186827a92d6ca08ad7192208dfea389 by jeremy.morse
[DebugInfo][InstrRef] Handle llvm.frameaddress intrinsics gracefully

When working out which instruction defines a value, the
instruction-referencing variable location code has a few special cases for
physical registers:
* Arguments are never defined by instructions,
* Constant physical registers always read the same value, are never def'd

This patch adds a third case for the llvm.frameaddress intrinsics: you can
read the framepointer in any block if you so choose, and use it as a
variable location, as shown in the added test.

This rather violates one of the assumptions behind instruction referencing,
that LLVM-ir shouldn't be able to read from an arbitrary register at some
arbitrary point in the program. The solution for now is to just emit a
DBG_PHI that reads the register value: this works, but if we wanted to do
something clever with DBG_PHIs in the future then this would probably get
in the way. As it stands, this patch avoids a crash.

Differential Revision: https://reviews.llvm.org/D106659
The file was addedllvm/test/DebugInfo/X86/instr-ref-framereg-read.ll
The file was modifiedllvm/lib/CodeGen/MachineFunction.cpp
Commit ce90b60bd09da41c52006374a4715425122572ab by kadircet
[clang][Driver] Expose driver mode detection logic

Also use it in other places that performed it on their own.

Differential Revision: https://reviews.llvm.org/D106789
The file was modifiedclang/lib/Driver/Driver.cpp
The file was modifiedclang/lib/Tooling/InterpolatingCompilationDatabase.cpp
The file was modifiedclang/include/clang/Driver/Driver.h
The file was modifiedclang/tools/driver/driver.cpp
Commit ab714ba056c14bce00ab67cc10e34678f9d77b5a by kadircet
Revert "Revert "[clangd] Canonicalize compile flags before applying edits""

Set driver mode before parsing arglist.

Depends on D106789.

Differential Revision: https://reviews.llvm.org/D106794
The file was modifiedclang-tools-extra/clangd/CompileCommands.cpp
The file was modifiedclang-tools-extra/clangd/unittests/BackgroundIndexTests.cpp
The file was modifiedclang-tools-extra/clangd/test/did-change-configuration-params.test
The file was modifiedclang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
Commit 259e365deaa3a6920b30f49e3d03d3508f1d4900 by kadircet
Revert "Revert "[clangd] Adjust compile flags to contain only the requested file as input""

This reverts commit 04e21fbc44c145d5599ef8db9aaf66b159107f33.
The file was modifiedclang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/TestTU.cpp
The file was modifiedclang-tools-extra/clangd/test/did-change-configuration-params.test
The file was modifiedclang-tools-extra/clangd/GlobalCompilationDatabase.cpp
The file was modifiedclang-tools-extra/clangd/CompileCommands.cpp
The file was modifiedclang-tools-extra/clangd/CompileCommands.h
Commit 796b84d26f4d461fb50e7b4e84e15a10eaca88fc by chris.jackson
[DebugInfo][LoopStrengthReduction] SCEV-based salvaging for LSR

This reapplies commit 76f3ffb2b285998f02639db8fd42fb0de8a540d0 that was
reverted due to buildbot failures.

- Update lit tests with REQUIRES condition.
- Abandon salvage attempt if SCEVUnknown::getValue() returns nullptr.

Differential Revision: https://reviews.llvm.org/D105207
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-4.ll
The file was modifiedllvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-0.ll
The file was modifiedllvm/test/Transforms/LoopStrengthReduce/dbg-preserve-2.ll
The file was modifiedllvm/include/llvm/Transforms/Utils/ScalarEvolutionExpander.h
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-3.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-2.ll
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-0.ll
The file was addedllvm/test/Transforms/LoopStrengthReduce/debuginfo-scev-salvage-1.ll
Commit 68ffed12b7e29c498e5b6d563a218f8710c46e61 by anna
[IVDescriptors] Fix bug in checkOrderedReduction

The Exit instruction passed in for checking if it's an ordered reduction need not be
an FPAdd operation. We need to bail out at that point instead of
assuming it is an FPAdd (and hence has two operands). See added testcase.
It crashes without the patch because the Exit instruction is a phi with
exactly one operand.
This latent bug was exposed by 95346ba which added support for
multi-exit loops for vectorization.

Reviewed-By: kmclaughlin
Differential Revision: https://reviews.llvm.org/D106843
The file was addedllvm/test/Transforms/LoopVectorize/fp-reduction-crash.ll
The file was modifiedllvm/lib/Analysis/IVDescriptors.cpp
Commit d9e3449aa82541d289f4843617e23e93800bc278 by tpopp
Handle unused variable when assertions are disabled
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
Commit 496a3815f43d20853a4fad77c7d70414385c3b06 by Louis Dionne
[libc++] NFC: Try to trigger Docker image rebuild on CI nodes
The file was modifiedlibcxx/utils/ci/Dockerfile
Commit da58ca51f0cf4b415bbfc299ac7cef0666243c6c by v.g.vassilev
[clang-repl] Build and install clang-repl by default.

We have the basic infrastructure in place. We can recover from simple errors
(recovering from errors in template instantiations is not yet supported). It
looks like we are in a reasonably functional state for llvm13.

Differential revision: https://reviews.llvm.org/D106813
The file was modifiedclang/tools/clang-repl/CMakeLists.txt
Commit ec9da5172491413f098af7cd5b5bc5d1c8b9f07d by jeremy.morse
[DebugInfo][InstrRef] Correctly update DBG_PHIs during instr scheduling

Avoid several crashes when DBG_INSTR_REF and DBG_PHI instructions are fed
to the instruction scheduler. DBG_INSTR_REFs should be treated like
DBG_LABELs, and just ignored for the purpose of scheduling [0].

DBG_PHIs however behave much more like DBG_VALUEs: they refer to register
operands, and if some register defs get shuffled around during instruction
scheduling, there's a risk that the debug instr will refer to the wrong
value. There's already a facility for updating DBG_VALUEs to reflect this;
add DBG_PHI to the list of instructions that it will update.

[0] Suboptimal, but it's what instr scheduling does right now.

Differential Revision: https://reviews.llvm.org/D106663
The file was modifiedllvm/test/CodeGen/X86/post-ra-sched-with-debug.mir
The file was modifiedllvm/include/llvm/CodeGen/AntiDepBreaker.h
The file was modifiedllvm/lib/CodeGen/ScheduleDAGInstrs.cpp
Commit 5ea091a8174bcce78839156bd044831cb5211d06 by david.spickett
[lldb][AArch64] Add memory tag writing to lldb

This adds memory tag writing to Process and the
GDB remote code. Supporting work for the
"memory tag write" command. (to follow)

Process WriteMemoryTags is similair to ReadMemoryTags.
It will pack the tags then call DoWriteMemoryTags.
That function will send the QMemTags packet to the gdb-remote.

The QMemTags packet follows the GDB specification in:
https://sourceware.org/gdb/current/onlinedocs/gdb/General-Query-Packets.html#General-Query-Packets

Note that lldb-server will be treating partial writes as
complete failures. So lldb doesn't need to handle the partial
write case in any special way.

Reviewed By: omjavaid

Differential Revision: https://reviews.llvm.org/D105181
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
The file was modifiedlldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h
The file was modifiedlldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp
The file was modifiedlldb/include/lldb/Target/Process.h
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h
The file was modifiedlldb/source/Target/Process.cpp
Commit 775caa58fcf9005494acdd132a07c8d7edb534b2 by marek.kurdej+llvm.org
[libc++] [c++2b] [P2166] Prohibit string and string_view construction from nullptr.

* https://wg21.link/P2166

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D106801
The file was modifiedlibcxx/docs/Status/Cxx2bPapers.csv
The file was modifiedlibcxx/include/string_view
The file was addedlibcxx/test/std/strings/basic.string/string.cons/nullptr.compile.pass.cpp
The file was modifiedlibcxx/include/string
The file was addedlibcxx/test/std/strings/string.view/string.view.cons/nullptr.compile.pass.cpp
The file was modifiedlibcxx/test/libcxx/debug/db_string_view.pass.cpp
Commit d7bbb1230a94cb239aa4a8cb896c45571444675d by tpopp
Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI."

This reverts commit 1cfecf4fc4278afb0005923f6dff595cd372da5c.

This commit broke LLVM code generated through XLA by removing a
conditional on Ld->getExtensionType() == ISD::NON_EXTLOAD
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit 70fa9479b2e803c1bab745d89f3c7883fa72b591 by tpopp
Revert "Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI.""

This reverts commit d7bbb1230a94cb239aa4a8cb896c45571444675d.

There were follow up uses of a deleted method and I didn't run the
tests. Undo the revert, so I can do it properly.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit d225de60c933d8feffde917c49a5bbb72530ae28 by tpopp
Revert "[X86][AVX] Add getBROADCAST_LOAD helper function. NFCI."

This reverts commit 1cfecf4fc4278afb0005923f6dff595cd372da5c.

This commit broke LLVM code generated through XLA by removing a
conditional on Ld->getExtensionType() == ISD::NON_EXTLOAD

This is not a perfect revert. The new function is left as other uses of
it exist now.
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp