Changes

Summary

  1. [lld][MachO] Sort symbols in parallel in -map (details)
  2. Improve error reporting on pass registration collision (NFC) (details)
  3. [ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper. (details)
  4. [mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass. (details)
  5. Avoid unnecessary AArch64 DSB in __clear_cache in some situations. (details)
  6. [clangd] Use command line adjusters for inserting compile flags (details)
  7. [clangd] Fix feature modules to drop diagnostics (details)
  8. Update @llvm.powi to handle different int sizes for the exponent (details)
  9. [lldb] Skip variant/optional libc++ tests for Clang 5/6 (details)
Commit 01cb9c5fc52bf7978fe8e1b1dba98b0e1d304402 by th3charlie
[lld][MachO] Sort symbols in parallel in -map

source: https://bugs.llvm.org/show_bug.cgi?id=50689

When writing a map file, sort symbols in parallel using parallelSort.
Use address name to break ties if two symbols have the same address.

Reviewed By: thakis, int3

Differential Revision: https://reviews.llvm.org/D104346
The file was modifiedlld/MachO/MapFile.cpp
Commit 6a071e535fa43db038ea1a9329ebdeede3db31f9 by joker.eph
Improve error reporting on pass registration collision (NFC)

Differential Revision: https://reviews.llvm.org/D104430
The file was modifiedmlir/lib/Pass/PassRegistry.cpp
Commit 838490de7ede2a144094fa0f98cd91d8851d7e3d by Lang Hames
[ORC] Switch from uint8_t to char buffers for TargetProcessControl::runWrapper.

This matches WrapperFunctionResult's char buffer, cutting down on the number of
pointer casts needed.
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcessControl.h
The file was modifiedllvm/lib/ExecutionEngine/Orc/TargetProcessControl.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/TargetProcess/OrcRPCTPCServer.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/OrcRPCTargetProcessControl.h
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/Shared/Serialization.h
Commit 3ed3e438a75d9cf756f6004b60dd5b3feec96b0b by ravishankarm
[mlir] Move `memref.dim` canonicalization using `InferShapedTypeOpInterface` to a separate pass.

Based on dicussion in
[this](https://llvm.discourse.group/t/remove-canonicalizer-for-memref-dim-via-shapedtypeopinterface/3641)
thread the pattern to resolve the `memref.dim` of a value that is a
result of an operation that implements the
`InferShapedTypeOpInterface` is moved to a separate pass instead of
running it as a canonicalization pass. This allows shape resolution to
happen when explicitly required, instead of automatically through a
canonicalization.

Differential Revision: https://reviews.llvm.org/D104321
The file was modifiedmlir/test/Dialect/Linalg/fusion-sequence.mlir
The file was addedmlir/test/Dialect/Linalg/resolve-shaped-type-result-dims.mlir
The file was addedmlir/lib/Dialect/MemRef/Transforms/ResolveShapedTypeResultDims.cpp
The file was modifiedmlir/lib/Dialect/MemRef/IR/MemRefOps.cpp
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.h
The file was modifiedmlir/test/Dialect/Linalg/fusion-tensor-pattern.mlir
The file was modifiedmlir/test/Dialect/Linalg/canonicalize.mlir
The file was modifiedmlir/test/lib/Dialect/Test/CMakeLists.txt
The file was modifiedmlir/test/Dialect/Linalg/tile-and-fuse-tensors.mlir
The file was modifiedmlir/test/Transforms/test-canonicalize.mlir
The file was modifiedmlir/include/mlir/Dialect/MemRef/Transforms/Passes.td
The file was modifiedmlir/test/lib/Dialect/Test/TestOps.td
The file was modifiedmlir/test/lib/Dialect/Test/TestDialect.cpp
The file was modifiedmlir/lib/Dialect/MemRef/Transforms/CMakeLists.txt
The file was addedmlir/test/Interfaces/InferShapedTypeOpInterface/resolve-shaped-type-result-dims.mlir
Commit 6f0e74cd583ba6fbb897d3ab16a9b75e91484275 by kristof.beyls
Avoid unnecessary AArch64 DSB in __clear_cache in some situations.

The dsb after instruction cache invalidation only needs to be executed
if any instruction cache invalidation did happen.
Without this change, if the CTR_EL0.DIC bit indicates that instruction
cache invalidation is not needed, __clear_cache would execute two dsb
instructions in a row; with the second one being unnecessary.

Differential Revision: https://reviews.llvm.org/D104371
The file was modifiedcompiler-rt/lib/builtins/clear_cache.c
Commit b662651586bedd5350914f64463fe415105785c8 by kadircet
[clangd] Use command line adjusters for inserting compile flags

This fixes issues with `--` in the compile flags.

Fixes https://github.com/clangd/clangd/issues/632.

Differential Revision: https://reviews.llvm.org/D99523
The file was modifiedclang-tools-extra/clangd/ConfigCompile.cpp
The file was modifiedclang-tools-extra/clangd/CompileCommands.cpp
The file was modifiedclang-tools-extra/clangd/unittests/CompileCommandsTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/ConfigCompileTests.cpp
Commit 204014ec7557cde214ee8aae66661927bf9976f2 by kadircet
[clangd] Fix feature modules to drop diagnostics

Ignored diagnostics were only checked after level adjusters and assumed
it would stay the same for the rest. But it can also be modified by
FeatureModules.

Differential Revision: https://reviews.llvm.org/D103387
The file was modifiedclang-tools-extra/clangd/Diagnostics.cpp
The file was modifiedclang-tools-extra/clangd/unittests/FeatureModulesTests.cpp
The file was modifiedclang-tools-extra/clangd/Diagnostics.h
Commit 4c7f820b2b206bb7b4e32e575a78316701471203 by bjorn.a.pettersson
Update @llvm.powi to handle different int sizes for the exponent

This can be seen as a follow up to commit 0ee439b705e82a4fe20e2,
that changed the second argument of __powidf2, __powisf2 and
__powitf2 in compiler-rt from si_int to int. That was to align with
how those runtimes are defined in libgcc.
One thing that seem to have been missing in that patch was to make
sure that the rest of LLVM also handle that the argument now depends
on the size of int (not using the si_int machine mode for 32-bit).
When using __builtin_powi for a target with 16-bit int clang crashed.
And when emitting libcalls to those rtlib functions, typically when
lowering @llvm.powi), the backend would always prepare the exponent
argument as an i32 which caused miscompiles when the rtlib was
compiled with 16-bit int.

The solution used here is to use an overloaded type for the second
argument in @llvm.powi. This way clang can use the "correct" type
when lowering __builtin_powi, and then later when emitting the libcall
it is assumed that the type used in @llvm.powi matches the rtlib
function.

One thing that needed some extra attention was that when vectorizing
calls several passes did not support that several arguments could
be overloaded in the intrinsics. This patch allows overload of a
scalar operand by adding hasVectorInstrinsicOverloadedScalarOpd, with
an entry for powi.

Differential Revision: https://reviews.llvm.org/D99439
The file was modifiedllvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll
The file was modifiedllvm/test/Transforms/InstSimplify/floating-point-compare.ll
The file was modifiedllvm/test/Transforms/Scalarizer/intrinsics.ll
The file was modifiedllvm/test/CodeGen/X86/tailcall-multiret.ll
The file was modifiedllvm/test/CodeGen/X86/2007-09-27-LDIntrinsics.ll
The file was modifiedllvm/test/CodeGen/NVPTX/f16-instructions.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll
The file was modifiedllvm/test/CodeGen/RISCV/double-intrinsics.ll
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-double.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/test/CodeGen/ARM/2011-11-29-128bitArithmetics.ll
The file was modifiedllvm/unittests/Analysis/ValueTrackingTest.cpp
The file was modifiedllvm/test/CodeGen/ARM/vfloatintrinsics.ll
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/intrinsic.ll
The file was modifiedllvm/test/Transforms/LICM/hoist-round.ll
The file was modifiedllvm/test/CodeGen/RISCV/float-intrinsics.ll
The file was modifiedclang/lib/CodeGen/CGBuiltin.cpp
The file was modifiedllvm/test/CodeGen/NVPTX/f16x2-instructions.ll
The file was modifiedllvm/test/CodeGen/ARM/fp16-promote.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was modifiedllvm/test/CodeGen/X86/powi.ll
The file was modifiedllvm/test/CodeGen/AArch64/powi-windows.ll
The file was modifiedllvm/test/CodeGen/Thumb2/intrinsics-cc.ll
The file was modifiedllvm/test/Transforms/InstSimplify/ConstProp/math-2.ll
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/test/CodeGen/AArch64/illegal-float-ops.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/llvm.powi.ll
The file was modifiedllvm/test/Transforms/InstSimplify/fold-intrinsics.ll
The file was modifiedllvm/test/CodeGen/WebAssembly/simd-unsupported.ll
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/llvm.powi.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/extract_in_tree_user.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int16.ll
The file was modifiedllvm/test/CodeGen/ARM/fp16-fullfp16.ll
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/intrinsic.ll
The file was modifiedllvm/test/CodeGen/X86/vector-intrinsics.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was addedclang/test/CodeGen/msp430-builtins.c
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/Transforms/Scalar/Scalarizer.cpp
The file was modifiedllvm/test/CodeGen/ARM/Windows/powi.ll
The file was modifiedllvm/test/Transforms/InstCombine/fdiv.ll
The file was modifiedllvm/test/CodeGen/SystemZ/fp-libcall.ll
The file was modifiedllvm/test/Analysis/CostModel/AArch64/sve-intrinsics.ll
The file was modifiedllvm/test/CodeGen/XCore/float-intrinsics.ll
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
The file was modifiedllvm/test/CodeGen/NVPTX/libcall-intrinsic.ll
The file was modifiedllvm/test/CodeGen/Thumb2/float-intrinsics-float.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/test/CodeGen/Generic/fpowi-promote.ll
The file was modifiedclang/test/CodeGen/avr-builtins.c
The file was modifiedllvm/include/llvm/Analysis/VectorUtils.h
The file was modifiedllvm/test/CodeGen/ARM/fpowi.ll
The file was modifiedllvm/test/CodeGen/Mips/powif64_16.ll
The file was modifiedllvm/test/CodeGen/X86/powi-windows.ll
The file was modifiedllvm/test/CodeGen/Mips/msa/f16-llvm-ir.ll
The file was modifiedllvm/test/CodeGen/X86/2010-05-07-ldconvert.ll
The file was modifiedllvm/test/CodeGen/Mips/mips64-f128.ll
The file was modifiedclang/test/CodeGen/math-builtins.c
The file was modifiedllvm/test/CodeGen/AArch64/f16-instructions.ll
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was modifiedllvm/test/CodeGen/Generic/replace-intrinsics-with-veclib.ll
The file was modifiedllvm/test/CodeGen/PowerPC/f128-arith.ll
The file was modifiedllvm/test/Transforms/InstCombine/pow_fp_int.ll
The file was modifiedllvm/test/CodeGen/Mips/pr36061.ll
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/test/CodeGen/RISCV/rv64i-single-softfloat.ll
The file was modifiedllvm/test/Transforms/InstCombine/intrinsics.ll
The file was modifiedllvm/lib/Target/Mips/Mips16HardFloat.cpp
The file was addedllvm/test/Bitcode/upgrade-powi-intrinsics.ll.bc
The file was modifiedllvm/test/CodeGen/WebAssembly/libcalls.ll
Commit 25fa67868b36c99d2704bd291b3b495737f16f0e by Raphael Isemann
[lldb] Skip variant/optional libc++ tests for Clang 5/6

Clang 5 and Clang 6 can no longer parse newer versions of libc++. As we can't
specify the specific libc++ version in the decorator, let's only allow Clang
versions that can parse all currently available libc++ versions.
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/variant/TestDataFormatterLibcxxVariant.py
The file was modifiedlldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/optional/TestDataFormatterLibcxxOptional.py