SuccessChanges

Summary

  1. [clangd] Add ':' to completion trigger characters. Summary: Without it we don't get completion requests from VSCode after nested name qualifiers (e.g. after 'std::'). Reviewers: krasimir, bkramer Reviewed By: krasimir Subscribers: klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D35986
  2. [Support/GlobPattern] - Do not crash when pattern has characters with int value < 0. Found it during work on LLD, it would crash on following linker script: SECTIONS { .foo : { *("*®") } } That happens because ® has int value -82. And chars are used as array index in code, and are signed by default. Differential revision: https://reviews.llvm.org/D35891
  3. Added `applyAtomicChanges` function. This re-commits r298913. o See thread http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20170327/189084.html o Tested with -DLLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY=0. Summary: ... which applies a set of `AtomicChange`s on code. Reviewers: klimek, djasper Reviewed By: djasper Subscribers: arphaman, mgorny, chapuni, cfe-commits Differential Revision: https://reviews.llvm.org/D30777
  4. [LoopInterchange] Do not interchange loops with function calls. Summary: Without any information about the called function, we cannot be sure that it is safe to interchange loops which contain function calls. For example there could be dependences that prevent interchanging between accesses in the called function and the loops. Even functions without any parameters could cause problems, as they could access memory using global pointers. For now, I think it is only safe to interchange loops with calls marked as readnone. With this patch, the LLVM test suite passes with `-O3 -mllvm -enable-loopinterchange` and LoopInterchangeProfitability::isProfitable returning true for all loops. check-llvm and check-clang also pass when bootstrapped in a similar fashion, although only 3 loops got interchanged. Reviewers: karthikthecool, blitz.opensource, hfinkel, mcrosier, mkuper Reviewed By: mcrosier Subscribers: mzolotukhin, llvm-commits Differential Revision: https://reviews.llvm.org/D35489
  5. [X86][AVX512] Add masked MOVS[S|D] patterns Added patterns to recognize AND 1 on the mask of a scalar masked move is not needed since only the lower bit is relevant for the instruction. Differential Revision: https://reviews.llvm.org/D35897
  6. [coroutines] Evaluate the operand of void `co_return` expressions. Summary: Previously Clang incorrectly ignored the expression of a void `co_return`. This patch addresses that bug. I'm not quite sure if I got the code-gen right, but this patch is at least a start. Reviewers: rsmith, GorNishanov Reviewed By: rsmith, GorNishanov Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D36070
  7. [SLP]: Add test to resurrect the jumbled load patch. This test has multiple uses of memory loads by different user Change-Id: I40b5ba8b810265440f3e55efca77c4b41ca98fa4
Revision 309550 by ibiryukov:
[clangd] Add ':' to completion trigger characters.

Summary:
Without it we don't get completion requests from VSCode after
nested name qualifiers (e.g. after 'std::').

Reviewers: krasimir, bkramer

Reviewed By: krasimir

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D35986
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdLSPServer.cppclang-tools-extra.src/clangd/ClangdLSPServer.cpp
The file was modified/clang-tools-extra/trunk/test/clangd/formatting.testclang-tools-extra.src/test/clangd/formatting.test
Revision 309549 by grimar:
[Support/GlobPattern] - Do not crash when pattern has characters with int value < 0.

Found it during work on LLD, it would crash on following
linker script:

SECTIONS { .foo : { *("*®") } }
That happens because ® has int value -82. And chars are used as
array index in code, and are signed by default.

Differential revision: https://reviews.llvm.org/D35891
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/GlobPattern.cppllvm.src/lib/Support/GlobPattern.cpp
The file was modified/llvm/trunk/unittests/Support/GlobPatternTest.cppllvm.src/unittests/Support/GlobPatternTest.cpp
Revision 309548 by ioeric:
Added `applyAtomicChanges` function.

This re-commits r298913.
o See thread http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20170327/189084.html
o Tested with -DLLVM_ENABLE_LOCAL_SUBMODULE_VISIBILITY=0.

Summary: ... which applies a set of `AtomicChange`s on code.

Reviewers: klimek, djasper

Reviewed By: djasper

Subscribers: arphaman, mgorny, chapuni, cfe-commits

Differential Revision: https://reviews.llvm.org/D30777
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Tooling/Refactoring/AtomicChange.hclang.src/include/clang/Tooling/Refactoring/AtomicChange.h
The file was modified/cfe/trunk/lib/Tooling/Refactoring/AtomicChange.cppclang.src/lib/Tooling/Refactoring/AtomicChange.cpp
The file was modified/cfe/trunk/lib/Tooling/Refactoring/CMakeLists.txtclang.src/lib/Tooling/Refactoring/CMakeLists.txt
The file was modified/cfe/trunk/unittests/Tooling/RefactoringTest.cppclang.src/unittests/Tooling/RefactoringTest.cpp
Revision 309547 by fhahn:
[LoopInterchange] Do not interchange loops with function calls.

Summary:
Without any information about the called function, we cannot be sure
that it is safe to interchange loops which contain function calls. For
example there could be dependences that prevent interchanging between
accesses in the called function and the loops. Even functions without any
parameters could cause problems, as they could access memory using
global pointers.

For now, I think it is only safe to interchange loops with calls marked
as readnone.

With this patch, the LLVM test suite passes with `-O3 -mllvm
-enable-loopinterchange` and LoopInterchangeProfitability::isProfitable
returning true for all loops. check-llvm and check-clang also pass when
bootstrapped in a similar fashion, although only 3 loops got
interchanged.

Reviewers: karthikthecool, blitz.opensource, hfinkel, mcrosier, mkuper

Reviewed By: mcrosier

Subscribers: mzolotukhin, llvm-commits

Differential Revision: https://reviews.llvm.org/D35489
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopInterchange.cppllvm.src/lib/Transforms/Scalar/LoopInterchange.cpp
The file was added/llvm/trunk/test/Transforms/LoopInterchange/call-instructions.llllvm.src/test/Transforms/LoopInterchange/call-instructions.ll
The file was modified/llvm/trunk/test/Transforms/LoopInterchange/interchange-flow-dep-outer.llllvm.src/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
The file was modified/llvm/trunk/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.llllvm.src/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
Revision 309546 by guyblank:
[X86][AVX512] Add masked MOVS[S|D] patterns

Added patterns to recognize AND 1 on the mask of a scalar masked
move is not needed since only the lower bit is relevant for the
instruction.

Differential Revision:
https://reviews.llvm.org/D35897
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86InstrAVX512.tdllvm.src/lib/Target/X86/X86InstrAVX512.td
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-load-store.llllvm.src/test/CodeGen/X86/avx512-load-store.ll
The file was modified/llvm/trunk/test/CodeGen/X86/avx512-select.llllvm.src/test/CodeGen/X86/avx512-select.ll
Revision 309545 by ericwf:
[coroutines] Evaluate the operand of void `co_return` expressions.

Summary:
Previously Clang incorrectly ignored the expression of a void `co_return`. This patch addresses that bug.

I'm not quite sure if I got the code-gen right, but this patch is at least a start.

Reviewers: rsmith, GorNishanov

Reviewed By: rsmith, GorNishanov

Subscribers: cfe-commits

Differential Revision: https://reviews.llvm.org/D36070
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGCoroutine.cppclang.src/lib/CodeGen/CGCoroutine.cpp
The file was modified/cfe/trunk/test/CodeGenCoroutines/coro-ret-void.cppclang.src/test/CodeGenCoroutines/coro-ret-void.cpp
Revision 309544 by ashahid:
[SLP]: Add test to resurrect the jumbled load patch. This test has multiple uses
of memory loads by different user

Change-Id: I40b5ba8b810265440f3e55efca77c4b41ca98fa4
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.llllvm.src/test/Transforms/SLPVectorizer/X86/jumbled-load-multiuse.ll