SuccessChanges

Summary

  1. [Coverage] Add support for Branch Coverage in LLVM Source-Based Code Coverage (details)
  2. [Clang] Add AArch64 VCMLA LANE variants. (details)
  3. [RegisterClassInfo] Return non-zero for RC without allocatable reg (details)
  4. [mlir] Remove LLVMType, LLVM dialect types now derive Type directly (details)
  5. [clang-tidy] Update uses of deprecated Transformer APIs in StringFindStrContainsCheck. (details)
Commit 9f2967bcfe2f7d1fc02281f0098306c90c2c10a5 by a-phipps
[Coverage] Add support for Branch Coverage in LLVM Source-Based Code Coverage

This is an enhancement to LLVM Source-Based Code Coverage in clang to track how
many times individual branch-generating conditions are taken (evaluate to TRUE)
and not taken (evaluate to FALSE).  Individual conditions may comprise larger
boolean expressions using boolean logical operators.  This functionality is
very similar to what is supported by GCOV except that it is very closely
anchored to the ASTs.

Differential Revision: https://reviews.llvm.org/D84467
The file was modifiedclang/test/CoverageMapping/macros.c
The file was addedllvm/test/tools/llvm-cov/branch-export-json.test
The file was modifiedclang/lib/CodeGen/CoverageMappingGen.cpp
The file was addedclang/test/CoverageMapping/branch-mincounters.cpp
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
The file was modifiedllvm/test/tools/llvm-cov/Inputs/binary-formats.canonical.json
The file was modifiedllvm/test/tools/llvm-cov/ignore-filename-regex.test
The file was modifiedclang/test/CoverageMapping/coroutine.cpp
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.o32l
The file was addedclang/test/CoverageMapping/branch-constfolded.cpp
The file was modifiedclang/test/CoverageMapping/switch.cpp
The file was addedllvm/test/tools/llvm-cov/branch-c-general.c
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-macros.proftext
The file was modifiedclang/test/Profile/c-general.c
The file was modifiedllvm/docs/CoverageMappingFormat.rst
The file was modifiedclang/test/CoverageMapping/switchmacro.c
The file was modifiedllvm/tools/llvm-cov/CoverageExporterLcov.cpp
The file was modifiedllvm/tools/llvm-cov/SourceCoverageView.cpp
The file was addedllvm/test/tools/llvm-cov/branch-showBranchPercentage.c
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp
The file was modifiedllvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
The file was modifiedclang/test/Profile/Inputs/c-general.proftext
The file was modifiedclang/test/CoverageMapping/macroscopes.cpp
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMapping.cpp
The file was modifiedclang/test/CoverageMapping/label.cpp
The file was modifiedclang/test/CoverageMapping/loopmacro.c
The file was addedllvm/test/tools/llvm-cov/branch-noShowBranch.test
The file was modifiedclang/test/CoverageMapping/unreachable-macro.c
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.o32l
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-templates.o32l
The file was addedclang/test/CoverageMapping/branch-templates.cpp
The file was modifiedclang/test/CoverageMapping/moremacros.c
The file was modifiedllvm/tools/llvm-cov/CoverageReport.cpp
The file was modifiedclang/test/CoverageMapping/while.c
The file was modifiedllvm/tools/llvm-cov/SourceCoverageView.h
The file was addedclang/test/Profile/branch-profdup.cpp
The file was addedllvm/test/tools/llvm-cov/branch-logical-mixed.cpp
The file was modifiedclang/test/Profile/cxx-lambda.cpp
The file was modifiedllvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-templates.proftext
The file was addedclang/test/CoverageMapping/branch-macros.cpp
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-c-general.o32l
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-logical-mixed.proftext
The file was modifiedllvm/tools/llvm-cov/CoverageSummaryInfo.cpp
The file was modifiedclang/test/CoverageMapping/macro-expressions.cpp
The file was modifiedclang/test/CoverageMapping/continue.c
The file was modifiedclang/test/CoverageMapping/if.cpp
The file was modifiedclang/test/CoverageMapping/logical.cpp
The file was modifiedllvm/include/llvm/ProfileData/InstrProfData.inc
The file was modifiedllvm/tools/llvm-cov/SourceCoverageViewHTML.h
The file was modifiedllvm/tools/llvm-cov/SourceCoverageViewText.h
The file was modifiedllvm/tools/llvm-cov/CoverageExporterJson.cpp
The file was modifiedclang/lib/CodeGen/CoverageMappingGen.h
The file was modifiedclang/test/CoverageMapping/loops.cpp
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-c-general.proftext
The file was modifiedllvm/test/tools/llvm-cov/Inputs/showExpansions.json
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-macros.o32l
The file was modifiedllvm/tools/llvm-cov/SourceCoverageViewText.cpp
The file was modifiedllvm/docs/CommandGuide/llvm-cov.rst
The file was addedllvm/test/tools/llvm-cov/Inputs/branch-showBranchPercentage.proftext
The file was modifiedllvm/include/llvm/ProfileData/Coverage/CoverageMapping.h
The file was modifiedclang/test/CoverageMapping/return.c
The file was modifiedclang/test/CoverageMapping/test.c
The file was modifiedllvm/include/llvm/ProfileData/InstrProf.h
The file was modifiedclang/test/CoverageMapping/macro-expansion.c
The file was modifiedclang/lib/CodeGen/CodeGenFunction.h
The file was addedllvm/test/tools/llvm-cov/branch-export-lcov.test
The file was modifiedclang/docs/SourceBasedCodeCoverage.rst
The file was addedclang/test/Profile/branch-logical-mixed.cpp
The file was addedllvm/test/tools/llvm-cov/branch-macros.cpp
The file was modifiedllvm/tools/llvm-cov/CoverageSummaryInfo.h
The file was addedclang/test/CoverageMapping/branch-logical-mixed.cpp
The file was modifiedllvm/tools/llvm-cov/CodeCoverage.cpp
The file was modifiedclang/lib/CodeGen/CodeGenFunction.cpp
The file was addedllvm/test/tools/llvm-cov/branch-templates.cpp
The file was modifiedclang/lib/CodeGen/CGStmt.cpp
The file was modifiedcompiler-rt/include/profile/InstrProfData.inc
The file was modifiedclang/lib/CodeGen/CodeGenPGO.cpp
The file was modifiedllvm/tools/llvm-cov/CoverageViewOptions.h
Commit 51d5991f04dda76c2f07123569b5c31ed3dfcfe8 by flo
[Clang] Add AArch64 VCMLA LANE variants.

This patch adds the LANE variants for VCMLA on AArch64 as defined in
"Arm Neon Intrinsics Reference for ACLE Q3 2020" [1]

This patch also updates `dup_typed` to accept constant type strings directly.

Based on a patch by Tim Northover.

[1] https://developer.arm.com/documentation/ihi0073/latest

Reviewed By: SjoerdMeijer

Differential Revision: https://reviews.llvm.org/D93014
The file was modifiedclang/test/CodeGen/aarch64-neon-vcmla.c
The file was modifiedclang/include/clang/Basic/arm_neon.td
The file was modifiedclang/utils/TableGen/NeonEmitter.cpp
Commit f26bc0ddd508edad7e3838850dfcb6b960d6e681 by Jinsong Ji
[RegisterClassInfo] Return non-zero for RC without allocatable reg

In some case, the RC may have 0 allocatable reg.
eg: VRSAVERC in PowerPC, which has only 1 reg, but it is also reserved.

The curreent implementation will keep calling the computePSetLimit because
getRegPressureSetLimit assume computePSetLimit will return a non-zero value.

The fix simply early return the value from TableGen for such special case.

Reviewed By: RKSimon

Differential Revision: https://reviews.llvm.org/D92907
The file was modifiedllvm/lib/CodeGen/RegisterClassInfo.cpp
The file was modifiedllvm/test/CodeGen/PowerPC/compute-regpressure.ll
Commit c69c9e0f0fd2e5b72c4a1947822a4961b8630123 by zinenko
[mlir] Remove LLVMType, LLVM dialect types now derive Type directly

BEGIN_PUBLIC
[mlir] Remove LLVMType, LLVM dialect types now derive Type directly

This class has become a simple `isa` hook with no proper functionality.
Removing will allow us to eventually make the LLVM dialect type infrastructure
open, i.e., support non-LLVM types inside container types, which itself will
make the type conversion more progressive.

Introduce a call `LLVM::isCompatibleType` to be used instead of
`isa<LLVMType>`. For now, this is strictly equivalent.
END_PUBLIC

Depends On D93681

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D93713
The file was modifiedmlir/docs/Tutorials/Toy/Ch-6.md
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
The file was modifiedmlir/lib/Target/LLVMIR/TypeTranslation.cpp
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/ConvertLaunchFuncToLLVMCalls.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypeSyntax.cpp
The file was modifiedmlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOps.td
The file was modifiedmlir/lib/Conversion/AsyncToLLVM/AsyncToLLVM.cpp
The file was modifiedmlir/include/mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/TypeDetail.h
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/ROCDLOps.td
The file was modifiedmlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
The file was modifiedmlir/lib/Conversion/GPUCommon/OpToFuncCallLowering.h
The file was modifiedmlir/lib/Conversion/LinalgToLLVM/LinalgToLLVM.cpp
The file was modifiedmlir/lib/Conversion/GPUToVulkan/ConvertLaunchFuncToVulkanCalls.cpp
The file was modifiedmlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
The file was modifiedmlir/lib/Target/LLVMIR/ModuleTranslation.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/tools/mlir-tblgen/LLVMIRConversionGen.cpp
The file was modifiedmlir/lib/Conversion/VectorToROCDL/VectorToROCDL.cpp
The file was modifiedmlir/lib/Conversion/ArmSVEToLLVM/ArmSVEToLLVM.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/NVVMDialect.cpp
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMTypes.h
The file was modifiedmlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp
The file was modifiedmlir/include/mlir/Target/LLVMIR/TypeTranslation.h
The file was modifiedmlir/lib/Conversion/GPUCommon/GPUOpsLowering.h
The file was modifiedmlir/test/Dialect/LLVMIR/invalid.mlir
The file was modifiedmlir/include/mlir/Dialect/LLVMIR/LLVMOpBase.td
The file was modifiedmlir/lib/Target/LLVMIR/ConvertFromLLVMIR.cpp
The file was modifiedmlir/lib/Dialect/LLVMIR/IR/LLVMTypes.cpp
The file was modifiedmlir/include/mlir/Target/LLVMIR/ModuleTranslation.h
Commit 9eb2284f60391eca246f12398d247fc1555d6bf5 by yitzhakm
[clang-tidy] Update uses of deprecated Transformer APIs in StringFindStrContainsCheck.

Migrates `change` to `changeTo`; changes to new constructor API (2-arg construct
+ `setRule`); refactors use of `addInclude` to newer version.

Differential Revision: https://reviews.llvm.org/D93695
The file was modifiedclang-tools-extra/clang-tidy/abseil/StringFindStrContainsCheck.cpp