1. [clang-tidy] performance-inefficient-vector-operation: Support proto (details)
  2. [ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417 (details)
  3. gn build: Merge r371965 (details)
  4. [SVE][Inline-Asm] Add constraints for SVE predicate registers (details)
  5. Fix the rst doc, unbreak buildbot. (details)
  6. Change signature of __builtin_rotateright64 back to unsigned (details)
  7. [ELF][ARM] Fix -Werror buildbots NFC. (details)
  8. [clangd] Fix a crash when renaming operator. (details)
  9. Added return statement to fix compile and build warning: (details)
  10. [SLPVectorizer] Don't dereference a dyn_cast result. NFCI. (details)
Commit ad7a7cea89717daf6b56f35e4bc0b95afe0498a2 by hokein
[clang-tidy] performance-inefficient-vector-operation: Support proto
repeated field
Summary: Finds calls that add element to protobuf repeated field in a
loop without calling Reserve() before the loop. Calling Reserve() first
can avoid unnecessary memory reallocations.
A new option EnableProto is added to guard this feature.
Patch by Cong Liu!
Reviewers: gribozavr, alexfh, hokein, aaron.ballman
Reviewed By: hokein
Subscribers: lebedev.ri, xazax.hun, Eugene.Zelenko, cfe-commits
Tags: #clang, #clang-tools-extra
Differential Revision:
llvm-svn: 371963
The file was modifiedclang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.h
The file was modifiedclang-tools-extra/clang-tidy/performance/InefficientVectorOperationCheck.cpp
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.rst
The file was modifiedclang-tools-extra/test/clang-tidy/performance-inefficient-vector-operation.cpp
Commit ea99ce5e9b49cf7164355009435a29897934182b by peter.smith
[ELF][ARM] Implement --fix-cortex-a8 to fix erratum 657417
The --fix-cortex-a8 option implements a linker workaround for the
coretex-a8 erratum 657417. A summary of the erratum conditions is:
- A 32-bit Thumb-2 branch instruction B.w, Bcc.w, BL, BLX spans two 4KiB
- The destination of the branch is to the first 4KiB region.
- The instruction before the branch is a 32-bit Thumb-2 non-branch
The linker fix is to redirect the branch to a patch not in the first
4KiB region. The patch forwards the branch on to its target.
The cortex-a8, is an old CPU, with the first implementation of this
workaround in ld.bfd appearing in 2009. The cortex-a8 has been used in
early Android Phones and there are some critical applications that still
need to run on a cortex-a8 that have the erratum. The patch is applied
roughly 10 times on LLD and 20 on Clang when they are built with
--fix-cortex-a8 on an Arm system.
The formal erratum description is avaliable in the ARM Core Cortex-A8
(AT400/AT401) Errata Notice document. This is available from Arm on
request but it seems to be findable via a web search.
Differential Revision:
llvm-svn: 371965
The file was addedlld/test/ELF/arm-fix-cortex-a8-recognize.s
The file was modifiedlld/ELF/Writer.cpp
The file was addedlld/test/ELF/arm-fix-cortex-a8-nopatch.s
The file was modifiedlld/ELF/AArch64ErrataFix.cpp
The file was addedlld/ELF/ARMErrataFix.h
The file was modifiedlld/ELF/Config.h
The file was addedlld/test/ELF/arm-fix-cortex-a8-blx.s
The file was addedlld/test/ELF/arm-fix-cortex-a8-plt.s
The file was modifiedlld/ELF/Driver.cpp
The file was addedlld/test/ELF/arm-fix-cortex-a8-toolarge.s
The file was addedlld/test/ELF/arm-fix-cortex-a8-thunk.s
The file was addedlld/ELF/ARMErrataFix.cpp
The file was modifiedlld/ELF/CMakeLists.txt
The file was modifiedlld/ELF/
Commit b49bcea42048e145805f181620ddf0ed0af23610 by nicolasweber
gn build: Merge r371965
llvm-svn: 371966
The file was modifiedllvm/utils/gn/secondary/lld/ELF/
Commit e55b3bf40ef3e89fc31912102d975863b6501cf1 by kerry.mclaughlin
[SVE][Inline-Asm] Add constraints for SVE predicate registers
Summary: Adds the following inline asm constraints for SVE:
- Upl: One of the low eight SVE predicate registers, P0 to P7 inclusive
- Upa: SVE predicate register with full range, P0 to P15
Reviewers: t.p.northover, sdesmalen, rovka, momchil.velikov,
cameron.mcinally, greened, rengolin
Reviewed By: rovka
Subscribers: javed.absar, tschuett, rkruppe, psnobl, cfe-commits,
Tags: #llvm
Differential Revision:
llvm-svn: 371967
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/AArch64/aarch64-sve-asm.ll
The file was modifiedllvm/lib/IR/InlineAsm.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
Commit 3716547c5fe31115cf648950df201491c1858035 by hokein
Fix the rst doc, unbreak buildbot.
llvm-svn: 371968
The file was modifiedclang-tools-extra/docs/clang-tidy/checks/performance-inefficient-vector-operation.rst
Commit a1bc428b897900eb562df45622f01e6f94329dda by karl-johan.karlsson
Change signature of __builtin_rotateright64 back to unsigned
The signature of __builtin_rotateright64 was by misstake changed from
unsigned to signed in r360863, this patch will change it back to
unsigned as intended.
This fixes pr43309
Reviewers: efriedma, hans
Reviewed By: hans
Differential Revision:
llvm-svn: 371969
The file was modifiedclang/include/clang/Basic/Builtins.def
The file was modifiedclang/test/CodeGen/avr-builtins.c
Commit 1d74940b319c7b6aea49f94730e408586fd76a82 by peter.smith
[ELF][ARM] Fix -Werror buildbots NFC.
Provide a missing initializer to get rid of warning provoking buildbot
error: missing field 'rel' initializer
llvm-svn: 371970
The file was modifiedlld/ELF/ARMErrataFix.cpp
Commit af28bb65023ef989e9079717626a9e3080bb50d3 by hokein
[clangd] Fix a crash when renaming operator.
Summary: The renamelib uses a tricky way to calculate the end location
by relying on decl name, this is incorrect for the overloaded operator
(the name is
"operator++" instead of "++"), which will cause out-of-file offset.
We also disable renaming operator symbol, this case is tricky, and
renamelib doesnt handle it properly.
Reviewers: ilya-biryukov
Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision:
llvm-svn: 371971
The file was modifiedclang-tools-extra/clangd/refactor/Rename.cpp
The file was modifiedclang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h
The file was modifiedclang-tools-extra/clangd/unittests/RenameTests.cpp
Commit 5f349d56a84336e0c5f7b864129c27a6107a0e87 by sjoerd.meijer
Added return statement to fix compile and build warning:
llvm-rtdyld.cpp:966:7: warning: variable ‘Result’ set but not used
llvm-svn: 371972
The file was modifiedllvm/tools/llvm-rtdyld/llvm-rtdyld.cpp
Commit ae625d70cdb36485de9429b1ea26ae74e535a053 by llvm-dev
[SLPVectorizer] Don't dereference a dyn_cast result. NFCI.
The static analyzer is warning about potential null dereferences of
dyn_cast<> results - in these cases we can safely use cast<> directly as
we know that these cases should all be the correct type, which is why
its working atm and anyway cast<> will assert if they aren't.
llvm-svn: 371973
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp