SuccessChanges

Summary

  1. [OpenMP][Docs] Mark `present` motion modifier as done (details)
  2. [PGO] Include the mem ops into the function hash. (details)
  3. [tsan] Fixup for 1260a155: Move variadic-open.cpp test into Darwin/ directory (details)
  4. [libc] Implements isdigit and isalnum. Adds a utility header to inline (details)
  5. [lldb][NFC][test] Fix comment referring to FileCheck instead of yaml2obj (details)
  6. [MLIR][OpenMP] Fix OpenMPIRBuilder usage after D82470 (details)
  7. [WebAssembly] Fix GCC 5 build. (details)
  8. [NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations (details)
  9. LoopUnroll.cpp - pass std::vector by const reference to needToInsertPhisForLCSSA helper. NFCI. (details)
  10. [lldb][test] Move registers-target-xml-reading target to the correct test location. (details)
  11. [lldb] Add copy ctor/assignment operator to SBCommandInterpreterRunOptions (details)
  12. [AMDGPU] Do not use undef on indirect source (details)
  13. [WebAssembly] Fixed 64-bit indices in br_table (details)
  14. Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z (details)
  15. [InstCombine] update test checks; NFC (details)
  16. [mlir] NFC: Expose `getElementPtrType` and `getSizes` methods of AllocOpLowering. (details)
  17. [LAA] Avoid adding pointers to the checks if they are not needed. (details)
  18. [lldb/Test] Use self.assertIn in TestGdbRemoteTargetXmlPacket (details)
  19. [SCCP] Remove dead switch cases based on range information (details)
  20. [ELF] Add --dependency-file option (details)
  21. [flang] Fix an assert on duplicate initializations (details)
  22. [CMake][Fuchsia] Include additional tools in the toolchain (details)
  23. [CVP] Add tests for min/max/abs intrinsic comparisons (NFC) (details)
  24. [ConstantRange][CVP] Compute min/max/abs intrinsic ranges (details)
  25. [LLD] [Mingw] Don't export symbols from profile generate (details)
  26. [compiler-rt] [profile] fix profile generate for mingw x86_64 (details)
  27. [lldb/Docs] Add lldb-arm-ubuntu to the list of bots (details)
  28. [ConstantRange] Support abs with poison flag (details)
  29. [lldb/Docs] Remove stale bot on GreenDragon and add reproducer one (details)
  30. [SelectionDAG] Fix lowering of vector geps (details)
  31. [ConstantRange][CVP] Make use of abs poison flag (details)
  32. [lld-macho] Support __dso_handle for C++ (details)
  33. [lld-macho] Implement -headerpad (details)
  34. [lld-macho] Make __LINKEDIT sections contiguous (details)
  35. AMDGPU: Put inexpensive ops first in AMDGPUAnnotateUniformValues::visitLoadInst (details)
  36. [lld-macho] Add comment for literal argument (details)
  37. PR46908: Emit undef destroying_delete_t as an aggregate RValue. (details)
  38. [clang-tidy][NFC] Use StringMap for ClangTidyCheckFactories::FacoryMap (details)
  39. [mlir][spirv] Add support for converting memref of vector to SPIR-V (details)
  40. AMDGPU: Fix liveness errors when copying AGPR tuples (details)
  41. [MLIR][NFC] Add SymbolUse::UseRange::empty() (details)
  42. [COFF] Port CallGraphSort to COFF from ELF (details)
  43. [JITLink] Allow JITLinkContext::notifyResolved to return an Error. (details)
  44. [llvm-jitlink] Add -harness option to llvm-jitlink. (details)
  45. [gn build] Port 763671f387f (details)
  46. [clang codegen][AArch64] Use llvm.aarch64.neon.fcvtzs/u where it's necessary (details)
  47. [libc] Add a tool called WrapperGen. (details)
  48. [doc] Describe the header guard style (details)
  49. [AArch64][GlobalISel] Add legalization & selection support for G_INTRINSIC_LRINT. (details)
  50. [LegalizeTypes][SVE] Support widen/split legalization for SPLAT_VECTOR (details)
  51. [debugserver/Apple Silicon] Handoff connections when attaching to translated processes (details)
  52. [profile] Remove dependence on getpagesize from InstrProfilingBuffer.c.o (details)
Commit 3d06fc0049c6bb94e6efd77388453206037f43ad by jdenny.ornl
[OpenMP][Docs] Mark `present` motion modifier as done
The file was modifiedclang/docs/OpenMPSupport.rst
Commit 3d6f53018f845e893ad34f64ff2851a2e5c3ba1d by yamauchi
[PGO] Include the mem ops into the function hash.

To avoid hash collisions when the only difference is in mem ops.
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/loop2_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/landingpad.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-switch-correct_entry.proftext
The file was modifiedcompiler-rt/test/profile/Linux/instrprof-value-merge.c
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/indirect_call.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/indirectbr_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-branch_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-switch-correct.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/PR41279_2.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-switch_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/loop2.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/select1.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/cspgo.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/noreturncall.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/multiple_hash_profile.ll
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-branch.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/fix_entry_count.proftext
The file was modifiedclang/test/CodeGenCXX/Inputs/profile-remap.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/indirectbr.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/branch2.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/branch2_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/select2.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/large_count_remarks.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/remap.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/loop1.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/thinlto_cs.proftext
The file was modifiedclang/test/CodeGen/Inputs/thinlto_expect2.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/diag_no_value_sites.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/switch_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/irreducible.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/suppl-profile.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/switch.proftext
The file was modifiedclang/test/Profile/Inputs/gcc-flag-compatibility_IR.proftext
The file was modifiedclang/test/CodeGenCXX/Inputs/profile-remap_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/branch1_large_count.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/criticaledge.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/irreducible_entry.proftext
The file was modifiedclang/test/CodeGen/Inputs/thinlto_expect1.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/landingpad_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/branch1.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/criticaledge_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-branch-correct.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/loop1_entry.proftext
The file was modifiedclang/test/Profile/Inputs/gcc-flag-compatibility_IR_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/func_entry.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/multiple_hash_profile.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/misexpect-switch.proftext
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/PR41279.proftext
The file was modifiedllvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
The file was modifiedllvm/test/Transforms/PGOProfile/Inputs/memop_size_annotation.proftext
Commit 1e8a9c3e026f4523eb9745d3a3f4c13f934dcbec by Kuba Mracek
[tsan] Fixup for 1260a155: Move variadic-open.cpp test into Darwin/ directory
The file was removedcompiler-rt/test/tsan/variadic-open.cpp
The file was addedcompiler-rt/test/tsan/Darwin/variadic-open.cpp
Commit e263dcc3efeae419b691730da5e37977e1a681f6 by gyurgyikcp
[libc] Implements isdigit and isalnum. Adds a utility header to inline
functions to avoid overhead of function calls.

Reviewed By: sivachandra

Differential Revision: https://reviews.llvm.org/D84893
The file was addedlibc/test/src/ctype/isdigit_test.cpp
The file was modifiedlibc/src/ctype/isalpha.cpp
The file was addedlibc/test/src/ctype/isalnum_test.cpp
The file was modifiedlibc/test/src/ctype/CMakeLists.txt
The file was modifiedlibc/config/linux/api.td
The file was addedlibc/src/ctype/ctype_utils.h
The file was addedlibc/src/ctype/isalnum.h
The file was modifiedlibc/src/ctype/CMakeLists.txt
The file was addedlibc/src/ctype/isdigit.h
The file was modifiedlibc/config/linux/aarch64/entrypoints.txt
The file was modifiedlibc/spec/stdc.td
The file was addedlibc/src/ctype/isdigit.cpp
The file was modifiedlibc/config/linux/x86_64/entrypoints.txt
The file was addedlibc/src/ctype/isalnum.cpp
Commit 09cb6f233d3d18cb17ba00188cbc32a414ec0c82 by rupprecht
[lldb][NFC][test] Fix comment referring to FileCheck instead of yaml2obj
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 4d83aa4771d84940626d86c883193af390812281 by johannes
[MLIR][OpenMP] Fix OpenMPIRBuilder usage after D82470
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
Commit 3632f765dc6a95a903864585056d1caa9185bd00 by craig.topper
[WebAssembly] Fix GCC 5 build.

Hans' speculative fix in b7292f2db02d37c9291afc0613a3fbce0a4ad4e8
didn't work for me. This seems to.
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblySortRegion.cpp
Commit 555cf42f380d86f35e761c3a2179c761356ab152 by Yuanfang Chen
[NewPM][PassInstrument] Add PrintPass callback to StandardInstrumentations

Problem:
Right now, our "Running pass" is not accurate when passes are wrapped in adaptor because adaptor is never skipped and a pass could be skipped. The other problem is that "Running pass" for a adaptor is before any "Running pass" of passes/analyses it depends on. (for example, FunctionToLoopPassAdaptor). So the order of printing is not the actual order.

Solution:
Doing things like PassManager::Debuglogging is very intrusive because we need to specify Debuglogging whenever adaptor is created. (Actually, right now we're not specifying Debuglogging for some sub-PassManagers. Check PassBuilder)

This patch move debug logging for pass as a PassInstrument callback. We could be sure that all running passes are logged and in the correct order.

This could also be used to implement hierarchy pass logging in legacy PM. We could also move logging of pass manager to this if we want.

The test fixes looks messy. It includes changes:
- Remove PassInstrumentationAnalysis
- Remove PassAdaptor
- If a PassAdaptor is for a real pass, the pass is added
- Pass reorder (to the correct order), related to PassAdaptor
- Add missing passes (due to Debuglogging not passed down)

Reviewed By: asbirlea, aeubanks

Differential Revision: https://reviews.llvm.org/D84774
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/test/Transforms/LoopRotate/pr35210.ll
The file was modifiedllvm/test/Transforms/LoopUnroll/revisit.ll
The file was modifiedllvm/include/llvm/IR/PassManager.h
The file was modifiedllvm/include/llvm/IR/PassManagerImpl.h
The file was modifiedllvm/include/llvm/Passes/StandardInstrumentations.h
The file was modifiedllvm/lib/Transforms/Scalar/LoopPassManager.cpp
The file was modifiedllvm/test/Transforms/LoopUnroll/unroll-loop-invalidation.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-samplepgo-defaults.ll
The file was modifiedllvm/test/Other/new-pass-manager.ll
The file was modifiedllvm/test/Other/pass-pipeline-parsing.ll
The file was modifiedllvm/test/Other/loop-pm-invalidation.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedclang/test/CodeGen/thinlto-distributed-newpm.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-samplepgo-defaults.ll
The file was modifiedllvm/lib/Passes/StandardInstrumentations.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-postlink-pgo-defaults.ll
The file was modifiedllvm/lib/IR/PassTimingInfo.cpp
The file was modifiedllvm/test/Other/new-pm-pgo.ll
The file was modifiedllvm/lib/Analysis/CGSCCPassManager.cpp
The file was modifiedllvm/include/llvm/IR/PassInstrumentation.h
The file was modifiedllvm/test/Transforms/SCCP/ipsccp-preserve-analysis.ll
The file was modifiedllvm/test/Other/new-pm-thinlto-prelink-pgo-defaults.ll
The file was modifiedllvm/lib/IR/PassInstrumentation.cpp
Commit 4a161bd8b3c2c31da788072b9641e1dcde62ce08 by llvm-dev
LoopUnroll.cpp - pass std::vector by const reference to needToInsertPhisForLCSSA helper. NFCI.

Avoid an unnecessary pass by value.
The file was modifiedllvm/lib/Transforms/Utils/LoopUnroll.cpp
Commit be198e03ebba264baadfd2ed383b1725633c43ea by rupprecht
[lldb][test] Move registers-target-xml-reading target to the correct test location.

This test was added in D74217 (and the `.categories` file later added in ccf1c30cde6e1e763e7c9cdd48a609a805166699) around the same time I moved the test tree from `lldb/packages/Python/lldbsuite/test` to `lldb/test/API` (D71151). Since this got lost in the move, it isn't running. (I introduced an intentional syntax error, and `ninja check-lldb` passes).

I moved it to the correct location, and now it runs and passes -- locally, at least -- as `ninja check-lldb-api-tools-lldb-server-registers-target-xml-reading`.
The file was removedlldb/packages/Python/lldbsuite/test/tools/lldb-server/registers-target-xml-reading/Makefile
The file was addedlldb/test/API/tools/lldb-server/registers-target-xml-reading/main.cpp
The file was removedlldb/packages/Python/lldbsuite/test/tools/lldb-server/registers-target-xml-reading/main.cpp
The file was addedlldb/test/API/tools/lldb-server/.categories
The file was removedlldb/packages/Python/lldbsuite/test/tools/lldb-server/.categories
The file was addedlldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
The file was removedlldb/packages/Python/lldbsuite/test/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
The file was addedlldb/test/API/tools/lldb-server/registers-target-xml-reading/Makefile
Commit 41909e96824b73162431e84cbba071b1ff4f6341 by Jonas Devlieghere
[lldb] Add copy ctor/assignment operator to SBCommandInterpreterRunOptions
The file was modifiedlldb/source/API/SBCommandInterpreterRunOptions.cpp
The file was modifiedlldb/include/lldb/API/SBCommandInterpreterRunOptions.h
Commit 5b32518f96ca79d3b3c1d60940c3a6764e500c1e by Stanislav.Mekhanoshin
[AMDGPU] Do not use undef on indirect source

We are using undef on the indirect move source subreg and then
using implicit super-reg. This creates a problem in RA when
Greedy decides to split the register. It reassigns the implicit
super-reg but does not bother to change undef source because
it is really does not matter. The fix is to stop lying to RA and
drop undef flag.

This has also hit a problem in SIFoldOperands as it can fold
immediate into an indirect move since there is no undef flag
anymore. That results in multiple test failures, so added the
check for this case.

Differential Revision: https://reviews.llvm.org/D84899
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-extract-vector-elt.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIFoldOperands.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/indirect-addressing-term.ll
The file was modifiedllvm/lib/Target/AMDGPU/SIISelLowering.cpp
Commit ce1eb7af9dc1fb1c4167fa21824bda7dcf92bbce by aardappel
[WebAssembly] Fixed 64-bit indices in br_table

LLVM selection dag assumes "switch" indices are pointer sized, which causes problems for our 32-bit br_table. The new function ensures 32-bit operands don't get unnecessarily extended, and 64-bit operands get truncated.

Note that the changes to the existing test test exactly that: the addition of -NEXT in 2 places ensures no extension is inserted (which the test previously ignored) and that the wrap is present (previously omitted in wasm64 mode).

Differential Revision: https://reviews.llvm.org/D84705
The file was modifiedllvm/test/CodeGen/WebAssembly/switch.ll
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFixBrTableDefaults.cpp
Commit 36a4f1037628683f2a10c0f3a84904f0463432ff by etiotto
Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z

ThinLTO is run using a single thread on Linux on Power. The
compute_thread_count() routine calls getHostNumPhysicalCores which
returns -1 by default, and so `MaxThreadCount is set to 1.

unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
    int MaxThreadCount = UseHyperThreads
          ? computeHostNumHardwareThreads()
          : sys::getHostNumPhysicalCores();
     if (MaxThreadCount <= 0)
        MaxThreadCount = 1;
   …
}
Fix: provide custom implementation of getHostNumPhysicalCores for
Linux on Power and Linux on Z.

Reviewed By: Kai, uweigand

Differential Revision: https://reviews.llvm.org/D84764
The file was modifiedllvm/lib/Support/Host.cpp
The file was modifiedllvm/unittests/Support/Host.cpp
Commit 7551fd5ef8fdc450483b987d6cd44b76b0671ad9 by spatel
[InstCombine] update test checks; NFC
The file was modifiedllvm/test/Transforms/InstCombine/distribute.ll
Commit 6b8c641d8ea2b1a0294f556450941199e06e65a5 by pifon
[mlir] NFC: Expose `getElementPtrType` and `getSizes` methods of AllocOpLowering.

Differential Revision: https://reviews.llvm.org/D84917
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-dynamic-memref-ops.mlir
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-static-memref-ops.mlir
Commit 2062b3707c1ef698deaa9abc571b937fdd077168 by flo
[LAA] Avoid adding pointers to the checks if they are not needed.

Currently we skip alias sets with only reads or a single write and no
reads, but still add the pointers to the list of pointers in RtCheck.

This can lead to cases where we try to access a pointer that does not
exist when grouping checks.  In most cases, the way we access
PositionMap masked that, as the value would default to index 0.

But in the example in PR46854 it causes a crash.

This patch updates the logic to avoid adding pointers for alias sets
that do not need any checks. It makes things slightly more verbose, by
first checking the numbers of reads/writes and bailing out early if we don't
need checks for the alias set.

I think this makes the logic a bit simpler to follow.

Reviewed By: anemet

Differential Revision: https://reviews.llvm.org/D84608
The file was modifiedllvm/lib/Analysis/LoopAccessAnalysis.cpp
The file was addedllvm/test/Transforms/LoopLoadElim/pr46854-adress-spaces.ll
Commit 3bb48898bc8af58884d4aa6279d4281938c07e76 by Jonas Devlieghere
[lldb/Test] Use self.assertIn in TestGdbRemoteTargetXmlPacket

On the ARM buildbot the returned architecture is `armv8l` while
getArchitecture() just returns `arm`.
The file was modifiedlldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py
Commit 4c16eafe12a5f0c82303511d9d3d7acb5ffe84e4 by nikita.ppv
[SCCP] Remove dead switch cases based on range information

Determine whether switch edges are feasible based on range information,
and remove non-feasible edges lateron.

This does not try to determine whether the default edge is dead,
as we'd have to determine that the range is fully covered by the
cases for that.

Another limitation here is that we don't remove dead cases that
have the same successor as a live case. I'm not handling this
because I wanted to keep the edge removal based on feasible edges
only, rather than inspecting ranges again there -- this does not
seem like a particularly useful case to handle.

Differential Revision: https://reviews.llvm.org/D84270
The file was modifiedllvm/test/Transforms/SCCP/switch.ll
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
Commit b4c7657ba602acde1c2ea5391c973949b9c3ce09 by phosek
[ELF] Add --dependency-file option

Clang and GCC have a feature (-MD flag) to create a dependency file
in a format that build systems such as Make or Ninja can read, which
specifies all the additional inputs such .h files.

This change introduces the same functionality to lld bringing it to
feature parity with ld and gold which gained this feature recently.
See https://sourceware.org/bugzilla/show_bug.cgi?id=22843 for more
details and discussion.

The implementation corresponds to -MD -MP compiler flag where the
generated dependency file also includes phony targets which works
around the errors where the dependency is removed. This matches the
format used by ld and gold.

Fixes PR42806

Differential Revision: https://reviews.llvm.org/D82437
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/InputFiles.cpp
The file was addedlld/test/ELF/dependency-file.s
The file was modifiedlld/ELF/Config.h
The file was modifiedlld/ELF/Options.td
Commit fac84536bcb9fbca2b3517ca83d382329d0e6c55 by psteinfeld
[flang] Fix an assert on duplicate initializations

When declaring the same variable twice with an initialization, we were failing
an internal check.  I fixed this by checking to see if the associated symbol
already had an error.

I added tests for pointer and non-pointer initialization of duplicate names.

Differential Revision: https://reviews.llvm.org/D84969
The file was modifiedflang/lib/Semantics/resolve-names.cpp
The file was modifiedflang/test/Semantics/resolve91.f90
Commit 3ff7dcded213844bcb0c1d55a1a66ad8fd9b483b by phosek
[CMake][Fuchsia] Include additional tools in the toolchain

These are needed on Windows.

Differential Revision: https://reviews.llvm.org/D83999
The file was modifiedclang/cmake/caches/Fuchsia-stage2.cmake
Commit 95d1e668ed502af481edabb64d3a2093a57329ad by nikita.ppv
[CVP] Add tests for min/max/abs intrinsic comparisons (NFC)
The file was addedllvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll
Commit d8a98a9c351be0a535ce5c3b9b200a76e9b16d3a by nikita.ppv
[ConstantRange][CVP] Compute min/max/abs intrinsic ranges

Wire up ConstantRange::intrinsic() to the existing primitives for
min, max and abs.

The poison flag on abs is not yet taken into account.
The file was modifiedllvm/lib/IR/ConstantRange.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll
Commit da324f9904634855a0a3549284758cb079723cdf by martin
[LLD] [Mingw] Don't export symbols from profile generate

Differential Revision: https://reviews.llvm.org/D84756
The file was modifiedlld/COFF/MinGW.cpp
Commit 14c1b4017422cbf374086ea4c4fa74e16fb56779 by martin
[compiler-rt] [profile] fix profile generate for mingw x86_64

Differential Revision: https://reviews.llvm.org/D84757
The file was modifiedcompiler-rt/lib/profile/InstrProfilingPort.h
The file was modifiedcompiler-rt/lib/profile/CMakeLists.txt
Commit 8c1a31d83313e4d43509177193f1de14cf897c05 by Jonas Devlieghere
[lldb/Docs] Add lldb-arm-ubuntu to the list of bots
The file was modifiedlldb/docs/resources/bots.rst
Commit 94f8120cb9d368602df5aefa32211e001338e296 by nikita.ppv
[ConstantRange] Support abs with poison flag

This just adds the ConstantRange support, including exhaustive
testing. It's not wired up to the IR intrinsic flag yet.
The file was modifiedllvm/unittests/IR/ConstantRangeTest.cpp
The file was modifiedllvm/lib/IR/ConstantRange.cpp
The file was modifiedllvm/include/llvm/IR/ConstantRange.h
Commit 02c1bba67009041a999220f370e81376883d7a65 by Jonas Devlieghere
[lldb/Docs] Remove stale bot on GreenDragon and add reproducer one

- Remove the link to the Python 3 job which no longer exists.
- Add a link to the reproducer job.
The file was modifiedlldb/docs/resources/bots.rst
Commit afae6d97fa55984003321245ec6ceb5af9cc5856 by jonathan_roelofs
[SelectionDAG] Fix lowering of vector geps

This fixes an assertion failure that was being triggered in
SelectionDAG::getZeroExtendInReg(), where it was trying to extend the <2xi32>
to i64 (which should have been <2xi64>).

Fixes: rdar://66016901

Differential Revision: https://reviews.llvm.org/D84884
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was addedllvm/test/CodeGen/AArch64/vector-gep.ll
Commit 9ebeac678855a1bc2492a9630f0300518e2755dc by nikita.ppv
[ConstantRange][CVP] Make use of abs poison flag

Pass the abs poison flag to the underlying ConstantRange
implementation, allowing CVP to simplify based on it.

Importantly, this recognizes that abs with poison flag is actually
non-negative...
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/minmaxabs.ll
The file was modifiedllvm/lib/IR/ConstantRange.cpp
Commit 3587de22819869a2925994d8bd75fa1386464660 by jezng
[lld-macho] Support __dso_handle for C++

The C++ ABI requires dylibs to pass a pointer to __cxa_atexit which does
e.g. cleanup of static global variables. The C++ spec says that the pointer
can point to any address in one of the dylib's segments, but in practice
ld64 seems to set it to point to the header, so that's what's implemented
here.

Reviewed By: #lld-macho, smeenai

Differential Revision: https://reviews.llvm.org/D83603
The file was modifiedlld/MachO/Symbols.h
The file was addedlld/test/MachO/dso-handle.s
The file was modifiedlld/MachO/SymbolTable.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was addedlld/test/MachO/invalid/dso-handle-duplicate.s
The file was modifiedlld/MachO/Symbols.cpp
The file was modifiedlld/MachO/SymbolTable.h
The file was modifiedlld/MachO/Driver.cpp
The file was modifiedlld/MachO/SyntheticSections.h
Commit 22e6648a1834aa6680064eaf83e1e051a7248e17 by jezng
[lld-macho] Implement -headerpad

Tools like `install_name_tool` and `codesign` may modify the Mach-O
header and increase its size. The linker has to provide padding to make this
possible. This diff does that, plus sets its default value to 32 bytes (which
is what ld64 does).

Unlike ld64, however, we lay out our sections *exactly* `-headerpad` bytes from
the header, whereas ld64 just treats the padding requirement as a lower bound.
ld64 actually starts laying out the non-header sections in the __TEXT segment
from the end of the (page-aligned) segment rather than the front, so its
binaries typically have more than `-headerpad` bytes of actual padding.
We should consider implementing the same alignment behavior.

Reviewed By: #lld-macho, compnerd

Differential Revision: https://reviews.llvm.org/D84714
The file was modifiedlld/include/lld/Common/Args.h
The file was modifiedlld/Common/Args.cpp
The file was modifiedlld/test/MachO/local-got.s
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/Options.td
The file was modifiedlld/test/MachO/relocations.s
The file was modifiedlld/MachO/Config.h
The file was modifiedlld/MachO/Driver.cpp
The file was addedlld/test/MachO/headerpad.s
Commit 98210796e108b59bad56fed9df98e920359afc6b by jezng
[lld-macho] Make __LINKEDIT sections contiguous

codesign (or more specifically libstuff) checks that each section in
__LINKEDIT ends where the next one starts -- no gaps are permitted. This
diff achieves it by aligning every section's start and end points to
WordSize.

Remarks: ld64 appears to satisfy the constraint by adding padding bytes
when generating the __LINKEDIT data, e.g. by emitting BIND_OPCODE_DONE
(which is a 0x0 byte) repeatedly. I think the approach this diff takes
is a bit more elegant, but I'm not sure if it's too restrictive. In
particular, it assumes padding always uses the zero byte. But we can
revisit this later.

Reviewed By: #lld-macho, compnerd

Differential Revision: https://reviews.llvm.org/D84718
The file was modifiedlld/MachO/SyntheticSections.cpp
The file was modifiedlld/MachO/Writer.cpp
The file was addedlld/test/MachO/linkedit-contiguity.s
The file was modifiedlld/MachO/SyntheticSections.h
Commit 243376cdc7b719d443f42c8c4667e5d96af53dcc by changpeng.fang
AMDGPU: Put inexpensive ops first in AMDGPUAnnotateUniformValues::visitLoadInst

Summary:
  This is in response to the review of https://reviews.llvm.org/D84873:
The expensive check should be reordered last

Reviewers:
  arsenm

Differential Revision:
  https://reviews.llvm.org/D84890
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
Commit c89e46e767e25c426628f6365c577a3248634f1f by jezng
[lld-macho] Add comment for literal argument
The file was modifiedlld/MachO/Driver.cpp
Commit 1e7f026c3b59bea22491819f86d8388d0c3e0c07 by richard
PR46908: Emit undef destroying_delete_t as an aggregate RValue.

We previously used a non-aggregate RValue to represent the passed value,
which violated the assumptions of call arg lowering in some cases, in
particular on 32-bit Windows, where we'd end up producing an FCA store
with TBAA metadata, that the IR verifier would reject.
The file was modifiedclang/lib/CodeGen/CGExprCXX.cpp
The file was modifiedclang/test/CodeGenCXX/cxx2a-destroying-delete.cpp
Commit c23ae3f18ee3ff11671f4c62ffc66d150b1bcdc2 by n.james93
[clang-tidy][NFC] Use StringMap for ClangTidyCheckFactories::FacoryMap

Reviewed By: gribozavr2

Differential Revision: https://reviews.llvm.org/D84926
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyModule.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidy.cpp
The file was modifiedclang-tools-extra/clang-tidy/ClangTidyModule.h
Commit 59156bad03ffe37558b95fca62b5df4394de280c by thomasraoux
[mlir][spirv] Add support for converting memref of vector to SPIR-V

This allow declaring buffers and alloc of vectors so that we can support vector
load/store.

Differential Revision: https://reviews.llvm.org/D84982
The file was modifiedmlir/test/Conversion/StandardToSPIRV/std-types-to-spirv.mlir
The file was modifiedmlir/test/Conversion/StandardToSPIRV/alloc.mlir
The file was modifiedmlir/lib/Dialect/SPIRV/SPIRVLowering.cpp
The file was modifiedmlir/lib/Conversion/StandardToSPIRV/ConvertStandardToSPIRV.cpp
Commit e56e9022bc54c575ad8ecc3934e9cf84b8542e62 by Matthew.Arsenault
AMDGPU: Fix liveness errors when copying AGPR tuples

Avoid recursively calling copyPhysReg for AGPR handling. This was
dropping the necessary super register implicit defs to avoid liveness
verifier errors.
The file was modifiedllvm/test/CodeGen/AMDGPU/accvgpr-copy.mir
The file was modifiedllvm/lib/Target/AMDGPU/SIInstrInfo.cpp
Commit a34a8d52605a203cfde7d9a8600e1e3e0ee63df7 by jurahul
[MLIR][NFC] Add SymbolUse::UseRange::empty()

Differential Revision: https://reviews.llvm.org/D84984
The file was modifiedmlir/include/mlir/IR/SymbolTable.h
Commit 763671f387fdd00329c5b715d3ec6c62680f3f8e by zequanwu
[COFF] Port CallGraphSort to COFF from ELF
The file was addedlld/test/COFF/cgprofile-obj.s
The file was modifiedlld/COFF/InputFiles.cpp
The file was modifiedlld/COFF/Config.h
The file was modifiedlld/COFF/Writer.cpp
The file was addedlld/test/COFF/cgprofile-print.s
The file was modifiedlld/COFF/Driver.cpp
The file was addedlld/test/COFF/cgprofile-err.s
The file was modifiedlld/COFF/CMakeLists.txt
The file was addedlld/test/COFF/cgprofile-bad-clusters.s
The file was addedlld/test/COFF/cgprofile-icf.s
The file was modifiedlld/COFF/InputFiles.h
The file was addedlld/COFF/CallGraphSort.h
The file was modifiedlld/COFF/Options.td
The file was addedlld/test/COFF/cgprofile-txt.s
The file was modifiedlld/ELF/CallGraphSort.cpp
The file was addedlld/COFF/CallGraphSort.cpp
Commit 9f1dcdca71c4109354ec916ad27c24caf269c705 by Lang Hames
[JITLink] Allow JITLinkContext::notifyResolved to return an Error.

This allows clients to detect invalid transformations applied by JITLink passes
(e.g. inserting or removing symbols in unexpected ways) and terminate linking
with an error.

This change is used to simplify the error propagation logic in
ObjectLinkingLayer.
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
The file was modifiedllvm/lib/ExecutionEngine/Orc/ObjectLinkingLayer.cpp
Commit 8ce8cee1e1d44d480ea87f1ac47eddcf07c433d1 by Lang Hames
[llvm-jitlink] Add -harness option to llvm-jitlink.

The -harness option enables new testing use-cases for llvm-jitlink. It takes a
list of objects to treat as a test harness for any regular objects passed to
llvm-jitlink.

If any files are passed using the -harness option then the following
transformations are applied to all other files:

  (1) Symbols definitions that are referenced by the harness files are promoted
      to default scope. (This enables access to statics from test harness).

  (2) Symbols definitions that clash with definitions in the harness files are
      deleted. (This enables interposition by test harness).

  (3) All other definitions in regular files are demoted to local scope.
      (This causes untested code to be dead stripped, reducing memory cost and
      eliminating spurious unresolved symbol errors from untested code).

These transformations allow the harness files to reference and interpose
symbols in the regular object files, which can be used to support execution
tests (including fuzz tests) of functions in relocatable objects produced by a
build.
The file was addedllvm/test/ExecutionEngine/JITLink/X86/MachO_test_harness_harness.s
The file was addedllvm/test/ExecutionEngine/JITLink/X86/Inputs/MachO_test_harness_test.s
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.h
The file was modifiedllvm/lib/ExecutionEngine/JITLink/JITLinkGeneric.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/JITLink/JITLink.h
Commit b811736f8bbf6ec9596c191a6e9406f9df9523ae by llvmgnsyncbot
[gn build] Port 763671f387f
The file was modifiedllvm/utils/gn/secondary/lld/COFF/BUILD.gn
Commit 8dfb5d767e70dd862096c8872fd3e3bead99741d by efriedma
[clang codegen][AArch64] Use llvm.aarch64.neon.fcvtzs/u where it's necessary

fptosi/fptoui have similar, but not identical, semantics.  In
particular, the behavior on overflow is different.

Fixes https://bugs.llvm.org/show_bug.cgi?id=46844 for 64-bit.  (The
corresponding patch for 32-bit is more involved because the equivalent
intrinsics don't exist, as far as I can tell.)

Differential Revision: https://reviews.llvm.org/D84703
The file was modifiedclang/test/CodeGen/aarch64-neon-fcvt-intrinsics.c
The file was modifiedclang/test/CodeGen/aarch64-v8.2a-fp16-intrinsics.c
The file was modifiedclang/test/CodeGen/aarch64-neon-intrinsics.c
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedclang/test/CodeGen/aarch64-neon-misc.c
The file was modifiedclang/test/CodeGen/aarch64-v8.2a-neon-intrinsics.c
Commit a32af8252fde237a3936c4f2f5bee1dfb0cf5ea8 by sivachandra
[libc] Add a tool called WrapperGen.

This tool will be used to generate C wrappers for the C++ LLVM libc
implementations. This change does not hook this tool up to anything yet.
However, it can be useful for cases where one does not want to run the
objcopy step (to insert the C symbol in the object file) but can make use
of LTO to eliminate the cost of the additional wrapper call. This can be
relevant for certain downstream platforms. If this tool can benefit other
libc platforms in general, then it can be integrated into the build system
with options to use or not use the wrappers. An example of such a
platform is CUDA.

Reviewed By: abrachet

Differential Revision: https://reviews.llvm.org/D84848
The file was modifiedlibc/utils/LibcTableGenUtil/APIIndexer.h
The file was addedlibc/utils/tools/CMakeLists.txt
The file was addedlibc/utils/tools/WrapperGen/Main.cpp
The file was modifiedlibc/utils/LibcTableGenUtil/APIIndexer.cpp
The file was addedlibc/utils/tools/WrapperGen/CMakeLists.txt
The file was modifiedlibc/utils/CMakeLists.txt
Commit abb812823701cbbb615fea0d6fe731725eb4162f by mtrofin
[doc] Describe the header guard style

clang-tidy's llvm-header-guard rule references the LLVM style - where it's
missing.

Differential Revision: https://reviews.llvm.org/D84989
The file was modifiedllvm/docs/CodingStandards.rst
Commit 09f9f7dd1bfe3ec2625fec4de36f4d9c63593bf7 by Amara Emerson
[AArch64][GlobalISel] Add legalization & selection support for G_INTRINSIC_LRINT.

Differential Revision: https://reviews.llvm.org/D84552
The file was addedllvm/test/CodeGen/AArch64/GlobalISel/legalize-lrint.mir
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
The file was modifiedllvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp
The file was modifiedllvm/test/CodeGen/AArch64/lrint-conv.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
Commit 7e88efa7c5313aab5d840021085f3924d00609bf by efriedma
[LegalizeTypes][SVE] Support widen/split legalization for SPLAT_VECTOR

Just the obvious implementation that rewrites the result type. Also fix
warning from EXTRACT_SUBVECTOR legalization that triggers on the test.

Differential Revision: https://reviews.llvm.org/D84706
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
The file was modifiedllvm/test/CodeGen/AArch64/sve-vector-splat.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
Commit 57605758b5de3726eec1d6e587de1003af1ab5b7 by dccitaliano
[debugserver/Apple Silicon] Handoff connections when attaching to translated processes

When we detect a process that the native debugserver cannot handle,
handoff the connection fd to the translated debugserver.
The file was modifiedlldb/tools/debugserver/source/debugserver.cpp
The file was modifiedlldb/tools/debugserver/source/DNB.cpp
Commit 896f797b8bb7683f7e52c6dc94979f3c449bc37d by Vedant Kumar
[profile] Remove dependence on getpagesize from InstrProfilingBuffer.c.o

InstrProfilingBuffer.c.o is generic code that must support compilation
into freestanding projects. This gets rid of its dependence on the
_getpagesize symbol from libc, shifting it to InstrProfilingFile.c.o.

This fixes a build failure seen in a firmware project.

rdar://66249701
The file was modifiedcompiler-rt/lib/profile/InstrProfilingFile.c
The file was modifiedcompiler-rt/lib/profile/InstrProfiling.h
The file was modifiedcompiler-rt/test/profile/instrprof-without-libc.c
The file was modifiedcompiler-rt/lib/profile/InstrProfilingBuffer.c