SuccessChanges

Summary

  1. [ARM] Add test for MVE and no floats. NFC Adds a simple test that MVE with no floating point will be promoted correctly to software float calls.
  2. [InferFunctionAttrs] add more tests for derefenceable; NFC
  3. [MIPS GlobalISel] Register bank select for G_PHI. Select i64 phi Select gprb or fprb when def/use register operand of G_PHI is used/defined by either: copy to/from physical register or instruction with only one mapping available for that use/def operand. Integer s64 phi is handled with narrowScalar when mapping is applied, produced artifacts are combined away. Manually set gprb to all register operands of instructions created during narrowScalar. Differential Revision: https://reviews.llvm.org/D64351
  4. AMDGPU/GlobalISel: Prepare some tests for store selection Mostsly these would fail due to trying to use SI with a flat operation. Implementing global loads with MUBUF is more work than flat, so these won't be handled in the initial load selection. Others fail because store of s64 won't initially work, as the current set of patterns expect everything to be turned into v2i32.
  5. [MIPS GlobalISel] Regbanks for G_SELECT. Select i64, f32 and f64 select Select gprb or fprb when def/use register operand of G_SELECT is used/defined by either: copy to/from physical register or instruction with only one mapping available for that use/def operand. Integer s64 select is handled with narrowScalar when mapping is applied, produced artifacts are combined away. Manually set gprb to all register operands of instructions created during narrowScalar. For selection of floating point s32 or s64 select it is enough to set fprb of appropriate size and selectImpl will do the rest. Differential Revision: https://reviews.llvm.org/D64350
  6. AMDGPU/GlobalISel: Fix test
  7. [docs][llvm-dwarfdump] Fix wording
  8. AMDGPU/GlobalISel: Legalize more concat_vectors
  9. AMDGPU/GlobalISel: Improve regbankselect for icmp s16 Account for 64-bit scalar eq/ne when available.
  10. AMDGPU/GlobalISel: Make s16 G_ICMP legal
  11. AMDGPU/GlobalISel: Select G_SUB
  12. AMDGPU/GlobalISel: Select G_UNMERGE_VALUES
  13. AMDGPU/GlobalISel: Select G_MERGE_VALUES
  14. gn build: Merge r365453
  15. [CodeGen] AccelTable - remove non-constexpr (MSVC) Atom defs Now that we've dropped VS2015 support (D64326) we can enable the constexpr variables on MSVC builds as VS2017+ correctly handles them
Revision 365496 by dmgreen:
[ARM] Add test for MVE and no floats. NFC

Adds a simple test that MVE with no floating point will be promoted correctly
to software float calls.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/Thumb2/mve-nofloat.lltrunk/test/CodeGen/Thumb2/mve-nofloat.ll
Revision 365495 by spatel:
[InferFunctionAttrs] add more tests for derefenceable; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/InferFunctionAttrs/dereferenceable.lltrunk/test/Transforms/InferFunctionAttrs/dereferenceable.ll
Revision 365494 by petar.avramovic:
[MIPS GlobalISel] Register bank select for G_PHI. Select i64 phi

Select gprb or fprb when def/use register operand of G_PHI is
used/defined by either:
copy to/from physical register or
instruction with only one mapping available for that use/def operand.

Integer s64 phi is handled with narrowScalar when mapping is applied,
produced artifacts are combined away. Manually set gprb to all register
operands of instructions created during narrowScalar.

Differential Revision: https://reviews.llvm.org/D64351
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpptrunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsLegalizerInfo.cpptrunk/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsRegisterBankInfo.cpptrunk/lib/Target/Mips/MipsRegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/legalizer/phi.mirtrunk/test/CodeGen/Mips/GlobalISel/legalizer/phi.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/llvm-ir/phi.lltrunk/test/CodeGen/Mips/GlobalISel/llvm-ir/phi.ll
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/regbankselect/phi.mirtrunk/test/CodeGen/Mips/GlobalISel/regbankselect/phi.mir
Revision 365493 by arsenm:
AMDGPU/GlobalISel: Prepare some tests for store selection

Mostsly these would fail due to trying to use SI with a flat
operation. Implementing global loads with MUBUF is more work than
flat, so these won't be handled in the initial load selection.

Others fail because store of s64 won't initially work, as the current
set of patterns expect everything to be turned into v2i32.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-add.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-add.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.cvt.pkrtz.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.cvt.pkrtz.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-bitcast.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-bitcast.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-constant.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-constant.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-copy.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fadd.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fadd.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fmul.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fmul.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fptoui.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-fptoui.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-icmp.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-implicit-def.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-implicit-def.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-inttoptr.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-inttoptr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-maxnum.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-maxnum.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-minnum.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-minnum.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-or.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sitofp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sitofp.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sub.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sub.mir
Revision 365492 by petar.avramovic:
[MIPS GlobalISel] Regbanks for G_SELECT. Select i64, f32 and f64 select

Select gprb or fprb when def/use register operand of G_SELECT is
used/defined by either:
copy to/from physical register or
instruction with only one mapping available for that use/def operand.

Integer s64 select is handled with narrowScalar when mapping is applied,
produced artifacts are combined away. Manually set gprb to all register
operands of instructions created during narrowScalar.

For selection of floating point s32 or s64 select it is enough to set
fprb of appropriate size and selectImpl will do the rest.

Differential Revision: https://reviews.llvm.org/D64350
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/MipsLegalizerInfo.cpptrunk/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsRegisterBankInfo.cpptrunk/lib/Target/Mips/MipsRegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/instruction-select/select.mirtrunk/test/CodeGen/Mips/GlobalISel/instruction-select/select.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/legalizer/select.mirtrunk/test/CodeGen/Mips/GlobalISel/legalizer/select.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/llvm-ir/select.lltrunk/test/CodeGen/Mips/GlobalISel/llvm-ir/select.ll
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/regbankselect/select.mirtrunk/test/CodeGen/Mips/GlobalISel/regbankselect/select.mir
Revision 365491 by arsenm:
AMDGPU/GlobalISel: Fix test
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mir
Revision 365489 by jhenderson:
[docs][llvm-dwarfdump] Fix wording
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-dwarfdump.rsttrunk/docs/CommandGuide/llvm-dwarfdump.rst
Revision 365488 by arsenm:
AMDGPU/GlobalISel: Legalize more concat_vectors
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpptrunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-concat-vectors.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-concat-vectors.mir
Revision 365487 by arsenm:
AMDGPU/GlobalISel: Improve regbankselect for icmp s16

Account for 64-bit scalar eq/ne when available.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpptrunk/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-icmp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-icmp.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-icmp.s16.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/regbankselect-icmp.s16.mir
Revision 365486 by arsenm:
AMDGPU/GlobalISel: Make s16 G_ICMP legal
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpptrunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/legalize-icmp.mir
Revision 365484 by arsenm:
AMDGPU/GlobalISel: Select G_SUB
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpptrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.htrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sub.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-sub.mir
Revision 365483 by arsenm:
AMDGPU/GlobalISel: Select G_UNMERGE_VALUES
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpptrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.htrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-unmerge-values.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-unmerge-values.mir
Revision 365482 by arsenm:
AMDGPU/GlobalISel: Select G_MERGE_VALUES
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpptrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.htrunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpptrunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cpptrunk/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-concat-vectors.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-merge-values.mirtrunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-merge-values.mir
Revision 365481 by nico:
gn build: Merge r365453
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clangd/refactor/tweaks/BUILD.gntrunk/utils/gn/secondary/clang-tools-extra/clangd/refactor/tweaks/BUILD.gn
Revision 365477 by rksimon:
[CodeGen] AccelTable - remove non-constexpr (MSVC) Atom defs

Now that we've dropped VS2015 support (D64326) we can enable the constexpr variables on MSVC builds as VS2017+ correctly handles them
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/AccelTable.htrunk/include/llvm/CodeGen/AccelTable.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AccelTable.cpptrunk/lib/CodeGen/AsmPrinter/AccelTable.cpp

Summary

  1. [libclang] Fix hang in release / assertion in debug when evaluating value-dependent types. Expression evaluator doesn't work in value-dependent types, so ensure that the precondition it asserts holds. This fixes https://bugs.llvm.org/show_bug.cgi?id=42532 Differential Revision: https://reviews.llvm.org/D64409
  2. [OPENMP]Fix the float point semantics handling on the device. The device should use the same float point representation as the host. Previous patch fixed the handling of the sizes of the float point types, but did not fixed the fp semantics. This patch makes target device to use the host fp semantics. this is required for the correct data transfer between host and device and correct codegen.
  3. [ItaniumMangle] Refactor long double/__float128 mangling and fix the mangled code In gcc PowerPC, long double has 3 mangling schemes: -mlong-double-64: `e` -mlong-double-128 -mabi=ibmlongdouble: `g` -mlong-double-128 -mabi=ieeelongdouble: `u9__ieee128` (gcc <= 8.1: `U10__float128`) The current useFloat128ManglingForLongDouble() bisection is not suitable when we support -mlong-double-128 in clang (D64277). Replace useFloat128ManglingForLongDouble() with getLongDoubleMangling() and getFloat128Mangling() to allow 3 mangling schemes. I also deleted the `getTriple().isOSBinFormatELF()` check (the Darwin support has gone: https://reviews.llvm.org/D50988). For x86, change the mangled code of __float128 from `U10__float128` to `g`. `U10__float128` was wrongly copied from PowerPC. The test will be added to `test/CodeGen/x86-long-double.cpp` in D64277. Reviewed By: erichkeane Differential Revision: https://reviews.llvm.org/D64276
  4. [Syntax] Move roles into a separate enum To align with reviewer's suggestions.
Revision 365490 by emilio:
[libclang] Fix hang in release / assertion in debug when evaluating value-dependent types.

Expression evaluator doesn't work in value-dependent types, so ensure that the
precondition it asserts holds.

This fixes https://bugs.llvm.org/show_bug.cgi?id=42532

Differential Revision: https://reviews.llvm.org/D64409
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Index/evaluate-cursor.cpptrunk/test/Index/evaluate-cursor.cpp
The file was modified/cfe/trunk/tools/libclang/CIndex.cpptrunk/tools/libclang/CIndex.cpp
Revision 365485 by abataev:
[OPENMP]Fix the float point semantics handling on the device.

The device should use the same float point representation as the host.
Previous patch fixed the handling of the sizes of the float point types,
but did not fixed the fp semantics. This patch makes target device to
use the host fp semantics. this is required for the correct data
transfer between host and device and correct codegen.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cpptrunk/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_asm_delayed_diags.ctrunk/test/OpenMP/nvptx_asm_delayed_diags.c
The file was modified/cfe/trunk/test/OpenMP/nvptx_unsupported_type_codegen.cpptrunk/test/OpenMP/nvptx_unsupported_type_codegen.cpp
Revision 365480 by maskray:
[ItaniumMangle] Refactor long double/__float128 mangling and fix the mangled code

In gcc PowerPC, long double has 3 mangling schemes:

-mlong-double-64: `e`
-mlong-double-128 -mabi=ibmlongdouble: `g`
-mlong-double-128 -mabi=ieeelongdouble: `u9__ieee128` (gcc <= 8.1: `U10__float128`)

The current useFloat128ManglingForLongDouble() bisection is not suitable
when we support -mlong-double-128 in clang (D64277). Replace
useFloat128ManglingForLongDouble() with getLongDoubleMangling() and
getFloat128Mangling() to allow 3 mangling schemes.

I also deleted the `getTriple().isOSBinFormatELF()` check (the Darwin
support has gone: https://reviews.llvm.org/D50988).

For x86, change the mangled code of __float128 from `U10__float128` to `g`. `U10__float128` was wrongly copied from PowerPC.
The test will be added to `test/CodeGen/x86-long-double.cpp` in D64277.

Reviewed By: erichkeane

Differential Revision: https://reviews.llvm.org/D64276
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/TargetInfo.htrunk/include/clang/Basic/TargetInfo.h
The file was modified/cfe/trunk/lib/AST/ItaniumMangle.cpptrunk/lib/AST/ItaniumMangle.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/PPC.htrunk/lib/Basic/Targets/PPC.h
The file was modified/cfe/trunk/lib/Basic/Targets/SystemZ.htrunk/lib/Basic/Targets/SystemZ.h
The file was modified/cfe/trunk/lib/Basic/Targets/X86.htrunk/lib/Basic/Targets/X86.h
The file was modified/cfe/trunk/test/CodeGenCXX/float128-declarations.cpptrunk/test/CodeGenCXX/float128-declarations.cpp
Revision 365479 by ibiryukov:
[Syntax] Move roles into a separate enum

To align with reviewer's suggestions.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Tooling/Syntax/Nodes.htrunk/include/clang/Tooling/Syntax/Nodes.h
The file was modified/cfe/trunk/include/clang/Tooling/Syntax/Tree.htrunk/include/clang/Tooling/Syntax/Tree.h
The file was modified/cfe/trunk/lib/Tooling/Syntax/BuildTree.cpptrunk/lib/Tooling/Syntax/BuildTree.cpp
The file was modified/cfe/trunk/lib/Tooling/Syntax/Nodes.cpptrunk/lib/Tooling/Syntax/Nodes.cpp
The file was modified/cfe/trunk/lib/Tooling/Syntax/Tree.cpptrunk/lib/Tooling/Syntax/Tree.cpp
The file was modified/cfe/trunk/unittests/Tooling/Syntax/TreeTest.cpptrunk/unittests/Tooling/Syntax/TreeTest.cpp