Changes

Summary

  1. [VE] Don't halt on check failures (details)
  2. [VE] Enable libunwind runtime (details)
Commit 5f3d23fb166ddf278edf8564425ed989b7c8dd04 by simon.moll
[VE] Don't halt on check failures
The file was modifiedzorg/buildbot/builders/annotated/ve-linux.py (diff)
Commit a7bc3d8dc47f0bb301d48c22f6befee439e50e09 by simon.moll
[VE] Enable libunwind runtime
The file was modifiedzorg/buildbot/builders/annotated/ve-linux-steps.make (diff)

Summary

  1. [InstSimplify] Refactor invariant.group load folding (details)
  2. [lldb] [Utility/UriParser] Return results as 'struct URI' (details)
  3. Fix windows build for 6fa1b4ff4 (details)
  4. [analyzer] Add std::string checker (details)
  5. [analyzer] Allow cmake options to be passed to satest container (details)
  6. [gn build] Port e1fdec875ff1 (details)
  7. [lldb][NFC] Use llvm::Optional to refer to Optional (details)
  8. [ARM] Add a complex dotprod test case. (details)
  9. [SimplifyCFG] Sanity assert in iterativelySimplifyCFG (details)
  10. [InstCombine] Make TTI comment more forceful (NFC) (details)
  11. [SVE][CodeGen] Enable reciprocal estimates for scalable fdiv/fsqrt (details)
  12. [mlir] support interfaces in Python bindings (details)
  13. [mlir][python] Infer result types in generated constructors whenever possible (details)
  14. [lldb] Also print index of child when ValueCheck fails (details)
  15. [AArch64][Driver][SVE] Allow -msve-vector-bits=<n>+ syntax to mean no maximum vscale (details)
  16. [lldb] Modernize TestBitfields (details)
  17. [clang] Fix range for forward-declared enums (details)
  18. [clang] Traverse enum base specifier in RAV (details)
  19. [clang] Visit enum base specifiers in libIndex (details)
  20. [Test] Add test for PR52290 (details)
  21. [mlr][Linalg] NFC - Add option to hook vector.multi_reduction lowering to strategies. (details)
  22. [VE][NFC] correct bitmasking in popcnt expansion test (details)
  23. tsan: don't use symbol binding 10 (details)
  24. tsan: add another use-after-free race test (details)
  25. [mlir][linalg][bufferize] Fix crash when bufferizing CallOpInterface (details)
  26. [analyzer][NFCI] Move a block from `getBindingForElement` to separate functions (details)
  27. [analyzer] Retrieve incomplete array extent from its redeclaration. (details)
  28. [mlir][Vector] NFC - Add option to hook vector.transpose lowering to strategies. (details)
Commit 75384ecdf8049b6eb8934790f1239c0c6c0a2502 by nikita.ppv
[InstSimplify] Refactor invariant.group load folding

Currently strip.invariant/launder.invariant are handled by
constructing constant expressions with the intrinsics skipped.
This takes an alternative approach of accumulating the offset
using stripAndAccumulateConstantOffsets(), with a flag to look
through invariant.group intrinsics.

Differential Revision: https://reviews.llvm.org/D112382
The file was modifiedllvm/lib/IR/Value.cpp
The file was modifiedllvm/lib/Transforms/IPO/AttributorAttributes.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/include/llvm/IR/Value.h
Commit 0e5a4147e52470516af8c3c6644dca007a6ec4be by mgorny
[lldb] [Utility/UriParser] Return results as 'struct URI'

Return results of URI parsing as 'struct URI' instead of assigning them
via output parameters.

Differential Revision: https://reviews.llvm.org/D112314
The file was modifiedlldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp
The file was modifiedlldb/tools/lldb-server/Acceptor.cpp
The file was modifiedlldb/unittests/Host/ConnectionFileDescriptorTest.cpp
The file was modifiedlldb/source/Plugins/Platform/Android/PlatformAndroid.cpp
The file was modifiedlldb/unittests/Utility/UriParserTest.cpp
The file was modifiedlldb/unittests/Host/SocketTest.cpp
The file was modifiedlldb/source/Utility/UriParser.cpp
The file was modifiedlldb/include/lldb/Utility/UriParser.h
The file was modifiedlldb/source/Plugins/Platform/Android/PlatformAndroidRemoteGDBServer.cpp
The file was modifiedlldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp
Commit 1397c56d7ae844033d8ba9b7dee2b1b30a6b37c0 by pavel
Fix windows build for 6fa1b4ff4
The file was modifiedlldb/source/Plugins/Process/Windows/Common/ProcessWindows.cpp
Commit e1fdec875ff13504057fa01227458c9afa08222f by balazs.benics
[analyzer] Add std::string checker

This patch adds a checker checking `std::string` operations.
At first, it only checks the `std::string` single `const char *`
constructor for nullness.
If It might be `null`, it will constrain it to non-null and place a note
tag there.

Reviewed By: martong

Differential Revision: https://reviews.llvm.org/D111247
The file was modifiedclang/lib/StaticAnalyzer/Checkers/CMakeLists.txt
The file was modifiedclang/docs/analyzer/checkers.rst
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was addedclang/test/Analysis/std-string.cpp
The file was modifiedclang/test/Analysis/Inputs/system-header-simulator-cxx.h
The file was modifiedclang/test/Analysis/diagnostics/explicit-suppression.cpp
The file was addedclang/lib/StaticAnalyzer/Checkers/StringChecker.cpp
Commit caeef1995ab47387fa8da3e958afc5637b4e893d by balazs.benics
[analyzer] Allow cmake options to be passed to satest container

This patch selects all cmake options and passes them to global cmake
command while building LLVM inside satest docker container.

Prior to this, the cmake command was hard-coded and this would consume
a huge amount of memory while building. There was no support to pass
extra cmake options for the build, except for changing the command
manually. This patch allows testers to pass all "-D*" cmake options to
the build.

Reviewed By: vsavchenko

Differential Revision: https://reviews.llvm.org/D105447

Patch by: @manas (Manas Gupta)
The file was modifiedclang/utils/analyzer/entrypoint.py
Commit 9f283c2c6cae438347c2f59c69d15583abfbda7e by llvmgnsyncbot
[gn build] Port e1fdec875ff1
The file was modifiedllvm/utils/gn/secondary/clang/lib/StaticAnalyzer/Checkers/BUILD.gn
Commit 309fccdac936c49d0771878b3f4dd345a5e1c5d8 by Raphael Isemann
[lldb][NFC] Use llvm::Optional to refer to Optional

clang::Optional is just an alias used within Clang.
The file was modifiedlldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Commit e6df79575980414709b468ef67f5878e9ac8a2ce by david.green
[ARM] Add a complex dotprod test case.
The file was addedllvm/test/CodeGen/Thumb2/LowOverheadLoops/arm_cmplx_dot_prod_f32.ll
Commit a9b0776a81e84d8042716863842fe1f8adf39cad by mkazantsev
[SimplifyCFG] Sanity assert in iterativelySimplifyCFG

We observe a hang within iterativelySimplifyCFG due to infinite
loop execution. Currently, there is no limit to this loop, so
in case of bug it just works forever. This patch adds an assert
that will break it after 1000 iterations if it didn't converge.
The file was modifiedllvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
Commit 5fd55b1aaa11f782a2a0455c5fe00602051eba11 by nikita.ppv
[InstCombine] Make TTI comment more forceful (NFC)

To save people not familiar with InstCombine from creating patches
that are immediately rejected by policy.
The file was modifiedllvm/include/llvm/Transforms/InstCombine/InstCombiner.h
Commit 1f49b71fe5fa061065a30c89e6e95b7d123e4bb5 by kerry.mclaughlin
[SVE][CodeGen] Enable reciprocal estimates for scalable fdiv/fsqrt

This patch enables the use of reciprocal estimates for SVE
when both the -Ofast and -mrecip flags are used.

Reviewed By: david-arm, paulwalker-arm

Differential Revision: https://reviews.llvm.org/D111657
The file was addedllvm/test/CodeGen/AArch64/sve-fp-reciprocal.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64SVEInstrInfo.td
Commit 14c9207063bb00823a5126131e50c93f6e288bd3 by zinenko
[mlir] support interfaces in Python bindings

Introduce the initial support for operation interfaces in C API and Python
bindings. Interfaces are a key component of MLIR's extensibility and should be
available in bindings to make use of full potential of MLIR.

This initial implementation exposes InferTypeOpInterface all the way to the
Python bindings since it can be later used to simplify the operation
construction methods by inferring their return types instead of requiring the
user to do so. The general infrastructure for binding interfaces is defined and
InferTypeOpInterface can be used as an example for binding other interfaces.

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D111656
The file was addedmlir/test/python/lib/PythonTestModule.cpp
The file was modifiedmlir/lib/Bindings/Python/MainModule.cpp
The file was addedmlir/test/python/lib/CMakeLists.txt
The file was removedmlir/python/mlir/dialects/PythonTest.td
The file was addedmlir/test/python/CMakeLists.txt
The file was addedmlir/lib/Bindings/Python/IRInterfaces.cpp
The file was modifiedmlir/docs/CAPI.md
The file was modifiedmlir/test/python/python_test_ops.td
The file was modifiedmlir/lib/CAPI/CMakeLists.txt
The file was modifiedmlir/python/mlir/dialects/python_test.py
The file was modifiedmlir/python/CMakeLists.txt
The file was addedmlir/test/python/lib/PythonTestDialect.h
The file was modifiedutils/bazel/llvm-project-overlay/mlir/BUILD.bazel
The file was modifiedmlir/docs/Bindings/Python.md
The file was modifiedmlir/test/python/dialects/python_test.py
The file was modifiedmlir/test/CMakeLists.txt
The file was modifiedmlir/CMakeLists.txt
The file was modifiedmlir/lib/Bindings/Python/IRModule.h
The file was addedmlir/test/python/lib/PythonTestDialect.cpp
The file was addedmlir/include/mlir-c/Interfaces.h
The file was addedmlir/lib/CAPI/Interfaces/CMakeLists.txt
The file was addedmlir/test/python/lib/PythonTestCAPI.cpp
The file was addedmlir/test/python/lib/PythonTestCAPI.h
The file was addedmlir/lib/CAPI/Interfaces/Interfaces.cpp
The file was addedmlir/include/mlir/CAPI/Interfaces.h
Commit 2995d29bb42729043e707161bd7a7e4e428afbcf by zinenko
[mlir][python] Infer result types in generated constructors whenever possible

In several cases, operation result types can be unambiguously inferred from
operands and attributes at operation construction time. Stop requiring the user
to provide these types as arguments in the ODS-generated constructors in Python
bindings. In particular, handle the SameOperandAndResultTypes and
FirstAttrDerivedResultType traits as well as InferTypeOpInterface using the
recently added interface support. This is a significant usability improvement
for IR construction, similar to what C++ ODS provides.

Depends On D111656

Reviewed By: gysit

Differential Revision: https://reviews.llvm.org/D111811
The file was modifiedmlir/test/python/dialects/math.py
The file was modifiedmlir/test/python/dialects/shape.py
The file was modifiedmlir/test/python/ir/dialects.py
The file was modifiedmlir/tools/mlir-tblgen/OpPythonBindingGen.cpp
The file was modifiedmlir/test/mlir-tblgen/op-python-bindings.td
The file was modifiedmlir/test/python/dialects/python_test.py
The file was modifiedmlir/test/python/python_test_ops.td
The file was modifiedmlir/include/mlir/TableGen/Operator.h
The file was modifiedmlir/python/mlir/dialects/linalg/opdsl/lang/emitter.py
The file was modifiedmlir/lib/Bindings/Python/IRModule.h
Commit a24b2b6aa06a001a98328acf624a5a8b1ab4139a by Raphael Isemann
[lldb] Also print index of child when ValueCheck fails

Makes the test failure reason more obvious in cases where we have unnamed fields
or large records.
The file was modifiedlldb/packages/Python/lldbsuite/test/lldbtest.py
Commit 0ce46a1d43c6c2e0df429a6a80848d4acc781eb6 by bradley.smith
[AArch64][Driver][SVE] Allow -msve-vector-bits=<n>+ syntax to mean no maximum vscale

This patch splits the existing SveVectorBits LangOpt into VScaleMin and
VScaleMax LangOpts such that we can represent such an option. The cc1
option has also been split into -mvscale-{min,max}=<n> options so that the
cc1 arguments better reflect the vscale_range IR attribute.

Differential Revision: https://reviews.llvm.org/D111790
The file was modifiedclang/test/CodeGen/aarch64-sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.cpp
The file was modifiedclang/test/CodeGen/arm-sve-vector-bits-vscale-range.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-globals.c
The file was modifiedclang/test/Sema/attr-arm-sve-vector-bits.c
The file was modifiedclang/test/SemaCXX/aarch64-sve-explicit-casts-fixed-size.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/test/SemaCXX/aarch64-sve-lax-vector-conversions.cpp
The file was modifiedclang/lib/Basic/Targets/AArch64.cpp
The file was modifiedclang/lib/Driver/ToolChains/Clang.cpp
The file was modifiedclang/test/Sema/aarch64-sve-lax-vector-conversions.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-call.c
The file was modifiedclang/test/CodeGen/aarch64-sve-acle-__ARM_FEATURE_SVE_VECTOR_OPERATORS.c
The file was modifiedclang/test/CodeGenCXX/aarch64-sve-fixedtypeinfo.cpp
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-codegen.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-bitcast.c
The file was modifiedclang/test/Sema/aarch64-sve-explicit-casts-fixed-size.c
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-types.c
The file was modifiedclang/include/clang/Driver/Options.td
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/CodeGen/aarch64-sve-vector-bits-codegen.c
The file was modifiedclang/test/CodeGenCXX/aarch64-mangle-sve-fixed-vectors.cpp
The file was modifiedclang/test/SemaCXX/attr-arm-sve-vector-bits.cpp
The file was modifiedclang/test/CodeGen/attr-arm-sve-vector-bits-cast.c
The file was modifiedclang/test/Driver/aarch64-sve-vector-bits.c
The file was modifiedclang/include/clang/Basic/LangOptions.def
The file was modifiedclang/test/Preprocessor/aarch64-target-features.c
Commit 025f6ca7c469b6412b58b69fab17092548d5f6c1 by Raphael Isemann
[lldb] Modernize TestBitfields

This just does the usual modernizations such as using new test functions where
possible, clang-formatting the source, avoiding manual process setup,
assert improvements (` assertTrue(a == b) -> assertEqual(a, b)`).

This doesn't add any new test cases but removes some dependence on unrelated
features where possible (e.g., structs declared in functions, using the standard
library to printf stuff or initialize objects).
The file was modifiedlldb/test/API/lang/c/bitfields/TestBitfields.py
The file was modifiedlldb/test/API/lang/c/bitfields/main.c
Commit ffa96f022c3ff03888afca8fdda766fe556eb9c5 by kadircet
[clang] Fix range for forward-declared enums

This used to span just the `[[enum foo]] : bar;` in the absence of a
body. This patch expands the range to cover the base specifier, so that the
various consumers can detect the full range of the decl.

Differential Revision: https://reviews.llvm.org/D111259
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/unittests/AST/DeclTest.cpp
The file was modifiedclang/include/clang/AST/Decl.h
Commit 4e4511df8d33a6fc02d5e46c681855db495187cd by kadircet
[clang] Traverse enum base specifier in RAV
The file was modifiedclang-tools-extra/clangd/unittests/SemanticHighlightingTests.cpp
The file was modifiedclang/include/clang/AST/RecursiveASTVisitor.h
The file was modifiedclang/unittests/AST/RecursiveASTVisitorTest.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SelectionTests.cpp
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
Commit 9ab9caf214f47ea0ccf5cd3eb0aef2fcb88bd6e1 by kadircet
[clang] Visit enum base specifiers in libIndex

Fixes https://github.com/clangd/clangd/issues/878.

Differential Revision: https://reviews.llvm.org/D111260
The file was modifiedclang-tools-extra/clangd/unittests/XRefsTests.cpp
The file was modifiedclang/unittests/Index/IndexTests.cpp
The file was modifiedclang/lib/Index/IndexDecl.cpp
Commit 31822e0530be06861c0c5d2becd6b8f27705d0e1 by mkazantsev
[Test] Add test for PR52290

Demonstrates hang in iterativelySimplifyCFG.
The file was addedllvm/test/Transforms/SimplifyCFG/pr52290.ll
Commit 176a0ea535d4403b3a8482153f366e55141c7e50 by nicolas.vasilache
[mlr][Linalg] NFC - Add option to hook vector.multi_reduction lowering to strategies.

Differential Revision: https://reviews.llvm.org/D112414
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/test/lib/Dialect/Linalg/TestConvVectorization.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorMultiDimReductionTransforms.cpp
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
Commit bb5e35833fe722a24a31ce691e6c340ddc2fc4ae by simon.moll
[VE][NFC] correct bitmasking in popcnt expansion test
The file was modifiedllvm/test/CodeGen/VE/Scalar/cttz.ll
Commit 75a08b1ba4c105d7a63fac93ea70f5546a2dd2d7 by dvyukov
tsan: don't use symbol binding 10

Building Go programs with the current runtime fails with:

loadelf: race_linux_amd64: malformed elf file:
_ZZN6__tsan15RestoreAddrImpl5ApplyINS_11MappingGo48EEEmmE6ranges: invalid symbol binding 10

Go linker does not understand ELF in all its generality.
Don't use static const data in inline methods.

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D112434
The file was modifiedcompiler-rt/lib/tsan/rtl/tsan_platform.h
Commit 269aa74aed43780b88f32f89f7407da539da15d5 by dvyukov
tsan: add another use-after-free race test

Add a test where a race with free is called during the free itself
(we only have tests where a race with free is caught during the other memory acces).

Reviewed By: melver

Differential Revision: https://reviews.llvm.org/D112433
The file was addedcompiler-rt/test/tsan/free_race3.c
Commit 7bce6bb34b70fb94871fc00f164b2b8f151cf309 by springerm
[mlir][linalg][bufferize] Fix crash when bufferizing CallOpInterface

Do not erase those ops during the traversal. Also improve error handling.

Differential Revision: https://reviews.llvm.org/D112405
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/ComprehensiveBufferize.h
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp
Commit 44e803ef6d41770adf309960e37bcc6a75dbbe2c by dpetrov
[analyzer][NFCI] Move a block from `getBindingForElement` to separate functions

Summary:
1. Improve readability by moving deeply nested block of code from RegionStoreManager::getBindingForElement to new separate functions:
- getConstantValFromConstArrayInitializer;
- getSValFromInitListExpr.
2. Handle the case when index is a symbolic value. Write specific test cases.
3. Add test cases when there is no initialization expression presented.
This patch implies to make next patches clearer and easier for review process.

Differential Revision: https://reviews.llvm.org/D106681
The file was modifiedclang/test/Analysis/initialization.c
The file was modifiedclang/lib/StaticAnalyzer/Core/RegionStore.cpp
The file was modifiedclang/test/Analysis/initialization.cpp
Commit 3b1165ba3d15de83699be3ff4be3b6adf4d6e977 by dpetrov
[analyzer] Retrieve incomplete array extent from its redeclaration.

Summary: Fix a case when the extent can not be retrieved correctly from incomplete array declaration. Use redeclaration to get the array extent.

Differential Revision: https://reviews.llvm.org/D111542
The file was modifiedclang/test/Analysis/initialization.c
The file was modifiedclang/lib/StaticAnalyzer/Core/RegionStore.cpp
Commit d054b80bd3ab1a78d1a870f941024429273d2a83 by nicolas.vasilache
[mlir][Vector] NFC - Add option to hook vector.transpose lowering to strategies.

This revision also moves some code around to improve overall structure.

Differential Revision: https://reviews.llvm.org/D112437
The file was modifiedmlir/lib/Dialect/Linalg/Transforms/LinalgStrategyPasses.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVMPass.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
The file was modifiedmlir/lib/Conversion/VectorToLLVM/ConvertVectorToLLVM.cpp
The file was modifiedmlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorTransforms.h
The file was modifiedmlir/lib/Dialect/Vector/VectorMultiDimReductionTransforms.cpp
The file was modifiedmlir/lib/Dialect/Vector/VectorTransforms.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorOps.h
The file was modifiedmlir/test/lib/Dialect/Vector/TestVectorTransforms.cpp
The file was modifiedmlir/test/lib/Dialect/Linalg/TestConvVectorization.cpp
The file was modifiedmlir/include/mlir/Dialect/Vector/VectorRewritePatterns.h