Changes
Summary
- [LoadStoreVectorizer] vectorizeStoreChain - ensure we find a store type. Properly initialize store type to null then ensure we find a real store type in the chain. Fixes scan-build null dereference warning and makes the code clearer.
- [CodeGen] Move X86 tests under the X86 directory
- [X86] X86InstrInfo::findThreeSrcCommutedOpIndices - fix unread variable warning. scan-build was reporting that CommutableOpIdx1 never used its original initialized value - move it down to where its first used to make the real initialization more obvious (and matches the comment that's there).
- [X86] lowerVectorShuffle - use any_of to detect out of bounds shuffle indices. NFCI. Fixes cppcheck local shadow warning as well.
- [Analysis] Remove duplicated std::move from LocRange constructor scan-build was reporting that we were referencing a moved variable - in fact we were moving it twice.....
Change Type | Path in Repository | Path in Workspace |
---|---|---|
![]() | /llvm/trunk/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp | trunk/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/test/CodeGen/X86/avx512bf16-intrinsics.ll | trunk/test/CodeGen/X86/avx512bf16-intrinsics.ll |
![]() | /llvm/trunk/test/CodeGen/X86/avx512bf16-vl-intrinsics.ll | trunk/test/CodeGen/X86/avx512bf16-vl-intrinsics.ll |
![]() | /llvm/trunk/test/CodeGen/avx512bf16-intrinsics.ll | trunk/test/CodeGen/avx512bf16-intrinsics.ll |
![]() | /llvm/trunk/test/CodeGen/avx512bf16-vl-intrinsics.ll | trunk/test/CodeGen/avx512bf16-vl-intrinsics.ll |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp | trunk/lib/Target/X86/X86InstrInfo.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/lib/Target/X86/X86ISelLowering.cpp | trunk/lib/Target/X86/X86ISelLowering.cpp |
Change Type | Path in Repository | Path in Workspace |
![]() | /llvm/trunk/include/llvm/Analysis/LoopInfo.h | trunk/include/llvm/Analysis/LoopInfo.h |
Summary
- Revert r359949 "[clang] adding explicit(bool) from c++2a" This caused Clang to start erroring on the following: struct S { template <typename = int> explicit S(); }; struct T : S {}; struct U : T { U(); }; U::U() {} $ clang -c /tmp/x.cc /tmp/x.cc:10:4: error: call to implicitly-deleted default constructor of 'T' U::U() {} ^ /tmp/x.cc:5:12: note: default constructor of 'T' is implicitly deleted because base class 'S' has no default constructor struct T : S {}; ^ 1 error generated. See discussion on the cfe-commits email thread. This also reverts the follow-ups r359966 and r359968. > this patch adds support for the explicit bool specifier. > > Changes: > - The parsing for the explicit(bool) specifier was added in ParseDecl.cpp. > - The storage of the explicit specifier was changed. the explicit specifier was stored as a boolean value in the FunctionDeclBitfields and in the DeclSpec class. now it is stored as a PointerIntPair<Expr*, 2> with a flag and a potential expression in CXXConstructorDecl, CXXDeductionGuideDecl, CXXConversionDecl and in the DeclSpec class. > - Following the AST change, Serialization, ASTMatchers, ASTComparator and ASTPrinter were adapted. > - Template instantiation was adapted to instantiate the potential expressions of the explicit(bool) specifier When instantiating their associated declaration. > - The Add*Candidate functions were adapted, they now take a Boolean indicating if the context allowing explicit constructor or conversion function and this boolean is used to remove invalid overloads that required template instantiation to be detected. > - Test for Semantic and Serialization were added. > > This patch is not yet complete. I still need to check that interaction with CTAD and deduction guides is correct. and add more tests for AST operations. But I wanted first feedback. > Perhaps this patch should be spited in smaller patches, but making each patch testable as a standalone may be tricky. > > Patch by Tyker > > Differential Revision: https://reviews.llvm.org/D60934
Summary
- [clangd] Boost code completion results that were named in the last few lines. Summary: The hope is this will catch a few patterns with repetition: SomeClass* S = ^SomeClass::Create() int getFrobnicator() { return ^frobnicator_; } // discard the factory, it's no longer valid. ^MyFactory.reset(); Without triggering antipatterns too often: return Point(x.first, x.^second); I'm going to gather some data on whether this turns out to be a win overall. Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, jfb, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61537
- [clangd] Qualify uses of ::testing everywhere. NFC Add an initial '::' qualifier to all usages of 'testing' namespace that did not have one. The goal is to make our code style in tests more consistent.