SuccessChanges

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

Summary

  1. [X86] Add v32i8 and v64i8 tests to vec_smulo.ll and vec_umulo.ll. NFC (details)
  2. [mlir] Updated SideEffect interface definitions to use tablegen Resource objects. (details)
  3. [AMDGPU] Try to determine sign bit during div/rem expansion (details)
  4. [DebugInfo] Fix printing values of forms which depend on the DWARF format. (details)
  5. [DebugInfo] Fix handling DW_OP_call_ref in DWARF64 units. (details)
  6. Reapply [InstSimplify] Remove known bits constant folding (details)
  7. Fix a failing test. (details)
  8. [clangd] NFC: Use deprecated grpc++ headers for compatibility (details)
  9. [MLIR] Add complex addition and substraction to the standard dialect (details)
  10. AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC. (details)
  11. Remark.h - reduce ArrayRef.h include to SmallVector.h. NFC. (details)
Commit 5e74cf29991c498de8905f039f1b0bbfc715acdc by craig.topper
[X86] Add v32i8 and v64i8 tests to vec_smulo.ll and vec_umulo.ll. NFC

I was look at our vXi8 handling in LowerMULH and noticed that
vXi8 mulo uses but we don't test all types.
The file was modifiedllvm/test/CodeGen/X86/vec_smulo.ll
The file was modifiedllvm/test/CodeGen/X86/vec_umulo.ll
Commit 568787f81e07d82cf0f1ad1c9cb61eb04a12dcfb by marcel.koester
[mlir] Updated SideEffect interface definitions to use tablegen Resource objects.

The SideEffect interface definitions currently use string expressions to
reference custom resource objects. This CL introduces Resource objects in
tablegen definitions to simplify linking of resource reference to resource
objects.

Differential Revision: https://reviews.llvm.org/D78917
The file was modifiedmlir/include/mlir/Interfaces/SideEffects.td
The file was modifiedmlir/test/mlir-tblgen/op-side-effects.td
The file was modifiedmlir/lib/TableGen/SideEffects.cpp
Commit 5fa87ec004fd8a493ee6799ee5ba81b1c82daf19 by nikita.ppv
[AMDGPU] Try to determine sign bit during div/rem expansion

This is preparation for D79294, which removes an expensive
InstSimplify optimization, on the assumption that it will be
picked up by InstCombine instead. Of course, this does not hold
up if a backend performs non-trivial IR expansions without running
a canonicalization pipeline afterwards, which turned up as an
issue in the context of AMDGPU div/rem expansion.

This patch mitigates the issue by explicitly performing a known
bits calculation where it matters. No test changes, as those would
only be visible after the other patch lands.

Differential Revision: https://reviews.llvm.org/D79596
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
Commit 050c9dd43a0fd32c0bb8b944b6adb8f780c83c1c by ikudrin
[DebugInfo] Fix printing values of forms which depend on the DWARF format.

The values are 8 bytes long in DWARF64, so they should not be truncated
to uint32_t on dumping.

Differential Revision: https://reviews.llvm.org/D79093
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp
The file was modifiedllvm/unittests/DebugInfo/DWARF/DWARFFormValueTest.cpp
Commit 989ae9e848a079715c2d23e5d3622cac9b48e08e by ikudrin
[DebugInfo] Fix handling DW_OP_call_ref in DWARF64 units.

DW_OP_call_ref is the only operation that has an operand which depends
on the DWARF format. The patch fixes handling that operation in DWARF64
units.

Differential Revision: https://reviews.llvm.org/D79501
The file was modifiedllvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h
The file was modifiedllvm/lib/DWARFLinker/DWARFLinker.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDie.cpp
The file was addedllvm/test/DebugInfo/X86/DW_OP_call_ref_dwarf64.s
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was addedllvm/test/DebugInfo/X86/DW_OP_call_ref_unexpected.s
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFExpression.cpp
The file was modifiedllvm/tools/llvm-dwarfdump/Statistics.cpp
Commit 5a2265647ed3f449e9e8e970e27f5e964db851af by nikita.ppv
Reapply [InstSimplify] Remove known bits constant folding

No changes relative to last time, but after a mitigation for
an AMDGPU regression landed.

---

If SimplifyInstruction() does not succeed in simplifying the
instruction, it will compute the known bits of the instruction
in the hope that all bits are known and the instruction can be
folded to a constant. I have removed a similar optimization
from InstCombine in D75801, and would like to drop this one as well.

On average, we spend ~1% of total compile-time performing this
known bits calculation. However, if we introduce some additional
statistics for known bits computations and how many of them succeed
in simplifying the instruction we get (on test-suite):

    instsimplify.NumKnownBits: 216
    instsimplify.NumKnownBitsComputed: 13828375
    valuetracking.NumKnownBitsComputed: 45860806

Out of ~14M known bits calculations (accounting for approximately
one third of all known bits calculations), only 0.0015% succeed in
producing a constant. Those cases where we do succeed to compute
all known bits will get folded by other passes like InstCombine
later. On test-suite, only lencod.test and GCC-C-execute-pr44858.test
show a hash difference after this change. On lencod we see an
improvement (a loop phi is optimized away), on the GCC torture
test a regression (a function return value is determined only
after IPSCCP, preventing propagation from a noinline function.)

There are various regressions in InstSimplify tests. However, all
of these cases are already handled by InstCombine, and corresponding
tests have already been added there.

Differential Revision: https://reviews.llvm.org/D79294
The file was modifiedllvm/test/Transforms/GVN/PRE/volatile.ll
The file was removedllvm/test/Transforms/InstSimplify/assume.ll
The file was modifiedllvm/test/Transforms/InstSimplify/shift-knownbits.ll
The file was modifiedllvm/test/Transforms/InstSimplify/call.ll
The file was modifiedllvm/test/Transforms/InstSimplify/or.ll
The file was modifiedllvm/test/Analysis/ValueTracking/knownzero-shift.ll
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
Commit 6ab09e717745d5262fc0cf33f9190992c7f7dd67 by ikudrin
Fix a failing test.

Differential Revision: https://reviews.llvm.org/D79501
The file was modifiedllvm/test/DebugInfo/X86/DW_OP_call_ref_unexpected.s
Commit 9c198b550ebbff27499d9b68a8bbac98c4827da1 by kbobyrev
[clangd] NFC: Use deprecated grpc++ headers for compatibility

Summary:
Ubuntu 18.04 and older versions do not provide latest gRCP packages and the
ones that are in the repository use deprecated headers. Use these headers to
make builds possible.

https://packages.ubuntu.com/bionic/amd64/libgrpc++-dev/filelist

Reviewers: sammccall

Reviewed By: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D79487
The file was modifiedclang-tools-extra/clangd/index/remote/server/Server.cpp
The file was modifiedclang-tools-extra/clangd/index/remote/Client.cpp
Commit 5d5f61fc894bd4a2e100548ec65d56684883baf8 by frgossen
[MLIR] Add complex addition and substraction to the standard dialect

Complex addition and substraction are the first two binary operations on complex
numbers.
Remaining operations will follow the same pattern.

Differential Revision: https://reviews.llvm.org/D79479
The file was modifiedmlir/include/mlir/IR/OpBase.td
The file was modifiedmlir/include/mlir/Dialect/StandardOps/IR/Ops.td
The file was modifiedmlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
Commit ffd9cfa740c80416f07e39457ce571933de79613 by llvm-dev
AArch6/ARMTargetParser.h - move Triple.h dependency down to cpp file. NFC.

Reduce Triple.h include to a forward declaration in the header. Only the implementations in the cpp files need the actual Triple class definition.
The file was modifiedllvm/lib/Support/ARMTargetParser.cpp
The file was modifiedllvm/include/llvm/Support/ARMTargetParser.h
The file was modifiedllvm/include/llvm/Support/AArch64TargetParser.h
The file was modifiedllvm/lib/Support/AArch64TargetParser.cpp
Commit 8fd9af4518623f9a076d066adaad152304170fc0 by llvm-dev
Remark.h - reduce ArrayRef.h include to SmallVector.h. NFC.

We only need to include SmallVector.h in Remark.h, and then the more bulky ArrayRef.h in Remark.cpp.
The file was modifiedllvm/lib/Remarks/Remark.cpp
The file was modifiedllvm/include/llvm/Remarks/Remark.h