FailedChanges

Summary

  1. [clangd] If an undocumented definition exists, don't accept documentation from other forward decls. Summary: This fixes cases like: foo.h class Undocumented{} bar.h // break an include cycle. we should refactor this! class Undocumented; Where the comment doesn't describe the class. Note that a forward decl that is *visible to the definition* will still have its doc comment used, by SymbolCollector: Merge isn't involved here. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68467
  2. [llvm-readelf/llvm-objdump] - Improve/refactor the implementation of SHT_LLVM_ADDRSIG section dumping. This patch: * Adds a llvm-readobj/llvm-readelf test file for SHT_LLVM_ADDRSIG sections. (we do not have any) * Enables dumping of SHT_LLVM_ADDRSIG with --all. * Changes the logic to report a warning instead of an error when something goes wrong during dumping (allows to continue dumping SHT_LLVM_ADDRSIG and other sections on error). * Refactors a piece of logic to a new toULEB128Array helper which might be used for GNU-style dumping implementation. Differential revision: https://reviews.llvm.org/D68383
  3. [clangd] Collect missing macro references. Summary: Semantic highlghting is missing a few macro references. Reviewers: ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D68458
  4. [IA] Recognize hexadecimal escape sequences Summary: Implement support for hexadecimal escape sequences to match how GNU 'as' handles them. I.e., read all hexadecimal characters and truncate to the lower 16 bits. Reviewers: nickdesaulniers Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68483
  5. clang-cl: Ignore the new /ZH options These were added to the MS docs in https://github.com/MicrosoftDocs/cpp-docs/commit/85b9b6967e58e485251450f7451673f6fc873e88 and are supposedly available in VS 2019 16.4 (though my 2019 Preview, version 16.4.0-pre.1.0 don't seem to have them.)
  6. [TableGen] Pacify gcc-5.4 more Followup to a previous pacification, this performs the same workaround to the TableGen generated code for tuple automata.
  7. Revert "[SLP] avoid reduction transform on patterns that the backend can load-combine" This reverts SVN r373833, as it caused a failed assert "Non-zero loop cost expected" on building numerous projects, see PR43582 for details and reproduction samples.
  8. [llvm-locstats] Fix a typo in the documentation; NFC
  9. [X86] Autogenerate checks in leaFixup32.mir and leaFixup64.mir. NFC
  10. [X86] Support LEA64_32r in processInstrForSlow3OpLEA and use INC/DEC when possible. Move the erasing and iterator updating inside to match the other slow LEA function. I've adapted code from optTwoAddrLEA and basically rebuilt the implementation here. We do lose the kill flags now just like optTwoAddrLEA. This runs late enough in the pipeline that shouldn't really be a problem.
  11. [NFC][CGP] Tests for making ICMP_EQ use CR result of ICMP_S(L|G)T dominators
  12. [c++20] Check for a class-specific operator delete when deleting an object of class type with a virtual destructor.
  13. Fix behavior of __builtin_bit_cast when the From and To types are the same. We were missing the lvalue-to-rvalue conversion entirely in this case, and in fact still need the full CK_LValueToRValueBitCast conversion to perform a load with no TBAA.
  14. gn build: no-op style tweak in sync script
  15. [Docs] Removes Subsystem Documentation page Removes Subsystem Documentation page. Also moves existing topics on Subsystem Documentation page to User Guides and Reference pages.
  16. [X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217) If a fp scalar is loaded and then used as both a scalar and a vector broadcast, perform the load as a broadcast and then extract the scalar for 'free' from the 0th element. This involved switching the order of the X86ISD::BROADCAST combines so we only convert to X86ISD::BROADCAST_LOAD once all other canonicalizations have been attempted. Adds a DAGCombinerInfo::recursivelyDeleteUnusedNodes wrapper. Fixes PR43217 Differential Revision: https://reviews.llvm.org/D68544
  17. Fix signed/unsigned warning. NFCI
  18. [NFC][PowerPC] Reorganize CRNotPat multiclass patterns in PPCInstrInfo.td This is patch aims to group together the `CRNotPat` multi class instantiations within the `PPCInstrInfo.td` file. Integer instantiations of the multi class are grouped together into a section, and the floating point patterns are separated into its own section. Differential Revision: https://reviews.llvm.org/D67975
  19. [X86][SSE] Remove resolveTargetShuffleInputs and use getTargetShuffleInputs directly. Move the resolveTargetShuffleInputsAndMask call to after the shuffle mask combine before the undef/zero constant fold instead.
  20. [X86][SSE] Don't merge known undef/zero elements into target shuffle masks. Replaces setTargetShuffleZeroElements with getTargetShuffleAndZeroables which reports the Zeroable elements but doesn't merge them into the decoded target shuffle mask (the merging has been moved up into getTargetShuffleInputs until we can get rid of it entirely). This is part of the work to fix PR43024 and allow us to use SimplifyDemandedElts to simplify shuffle chains - we need to get to a point where the target shuffle mask isn't adjusted by its source inputs but instead we cache them in a parallel Zeroable mask.
  21. Implements CWG 1601 in [over.ics.rank/4.2] Summary: The overload resolution for enums with a fixed underlying type has changed in the C++14 standard. This patch implements the new rule. Patch by Mark de Wever! Reviewers: rsmith Reviewed By: rsmith Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D65695
  22. [X86] Add custom type legalization for v16i64->v16i8 truncate and v8i64->v8i8 truncate when v8i64 isn't legal Summary: The default legalization for v16i64->v16i8 tries to create a multiple stage truncate concatenating after each stage and truncating again. But avx512 implements truncates with multiple uops. So it should be better to truncate all the way to the desired element size and then concatenate the pieces using unpckl instructions. This minimizes the number of 2 uop truncates. The unpcks are all single uop instructions. I tried to handle this by just custom splitting the v16i64->v16i8 shuffle. And hoped that the DAG combiner would leave the two halves in the state needed to make D68374 do the job for each half. This worked for the first half, but the second half got messed up. So I've implemented custom handling for v8i64->v8i8 when v8i64 needs to be split to produce the VTRUNCs directly. Reviewers: RKSimon, spatel Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68428
  23. [LegalizeTypes][X86] When splitting a vselect for type legalization, don't split a setcc condition if the setcc input is legal and vXi1 conditions are supported Summary: The VSELECT splitting code tries to split a setcc input as well. But on avx512 where mask registers are well supported it should be better to just split the mask and use a single compare. Reviewers: RKSimon, spatel, efriedma Reviewed By: spatel Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68359
  24. [Sema] Avoids an assertion failure when an invalid conversion declaration is used Summary: When using a user-defined conversion function template with a deduced return type the compiler gives a set of warnings: ``` bug.cc:252:44: error: cannot specify any part of a return type in the declaration of a conversion function; use an alias template to declare a conversion to 'auto (Ts &&...) const' template <typename... Ts> operator auto()(Ts &&... xs) const; ^~~~~~~~~~~~~~~~~~~ bug.cc:252:29: error: conversion function cannot convert to a function type template <typename... Ts> operator auto()(Ts &&... xs) const; ^ error: pointer to function type cannot have 'const' qualifier ``` after which it triggers an assertion failure. It seems the last error is incorrect and doesn't have any location information. This patch stops the compilation after the second warning. Fixes bug 31422. Patch by Mark de Wever! Reviewers: rsmith Reviewed By: rsmith Subscribers: bbannier, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64820
  25. gn build: make windows build less broken
  26. [LOOPGUARD] Remove asserts in getLoopGuardBranch Summary: The assertion in getLoopGuardBranch can be a 'return nullptr' under if condition. Authored By: DTharun Reviewer: Whitney, fhahn Reviewed By: Whitney, fhahn Subscribers: fhahn, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D66084
  27. [Docs] Removes Programming Documentation page Removes Programming Documentation page. Also moves existing topics on Programming Documentation page to User Guides and Reference pages.
Revision 373892 by sammccall:
[clangd] If an undocumented definition exists, don't accept documentation from other forward decls.

Summary:
This fixes cases like:
  foo.h
    class Undocumented{}
  bar.h
    // break an include cycle. we should refactor this!
    class Undocumented;
Where the comment doesn't describe the class.

Note that a forward decl that is *visible to the definition* will still have
its doc comment used, by SymbolCollector: Merge isn't involved here.

Reviewers: ilya-biryukov

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68467
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/index/Merge.cpp (diff)clang-tools-extra.src/clangd/index/Merge.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/IndexTests.cpp (diff)clang-tools-extra.src/clangd/unittests/IndexTests.cpp
Revision 373890 by grimar:
[llvm-readelf/llvm-objdump] - Improve/refactor the implementation of SHT_LLVM_ADDRSIG section dumping.

This patch:

* Adds a llvm-readobj/llvm-readelf test file for SHT_LLVM_ADDRSIG sections. (we do not have any)
* Enables dumping of SHT_LLVM_ADDRSIG with --all.
* Changes the logic to report a warning instead of an error when something goes wrong during dumping
  (allows to continue dumping SHT_LLVM_ADDRSIG and other sections on error).
* Refactors a piece of logic to a new toULEB128Array helper which might be used for GNU-style
  dumping implementation.

Differential revision: https://reviews.llvm.org/D68383
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-readobj/all.test (diff)llvm.src/test/tools/llvm-readobj/all.test
The file was added/llvm/trunk/test/tools/llvm-readobj/elf-addrsig.testllvm.src/test/tools/llvm-readobj/elf-addrsig.test
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
The file was modified/llvm/trunk/tools/llvm-readobj/llvm-readobj.cpp (diff)llvm.src/tools/llvm-readobj/llvm-readobj.cpp
Revision 373889 by hokein:
[clangd] Collect missing macro references.

Summary: Semantic highlghting is missing a few macro references.

Reviewers: ilya-biryukov

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D68458
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CollectMacros.h (diff)clang-tools-extra.src/clangd/CollectMacros.h
The file was modified/clang-tools-extra/trunk/clangd/unittests/SemanticHighlightingTests.cpp (diff)clang-tools-extra.src/clangd/unittests/SemanticHighlightingTests.cpp
Revision 373888 by void:
[IA] Recognize hexadecimal escape sequences

Summary:
Implement support for hexadecimal escape sequences to match how GNU 'as'
handles them. I.e., read all hexadecimal characters and truncate to the
lower 16 bits.

Reviewers: nickdesaulniers

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68483
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCParser/AsmParser.cpp (diff)llvm.src/lib/MC/MCParser/AsmParser.cpp
The file was modified/llvm/trunk/test/MC/AsmParser/directive_ascii.s (diff)llvm.src/test/MC/AsmParser/directive_ascii.s
Revision 373887 by hans:
clang-cl: Ignore the new /ZH options

These were added to the MS docs in
https://github.com/MicrosoftDocs/cpp-docs/commit/85b9b6967e58e485251450f7451673f6fc873e88
and are supposedly available in VS 2019 16.4 (though my 2019 Preview,
version 16.4.0-pre.1.0 don't seem to have them.)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/CLCompatOptions.td (diff)clang.src/include/clang/Driver/CLCompatOptions.td
The file was modified/cfe/trunk/test/Driver/cl-options.c (diff)clang.src/test/Driver/cl-options.c
Revision 373883 by jamesm:
[TableGen] Pacify gcc-5.4 more

Followup to a previous pacification, this performs the same workaround
to the TableGen generated code for tuple automata.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/TableGen/DFAEmitter.cpp (diff)llvm.src/utils/TableGen/DFAEmitter.cpp
Revision 373882 by mstorsjo:
Revert "[SLP] avoid reduction transform on patterns that the backend can load-combine"

This reverts SVN r373833, as it caused a failed assert "Non-zero loop
cost expected" on building numerous projects, see PR43582 for details
and reproduction samples.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfo.h (diff)llvm.src/include/llvm/Analysis/TargetTransformInfo.h
The file was modified/llvm/trunk/lib/Analysis/TargetTransformInfo.cpp (diff)llvm.src/lib/Analysis/TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp (diff)llvm.src/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/bad-reduction.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/bad-reduction.ll
Revision 373880 by djtodoro:
[llvm-locstats] Fix a typo in the documentation; NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/CommandGuide/llvm-locstats.rst (diff)llvm.src/docs/CommandGuide/llvm-locstats.rst
Revision 373878 by ctopper:
[X86] Autogenerate checks in leaFixup32.mir and leaFixup64.mir. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/leaFixup32.mir (diff)llvm.src/test/CodeGen/X86/leaFixup32.mir
The file was modified/llvm/trunk/test/CodeGen/X86/leaFixup64.mir (diff)llvm.src/test/CodeGen/X86/leaFixup64.mir
Revision 373877 by ctopper:
[X86] Support LEA64_32r in processInstrForSlow3OpLEA and use INC/DEC when possible.

Move the erasing and iterator updating inside to match the
other slow LEA function.

I've adapted code from optTwoAddrLEA and basically rebuilt the
implementation here. We do lose the kill flags now just like
optTwoAddrLEA. This runs late enough in the pipeline that
shouldn't really be a problem.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86FixupLEAs.cpp (diff)llvm.src/lib/Target/X86/X86FixupLEAs.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/leaFixup32.mir (diff)llvm.src/test/CodeGen/X86/leaFixup32.mir
The file was modified/llvm/trunk/test/CodeGen/X86/leaFixup64.mir (diff)llvm.src/test/CodeGen/X86/leaFixup64.mir
The file was modified/llvm/trunk/test/CodeGen/X86/select-1-or-neg1.ll (diff)llvm.src/test/CodeGen/X86/select-1-or-neg1.ll
Revision 373876 by yi-hong.lyu:
[NFC][CGP] Tests for making ICMP_EQ use CR result of ICMP_S(L|G)T dominators
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/AArch64/use-cr-result-of-dom-icmp-st.llllvm.src/test/CodeGen/AArch64/use-cr-result-of-dom-icmp-st.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/use-cr-result-of-dom-icmp-st.ll (diff)llvm.src/test/CodeGen/PowerPC/use-cr-result-of-dom-icmp-st.ll
The file was added/llvm/trunk/test/CodeGen/X86/use-cr-result-of-dom-icmp-st.llllvm.src/test/CodeGen/X86/use-cr-result-of-dom-icmp-st.ll
Revision 373875 by rsmith:
[c++20] Check for a class-specific operator delete when deleting an
object of class type with a virtual destructor.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ExprConstant.cpp (diff)clang.src/lib/AST/ExprConstant.cpp
The file was modified/cfe/trunk/test/SemaCXX/constant-expression-cxx2a.cpp (diff)clang.src/test/SemaCXX/constant-expression-cxx2a.cpp
Revision 373874 by rsmith:
Fix behavior of __builtin_bit_cast when the From and To types are the
same.

We were missing the lvalue-to-rvalue conversion entirely in this case,
and in fact still need the full CK_LValueToRValueBitCast conversion to
perform a load with no TBAA.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/OperationKinds.def (diff)clang.src/include/clang/AST/OperationKinds.def
The file was modified/cfe/trunk/lib/Sema/SemaCast.cpp (diff)clang.src/lib/Sema/SemaCast.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/builtin-bit-cast-no-tbaa.cpp (diff)clang.src/test/CodeGenCXX/builtin-bit-cast-no-tbaa.cpp
The file was modified/cfe/trunk/test/SemaCXX/constexpr-builtin-bit-cast.cpp (diff)clang.src/test/SemaCXX/constexpr-builtin-bit-cast.cpp
Revision 373873 by nico:
gn build: no-op style tweak in sync script
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/build/sync_source_lists_from_cmake.py (diff)llvm.src/utils/gn/build/sync_source_lists_from_cmake.py
Revision 373872 by dr87:
[Docs] Removes Subsystem Documentation page

Removes Subsystem Documentation page. Also moves existing topics on Subsystem Documentation page to User Guides and Reference pages.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/Reference.rst (diff)llvm.src/docs/Reference.rst
The file was removed/llvm/trunk/docs/SubsystemDocumentation.rstllvm.src/docs/SubsystemDocumentation.rst
The file was modified/llvm/trunk/docs/UserGuides.rst (diff)llvm.src/docs/UserGuides.rst
The file was modified/llvm/trunk/docs/index.rst (diff)llvm.src/docs/index.rst
Revision 373871 by rksimon:
[X86][AVX] Access a scalar float/double as a free extract from a broadcast load (PR43217)

If a fp scalar is loaded and then used as both a scalar and a vector broadcast, perform the load as a broadcast and then extract the scalar for 'free' from the 0th element.

This involved switching the order of the X86ISD::BROADCAST combines so we only convert to X86ISD::BROADCAST_LOAD once all other canonicalizations have been attempted.

Adds a DAGCombinerInfo::recursivelyDeleteUnusedNodes wrapper.

Fixes PR43217

Differential Revision: https://reviews.llvm.org/D68544
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetLowering.h (diff)llvm.src/include/llvm/CodeGen/TargetLowering.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx-vbroadcast.ll (diff)llvm.src/test/CodeGen/X86/avx-vbroadcast.ll
Revision 373870 by rksimon:
Fix signed/unsigned warning. NFCI
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 373869 by amyk:
[NFC][PowerPC] Reorganize CRNotPat multiclass patterns in PPCInstrInfo.td

This is patch aims to group together the `CRNotPat` multi class instantiations
within the `PPCInstrInfo.td` file.

Integer instantiations of the multi class are grouped together into a section,
and the floating point patterns are separated into its own section.

Differential Revision: https://reviews.llvm.org/D67975
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.td (diff)llvm.src/lib/Target/PowerPC/PPCInstrInfo.td
Revision 373868 by rksimon:
[X86][SSE] Remove resolveTargetShuffleInputs and use getTargetShuffleInputs directly.

Move the resolveTargetShuffleInputsAndMask call to after the shuffle mask combine before the undef/zero constant fold instead.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 373867 by rksimon:
[X86][SSE] Don't merge known undef/zero elements into target shuffle masks.

Replaces setTargetShuffleZeroElements with getTargetShuffleAndZeroables which reports the Zeroable elements but doesn't merge them into the decoded target shuffle mask (the merging has been moved up into getTargetShuffleInputs until we can get rid of it entirely).

This is part of the work to fix PR43024 and allow us to use SimplifyDemandedElts to simplify shuffle chains - we need to get to a point where the target shuffle mask isn't adjusted by its source inputs but instead we cache them in a parallel Zeroable mask.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 373866 by rsmith:
Implements CWG 1601 in [over.ics.rank/4.2]

Summary:
The overload resolution for enums with a fixed underlying type has changed in the C++14 standard. This patch implements the new rule.

Patch by Mark de Wever!

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D65695
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaOverload.cpp (diff)clang.src/lib/Sema/SemaOverload.cpp
The file was modified/cfe/trunk/test/CXX/drs/dr16xx.cpp (diff)clang.src/test/CXX/drs/dr16xx.cpp
The file was modified/cfe/trunk/test/CXX/drs/dr6xx.cpp (diff)clang.src/test/CXX/drs/dr6xx.cpp
The file was modified/cfe/trunk/www/cxx_dr_status.html (diff)clang.src/www/cxx_dr_status.html
Revision 373864 by ctopper:
[X86] Add custom type legalization for v16i64->v16i8 truncate and v8i64->v8i8 truncate when v8i64 isn't legal

Summary:
The default legalization for v16i64->v16i8 tries to create a multiple stage truncate concatenating after each stage and truncating again. But avx512 implements truncates with multiple uops. So it should be better to truncate all the way to the desired element size and then concatenate the pieces using unpckl instructions. This minimizes the number of 2 uop truncates. The unpcks are all single uop instructions.

I tried to handle this by just custom splitting the v16i64->v16i8 shuffle. And hoped that the DAG combiner would leave the two halves in the state needed to make D68374 do the job for each half. This worked for the first half, but the second half got messed up. So I've implemented custom handling for v8i64->v8i8 when v8i64 needs to be split to produce the VTRUNCs directly.

Reviewers: RKSimon, spatel

Reviewed By: RKSimon

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68428
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/min-legal-vector-width.ll (diff)llvm.src/test/CodeGen/X86/min-legal-vector-width.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-packus.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-packus.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-ssat.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-trunc-usat.ll (diff)llvm.src/test/CodeGen/X86/vector-trunc-usat.ll
Revision 373863 by ctopper:
[LegalizeTypes][X86] When splitting a vselect for type legalization, don't split a setcc condition if the setcc input is legal and vXi1 conditions are supported

Summary: The VSELECT splitting code tries to split a setcc input as well. But on avx512 where mask registers are well supported it should be better to just split the mask and use a single compare.

Reviewers: RKSimon, spatel, efriedma

Reviewed By: spatel

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68359
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-vselect.ll (diff)llvm.src/test/CodeGen/X86/avx512-vselect.ll
The file was modified/llvm/trunk/test/CodeGen/X86/min-legal-vector-width.ll (diff)llvm.src/test/CodeGen/X86/min-legal-vector-width.ll
The file was modified/llvm/trunk/test/CodeGen/X86/pr34177.ll (diff)llvm.src/test/CodeGen/X86/pr34177.ll
Revision 373862 by rsmith:
[Sema] Avoids an assertion failure when an invalid conversion declaration is used

Summary:
When using a user-defined conversion function template with a deduced return type the compiler gives a set of warnings:
```
bug.cc:252:44: error: cannot specify any part of a return type in the declaration of a conversion function; use an alias template to declare a conversion to 'auto (Ts &&...) const'
  template <typename... Ts> operator auto()(Ts &&... xs) const;
                                           ^~~~~~~~~~~~~~~~~~~
bug.cc:252:29: error: conversion function cannot convert to a function type
  template <typename... Ts> operator auto()(Ts &&... xs) const;
                            ^
error: pointer to function type cannot have 'const' qualifier
```
after which it triggers an assertion failure. It seems the last error is incorrect and doesn't have any location information. This patch stops the compilation after the second warning.

Fixes bug 31422.

Patch by Mark de Wever!

Reviewers: rsmith

Reviewed By: rsmith

Subscribers: bbannier, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64820
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was added/cfe/trunk/test/SemaCXX/PR31422.cppclang.src/test/SemaCXX/PR31422.cpp
Revision 373858 by nico:
gn build: make windows build less broken
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/build/toolchain/BUILD.gn (diff)llvm.src/utils/gn/build/toolchain/BUILD.gn
Revision 373857 by whitneyt:
[LOOPGUARD] Remove asserts in getLoopGuardBranch
Summary: The assertion in getLoopGuardBranch can be a 'return nullptr'
under if condition.
Authored By: DTharun
Reviewer: Whitney, fhahn
Reviewed By: Whitney, fhahn
Subscribers: fhahn, llvm-commits
Tag: LLVM
Differential Revision: https://reviews.llvm.org/D66084
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/LoopInfo.cpp (diff)llvm.src/lib/Analysis/LoopInfo.cpp
The file was modified/llvm/trunk/unittests/Analysis/LoopInfoTest.cpp (diff)llvm.src/unittests/Analysis/LoopInfoTest.cpp
Revision 373856 by dr87:
[Docs] Removes Programming Documentation page

Removes Programming Documentation page. Also moves existing topics on Programming Documentation page to User Guides and Reference pages.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/GettingStartedTutorials.rst (diff)llvm.src/docs/GettingStartedTutorials.rst
The file was removed/llvm/trunk/docs/ProgrammingDocumentation.rstllvm.src/docs/ProgrammingDocumentation.rst
The file was modified/llvm/trunk/docs/Reference.rst (diff)llvm.src/docs/Reference.rst
The file was modified/llvm/trunk/docs/UserGuides.rst (diff)llvm.src/docs/UserGuides.rst
The file was modified/llvm/trunk/docs/index.rst (diff)llvm.src/docs/index.rst