AbortedChanges

Summary

  1. VPlanSLP.cpp - tidy implicit header dependencies. NFCI. (details)
  2. ArgumentPromotion.cpp - remove unused <string> include. NFCI. (details)
  3. SValExplainer.h - get APSInt values by const reference instead of value. NFCI. (details)
  4. [InstCombine] fold ctlz/cttz of bool types (details)
  5. [clang][NFC] Add IsAnyDestructorNoReturn field to CXXRecord instead of calculating it on demand (details)
  6. [ARM] Introduce t2WhileLoopStartTP (details)
  7. LoopUnrollAndJamPass.cpp - remove unused <vector> include. NFCI. (details)
  8. GVN.cpp - remove unused <vector> include. NFCI. (details)
  9. fix comment typos to cycle bots (details)
  10. DWARFDebugFrame.cpp - remove unused <string> include. NFCI. (details)
  11. MachOObjectFile.cpp - remove unused <string> include. NFCI. (details)
  12. RegUsageInfoPropagate.cpp - remove unused <string> and <map> includes. NFCI. (details)
  13. ProfiledCallGraph.h - remove unused <string> include. NFCI. (details)
  14. DetailedRecordsBackend.cpp - tidy implicit header dependencies. NFCI. (details)
  15. DetailedRecordsBackend.cpp - printSectionHeading - avoid std::string creation/copies. (details)
  16. DIPrinter.h - tidy implicit header dependencies. NFCI. (details)
  17. BoundsChecking.cpp - tidy implicit header dependencies. NFCI. (details)
  18. RawError.h - remove unused <string> include. NFCI. (details)
  19. [LoopUnroll] Test multi-exit runtime unrolling with predictable exit (NFC) (details)
Commit b013c58e82c67574b137d33d275c7b9328446b70 by llvm-dev
VPlanSLP.cpp - tidy implicit header dependencies. NFCI.

We don't use std::string and std::vector, but we do use std::pair and std::max.
The file was modifiedllvm/lib/Transforms/Vectorize/VPlanSLP.cpp
Commit 2477b498f2566d303d1b35c495f289512854ec00 by llvm-dev
ArgumentPromotion.cpp - remove unused <string> include. NFCI.
The file was modifiedllvm/lib/Transforms/IPO/ArgumentPromotion.cpp
Commit 7d7e913e096a915038dd41d0bfe5dd8827da1f60 by llvm-dev
SValExplainer.h - get APSInt values by const reference instead of value. NFCI.

Avoid unnecessary copies.
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/SValExplainer.h
Commit afd44bb6f29ca11b87b76349709fdee2ecd9d921 by spatel
[InstCombine] fold ctlz/cttz of bool types

https://alive2.llvm.org/ce/z/tX4pUT
The file was modifiedllvm/test/Transforms/InstCombine/intrinsics.ll
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
Commit 7ff3a89a7b94193638cb13f8a0a1ef70094c8263 by markus.boeck02
[clang][NFC] Add IsAnyDestructorNoReturn field to CXXRecord instead of calculating it on demand

This patch addresses a performance issue I noticed when using clang-12 to compile projects of mine. Even though the files weren't too large (around 1k cpp), the compiler was taking more than a minute to compile the source file, much longer than either GCC or MSVC.

Using a profiler it turned out the issue was the isAnyDestructorNoReturn function in CXXRecordDecl. In particular it being recursive, recalculating the property for every invocation, for every field and base class. This showed up in tracebacks in the profiler.

This patch instead adds IsAnyDestructorNoReturn as a Field to the data inside of CXXRecord and updates when a new base class, destructor, or record field member is added.

After this patch the problematic file of mine went from a compile time of 81s, down to 12s.

The patch itself should not change any functionality, just improve performance.

Differential Revision: https://reviews.llvm.org/D104182
The file was modifiedclang/lib/AST/DeclCXX.cpp
The file was modifiedclang/include/clang/AST/CXXRecordDeclDefinitionBits.def
The file was modifiedclang/include/clang/AST/DeclCXX.h
Commit bee2f618d599201aa0c91d0322f058cc697e0779 by david.green
[ARM] Introduce t2WhileLoopStartTP

This adds t2WhileLoopStartTP, similar to the t2DoLoopStartTP added in
D90591. It keeps a reference to both the tripcount register and the
element count register, so that the ARMLowOverheadLoops pass in the
backend can pick the correct one without having to search for it from
the operand of a VCTP.

Differential Revision: https://reviews.llvm.org/D103236
The file was modifiedllvm/lib/Target/ARM/MVETPAndVPTOptimisationsPass.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/memcall.ll
The file was modifiedllvm/test/CodeGen/Thumb2/LowOverheadLoops/wls-search-pred.mir
The file was modifiedllvm/lib/Target/ARM/ARMLowOverheadLoops.cpp
The file was modifiedllvm/test/CodeGen/Thumb2/mve-gather-scatter-optimisation.ll
The file was modifiedllvm/lib/Target/ARM/ARMBlockPlacement.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.cpp
The file was modifiedllvm/lib/Target/ARM/ARMBaseInstrInfo.h
The file was modifiedllvm/lib/Target/ARM/MVETailPredUtils.h
The file was modifiedllvm/test/CodeGen/Thumb2/mve-memtp-loop.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
Commit c14fd171fe77a829347e5fd7650632b3e6dd857c by llvm-dev
LoopUnrollAndJamPass.cpp - remove unused <vector> include. NFCI.
The file was modifiedllvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
Commit 56541d13779047d353f6665d33f58456f7943e6e by llvm-dev
GVN.cpp - remove unused <vector> include. NFCI.
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
Commit 5f9bc580d81ba0f8f2c2e8ba4ad13eca07bf1198 by thakis
fix comment typos to cycle bots
The file was modifiedlld/MachO/InputSection.h
The file was modifiedlld/MachO/Writer.cpp
The file was modifiedlld/MachO/SyntheticSections.cpp
Commit 35a12023f3925ab6161e0525f7570810e3ee04e7 by llvm-dev
DWARFDebugFrame.cpp - remove unused <string> include. NFCI.
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
Commit dbfa3d289bc435d8edab8ad0e1ebb81a01967575 by llvm-dev
MachOObjectFile.cpp - remove unused <string> include. NFCI.
The file was modifiedllvm/lib/Object/MachOObjectFile.cpp
Commit 2c4ee1e112a2806288d30aa3a70daae3ba99a2e5 by llvm-dev
RegUsageInfoPropagate.cpp - remove unused <string> and <map> includes. NFCI.
The file was modifiedllvm/lib/CodeGen/RegUsageInfoPropagate.cpp
Commit 3dc727e81b92f53533da1c617584f466a7dfb9cc by llvm-dev
ProfiledCallGraph.h - remove unused <string> include. NFCI.
The file was modifiedllvm/include/llvm/Transforms/IPO/ProfiledCallGraph.h
Commit a03d09f423a41098fe92286da8de25c5ade4ba25 by llvm-dev
DetailedRecordsBackend.cpp - tidy implicit header dependencies. NFCI.

We don't use <algorithm>, <set> or <vector>, but we do use std::pair (<utility>).
The file was modifiedllvm/lib/TableGen/DetailedRecordsBackend.cpp
Commit d1b57086d55afcfa94711a0b09c22a4113f6261f by llvm-dev
DetailedRecordsBackend.cpp - printSectionHeading - avoid std::string creation/copies.

Don't create std::string from constant c-strings or pass std::string by value - we can use StringRef instead.
The file was modifiedllvm/lib/TableGen/DetailedRecordsBackend.cpp
Commit 033e594c594b4ba32213997a64af97e0c2bf321c by llvm-dev
DIPrinter.h - tidy implicit header dependencies. NFCI.

We don't use <string> but we do use std::unique_ptr (<memory>) and llvm::Optional<>
The file was modifiedllvm/include/llvm/DebugInfo/Symbolize/DIPrinter.h
Commit 9efe89d82ff95e72d25772c5c7eb1f55e0b7492e by llvm-dev
BoundsChecking.cpp - tidy implicit header dependencies. NFCI.

We don't use <vector> but we do use std::pair (<utility>)
The file was modifiedllvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
Commit 4089e0bbfafd23704a1afef74f65369445a8b02b by llvm-dev
RawError.h - remove unused <string> include. NFCI.
The file was modifiedllvm/include/llvm/DebugInfo/PDB/Native/RawError.h
Commit 6ecc99210cdc87cff7d47484695b812196a9e905 by nikita.ppv
[LoopUnroll] Test multi-exit runtime unrolling with predictable exit (NFC)

The (prior to prologue insertion) predictable exit shouldn't get
folded here. Make sure it isn't...
The file was addedllvm/test/Transforms/LoopUnroll/runtime-loop-known-exit.ll