[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-03-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added a comment. In https://reviews.llvm.org/D42983#1028241, @alexfh wrote: > In https://reviews.llvm.org/D42983#1028093, @MaskRay wrote: > > > In https://reviews.llvm.org/D42983#1025179, @alexfh wrote: > > > > > A late comment here: should this check start a new "portability" module? >

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-03-06 Thread Alexander Kornienko via Phabricator via cfe-commits
alexfh added a comment. In https://reviews.llvm.org/D42983#1028093, @MaskRay wrote: > In https://reviews.llvm.org/D42983#1025179, @alexfh wrote: > > > A late comment here: should this check start a new "portability" module? > > This seems to be the main focus of the check rather than making

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-03-05 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added a comment. In https://reviews.llvm.org/D42983#1025179, @alexfh wrote: > A late comment here: should this check start a new "portability" module? This > seems to be the main focus of the check rather than making code more readable. SG. Should I rename it? Repository: rCTE

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-03-02 Thread Alexander Kornienko via Phabricator via cfe-commits
alexfh added a comment. A late comment here: should this check start a new "portability" module? This seems to be the main focus of the check rather than making code more readable. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-15 Thread Fangrui Song via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes. Closed by commit rCTE325272: [clang-tidy] Add `readability-simd-intrinsics` check. (authored by MaskRay, committed by ). Changed prior to commit: https://reviews.llvm.org/D42983?vs=134447=134448#toc Repository: rCTE

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-15 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added inline comments. Comment at: test/clang-tidy/readability-simd-intrinsics-ppc.cpp:3 +// RUN: -config='{CheckOptions: [ \ +// RUN:{key: readability-simd-intrinsics.Suggest, value: 1} \ +// RUN: ]}' -- -target ppc64le -maltivec -std=c++11 hokein

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-15 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 134447. MaskRay marked 2 inline comments as done. MaskRay added a comment. Update Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-15 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 134446. MaskRay marked 4 inline comments as done. MaskRay added a comment. Update .rst Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-15 Thread Haojian Wu via Phabricator via cfe-commits
hokein accepted this revision. hokein added a comment. This revision is now accepted and ready to land. The clang-tidy code looks good. If no one has further comments, feel free to commit it. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:46 + + static const

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-14 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 134305. MaskRay marked 2 inline comments as done. MaskRay added a comment. Add an option `Suggest`. Only suggest P0214 alternatives if it is true. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-13 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay marked 8 inline comments as done. MaskRay added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:46 + + static const llvm::StringMap Mapping{ +// [simd.alg] hokein wrote: > consider using `llvm::StringSwitch`? The list is

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-13 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 134076. MaskRay marked an inline comment as done. MaskRay added a comment. Remove UseStdExperimental Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-13 Thread Haojian Wu via Phabricator via cfe-commits
hokein added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:46 + + static const llvm::StringMap Mapping{ +// [simd.alg] consider using `llvm::StringSwitch`? Comment at:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-12 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133902. MaskRay marked an inline comment as done. MaskRay added a comment. Rename `Enabled` to `UseStdExperimental` and only suggest std::experimental:: (not `std::`) Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-09 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:46 + + static const llvm::StringMap Mapping{ +// [simd.alg] I think you can use `llvm::StringRef` here instead of `std::string` Comment at:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-08 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133476. MaskRay added a comment. .rst Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp clang-tidy/readability/SIMDIntrinsicsCheck.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-08 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133474. MaskRay added a comment. Herald added subscribers: kbarton, nemanjai. Split test/clang-tidy/readability-simd-intrinsics.cpp to x86 and ppc Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-08 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133457. MaskRay added a comment. Set `Enabled` to 1 in test/clang-tidy/readability-simd-intrinsics.cpp Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-08 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay marked 9 inline comments as done. MaskRay added a comment. The check must be manually enabled now: % clang-tidy -checks='-*,readability-simd-intrinsics' a.cc -- -std=c++2a # Not enabled by default % clang-tidy -checks='-*,readability-simd-intrinsics' -config='{CheckOptions:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-08 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133455. MaskRay added a comment. Add option `Enabled` which defaults to 0. Suggest std::simd (-std=c++2a) or std::experimental::std (-std=c++11) only if enabled. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:75 + // libcxx implementation of std::experimental::simd requires at least C++11. + if (!Result.Context->getLangOpts().CPlusPlus11) +return; timshen wrote: >

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Tim Shen via Phabricator via cfe-commits
timshen added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:75 + // libcxx implementation of std::experimental::simd requires at least C++11. + if (!Result.Context->getLangOpts().CPlusPlus11) +return; MaskRay wrote: >

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133255. MaskRay marked an inline comment as done. MaskRay added a comment. readability-simd-intrinsics.rst Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:77 +void SIMDIntrinsicsCheck::registerMatchers(MatchFinder *Finder) { + Finder->addMatcher( + callExpr(callee(functionDecl(matchesName("^::(_mm_|_mm256_|_mm512_|vec_)"))),

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay marked 3 inline comments as done. MaskRay added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:26 + + static const llvm::StringMap Mapping{ +// [simd.alg] lebedev.ri wrote: > You probably want to move `Mapping` out of

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay marked 2 inline comments as done. MaskRay added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:75 + // libcxx implementation of std::experimental::simd requires at least C++11. + if (!Result.Context->getLangOpts().CPlusPlus11) +return;

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133239. MaskRay added a comment. Use unnamed namespace to enclose AST_MATCHER and TrySuggest* Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133237. MaskRay added a comment. Add check-specific option `Experimental` StringRef Std; if (Result.Context->getLangOpts().CPlusPlus2a) { Std = "std"; } else if (Result.Context->getLangOpts().CPlusPlus11 && Experimental) { // libcxx

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133233. MaskRay marked 2 inline comments as done. MaskRay added a comment. Fix word order of readability-simd-intrinsics Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-07 Thread Roman Lebedev via Phabricator via cfe-commits
lebedev.ri added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:26 + + static const llvm::StringMap Mapping{ +// [simd.alg] You probably want to move `Mapping` out of the function. Comment at:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133134. MaskRay marked 2 inline comments as done. MaskRay added a comment. Warning messages of operator+ as operator+ operator- .. are free functions on simd objects. Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files:

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133133. MaskRay marked an inline comment as done. MaskRay added a comment. docs/ReleaseNotes.rst and use StringRef::consume_front Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Tim Shen via Phabricator via cfe-commits
timshen added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:34 +// [simd.binary] +{"add", "std::experimental::simd::operator+"}, +{"sub", "std::experimental::simd::operator-"}, Technically,

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Tim Shen via Phabricator via cfe-commits
timshen added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:24 + if (Name.startswith("vec_")) +Name = Name.substr(4); + else timshen wrote: > Can you either find or create a wrapper for this? > > bool StripPrefix(StringRef

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Tim Shen via Phabricator via cfe-commits
timshen added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:24 + if (Name.startswith("vec_")) +Name = Name.substr(4); + else Can you either find or create a wrapper for this? bool StripPrefix(StringRef Prefix, StringRef& S)

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Tim Shen via Phabricator via cfe-commits
timshen added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:22 + +static StringRef CheckPPC(StringRef Name) { + if (Name.startswith("vec_")) "Check" usually indicates to return a bool, but what it actually returns is a possible

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Eugene Zelenko via Phabricator via cfe-commits
Eugene.Zelenko added inline comments. Comment at: docs/ReleaseNotes.rst:97 +- New `readability-simd-intrinsics + `_ check Please move it new checks section. Repository: rCTE

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133126. MaskRay added a comment. docs/ReleaseNotes.rst Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133120. MaskRay added a comment. if (!Result.Context->getLangOpts().CPlusPlus11) return; Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Eugene Zelenko via Phabricator via cfe-commits
Eugene.Zelenko added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:77 +void SIMDIntrinsicsCheck::registerMatchers(MatchFinder *Finder) { + Finder->addMatcher( + callExpr(callee(functionDecl(matchesName("^::(_mm_|_mm256_|_mm512_|vec_)"))),

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133109. MaskRay added a comment. Remove private section Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay marked an inline comment as done. MaskRay added inline comments. Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:77 +void SIMDIntrinsicsCheck::registerMatchers(MatchFinder *Finder) { + Finder->addMatcher( +

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133107. MaskRay marked 5 inline comments as done. MaskRay added a comment. LLVM Style Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add readability-simd-intrinsics check.

2018-02-06 Thread Eugene Zelenko via Phabricator via cfe-commits
Eugene.Zelenko added a comment. Please mention this check in docs/ReleaseNotes.rst (in alphabetical order). Comment at: clang-tidy/readability/SIMDIntrinsicsCheck.cpp:24 + +StringRef CheckPPC(StringRef Name) { + if (Name.startswith("vec_")) Please make

[PATCH] D42983: [clang-tidy] Add `readability-simd-intrinsics` check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133091. MaskRay added a comment. Move CHECK-MESSAGES: to comform to the prevaling style Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add `readability-simd-intrinsics` check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay added a comment. I haven't used clang-tidy before :) Do you have any suggestions on my workflow? % ninja -C ~/Dev/llvm/build clangTidyReadabilityModule % ~/Dev/llvm/build/bin/clang-tidy -checks='-*,readability-simd-intrinsics' a.cc # for local testing # Ensure tests are

[PATCH] D42983: [clang-tidy] Add `readability-simd-intrinsics` check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay updated this revision to Diff 133083. MaskRay added a comment. Add test/clang-tidy/readability-simd-intrinsics.cpp Repository: rCTE Clang Tools Extra https://reviews.llvm.org/D42983 Files: clang-tidy/readability/CMakeLists.txt clang-tidy/readability/ReadabilityTidyModule.cpp

[PATCH] D42983: [clang-tidy] Add `readability-simd-intrinsics` check.

2018-02-06 Thread Fangrui Song via Phabricator via cfe-commits
MaskRay created this revision. Herald added subscribers: cfe-commits, hintonda, kristof.beyls, xazax.hun, mgorny, aemerson, klimek. Many architectures provide SIMD operations (e.g. x86 SSE/AVX, Power AltiVec/VSX, ARM NEON). It is common that SIMD code implementing the same algorithm, is written