Commit
c0fdc748871f44a2c98cdf54abf2dc8fe2c172aa
by Lang Hames[ORC] Add helper functions for running finalize / dealloc actions.
runFinalizeActions takes an AllocActions vector and attempts to run its finalize actions. If any finalize action fails then all paired dealloc actions up to the failing pair are run, and the error(s) returned. If all finalize actions succeed then a vector containing the dealloc actions is returned.
runDeallocActions takes a vector<WrapperFunctionCall> containing dealloc action calls and runs them all, returning any error(s).
These helpers are intended to simplify the implementation of JITLinkMemoryManager::InFlightAlloc::finalize and JITLinkMemoryManager::deallocate overrides by taking care of execution (and potential roll-back) of allocation actions.
|
 | llvm/lib/ExecutionEngine/Orc/Shared/CMakeLists.txt |
 | llvm/lib/ExecutionEngine/Orc/Shared/AllocationActions.cpp |
 | llvm/lib/ExecutionEngine/JITLink/JITLinkMemoryManager.cpp |
 | llvm/tools/llvm-jitlink/llvm-jitlink.cpp |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/AllocationActions.h |
 | llvm/include/llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h |
Commit
92d55e7336db8597e90eefcdd72bc33ef553a454
by npopov[MemoryBuiltins] Remove isNoAliasFn() in favor of isNoAliasCall()
We currently have two similar implementations of this concept: isNoAliasCall() only checks for the noalias return attribute. isNoAliasFn() also checks for allocation functions.
We should switch to only checking the attribute. SLC is responsible for inferring the noalias return attribute for non-new allocation functions (with a missing case fixed in https://github.com/llvm/llvm-project/commit/348bc76e3548c52dbcd442590ca0a7f5b09b7534). For new, clang is responsible for setting the attribute, if -fno-assume-sane-operator-new is not passed.
Differential Revision: https://reviews.llvm.org/D116800
|
 | llvm/test/Transforms/GVN/malloc-load-removal.ll |
 | llvm/lib/Analysis/MemoryDependenceAnalysis.cpp |
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/lib/Transforms/IPO/AttributorAttributes.cpp |
 | llvm/unittests/Analysis/MemoryBuiltinsTest.cpp |
 | llvm/include/llvm/Analysis/MemoryBuiltins.h |
 | llvm/lib/Analysis/MemoryBuiltins.cpp |
Commit
7a161eb43b280a6194fef5b65a81ef59921ebf02
by leevince[lld-macho] Fix shadowed variable
This fixes a windows build failure from D115416.
|
 | lld/MachO/Writer.cpp |
Commit
5ff916ab72b26e667bd5d2e4a762650ba479c781
by Lang Hames[ORC][JITLink] Add dependence on OrcShared to JITLink.
JITLink depends on OrcShared as of c0fdc748871. This should fix the build failure at https://lab.llvm.org/buildbot#builders/61/builds/19796.
|
 | llvm/lib/ExecutionEngine/JITLink/CMakeLists.txt |
Commit
5c2e7c9ca043d92bed75b08e653fb47c384edd13
by mydeveloperday[clang-format] Ensure we can correctly parse lambda in the template argument list
https://github.com/llvm/llvm-project/issues/46505
The presence of a lambda in an argument template list ignored the [] as a lambda at all, this caused the contents of the <> to be incorrectly analyzed.
``` struct Y : X < [] { return 0; } > {}; ``` Fixes: #46505
Reviewed By: curdeius
Differential Revision: https://reviews.llvm.org/D116806
|
 | clang/lib/Format/UnwrappedLineParser.cpp |
 | clang/unittests/Format/FormatTest.cpp |
Commit
4a4b8e4f99e2a82286b0595d561a51e7ad1945d2
by hokein.wu[AST] Add more source information for DecltypeTypeLoc.
Adds the paren source location, and removes the hack in clangd.
Differential Revision: https://reviews.llvm.org/D116793
|
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/lib/Sema/SemaType.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang/unittests/AST/SourceLocationTest.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/lib/Parse/ParseDeclCXX.cpp |
 | clang-tools-extra/clangd/Selection.cpp |
 | clang/include/clang/AST/TypeLoc.h |
 | clang/lib/Sema/SemaCXXScopeSpec.cpp |
 | clang-tools-extra/clangd/unittests/SelectionTests.cpp |
Commit
38916195c9ce281a44a3378da02c1abdd199db2d
by llvmgnsyncbot[gn build] Port c0fdc748871f
|
 | llvm/utils/gn/secondary/llvm/lib/ExecutionEngine/Orc/Shared/BUILD.gn |
Commit
ad1b8772cf6b16c1162bb8ff425679f5ff046ae9
by flo[SCEVExpander] Only create multiplication if needed.
9345ab3a4550 updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to compute |Step| * Trip count if the result of the multiplication is actually used.
Sink the multiplication into ComputeEndCheck, so it is only created when there's an actual check.
|
 | llvm/test/Transforms/LoopVersioning/wrapping-pointer-versioning.ll |
 | llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
Commit
27ea0c4e7234f3b15cbbb696e6c408af7141f342
by sam.mccall[Parse] Use empty RecoveryExpr when if/while/do/switch conditions fail to parse
This allows the body to be parsed. An special-case that would replace a missing if condition with OpaqueValueExpr was removed as it's now redundant (unless recovery-expr is disabled).
For loops are not handled at this point, as the parsing is more complicated.
Differential Revision: https://reviews.llvm.org/D113752
|
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Parse/ParseExprCXX.cpp |
 | clang/test/AST/ast-dump-invalid.cpp |
 | clang/lib/Sema/TreeTransform.h |
 | clang/test/Parser/cxx0x-attributes.cpp |
 | clang/test/SemaCXX/constexpr-function-recovery-crash.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/test/SemaCXX/condition.cpp |
 | clang/lib/AST/ExprConstant.cpp |
 | clang/lib/Parse/ParseStmt.cpp |
 | clang/lib/Sema/SemaStmt.cpp |
 | clang/include/clang/Parse/Parser.h |
 | clang/test/AST/loop-recovery.cpp |
 | clang/test/Sema/complex-int.c |
Commit
16fd5c278488b3d3275afc381a00ba0b51b070ee
by sam.mccall[clangd] Support configuration of inlay hints.
The idea is that the feature will always be advertised at the LSP level, but depending on config we'll return partial or no responses.
We try to avoid doing the analysis for hints we're not going to return.
Examples of syntax: ``` InlayHints: Enabled: No --- InlayHints: ParameterNames: No --- InlayHints: ParameterNames: Yes DeducedTypes: Yes ```
Differential Revision: https://reviews.llvm.org/D116713
|
 | clang-tools-extra/clangd/ConfigFragment.h |
 | clang-tools-extra/clangd/Config.h |
 | clang-tools-extra/clangd/ConfigCompile.cpp |
 | clang-tools-extra/clangd/unittests/InlayHintTests.cpp |
 | clang-tools-extra/clangd/ConfigYAML.cpp |
 | clang-tools-extra/clangd/unittests/ConfigYAMLTests.cpp |
 | clang-tools-extra/clangd/InlayHints.cpp |
Commit
8e773f4491419c84276d9abdfef09aa2f818498a
by david.sherwood[NFC] Add tests for splats of illegal integer vector types
Differential Revision: https://reviews.llvm.org/D116810
|
 | llvm/test/CodeGen/AArch64/sve-vector-splat.ll |
Commit
a8586b573e07ec428d03cd4f05eb15b28f742482
by Shraiysh.Vaishay[mlir][OpenMP] Change the syntax of omp.atomic.read op
This patch changes the syntax of omp.atomic.read to take the address of destination, instead of having the value in a result. This will allow using omp.atomic.read operation within an omp.atomic.capture operation thus making its implementation less complex.
Reviewed By: peixin
Differential Revision: https://reviews.llvm.org/D116396
|
 | mlir/test/Dialect/OpenMP/ops.mlir |
 | mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp |
 | mlir/test/Dialect/OpenMP/invalid.mlir |
 | mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td |
 | mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp |
 | mlir/test/Target/LLVMIR/openmp-llvm.mlir |
Commit
eee993ae4cc77a00681141b044b20ebd06d2aad2
by cullen.rhodes[AArch64][SVE] Fold predicate into compare
Codegen of added testcase before this patch:
ptrue p0.s cmpgt p1.s, p0/z, z0.s, z1.s cmpge p2.s, p0/z, z2.s, z1.s and p0.b, p0/z, p1.b, p2.b ret
Patterns originally authored by Will Lovett.
Reviewed By: david-arm
Differential Revision: https://reviews.llvm.org/D116749
|
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/test/CodeGen/AArch64/sve-intrinsics-int-compares.ll |
Commit
e3c84fb9481894efad345b91ff97a8898a52e841
by david.sherwood[LoopVectorize] Add support for tail folding using scalable vectors
This patch fixes up an issue with InnerLoopVectorizer::getOrCreateVectorTripCount whereby we weren't correctly generating the runtime trip count for scalable vectors when tail-folding.
It also removes some asserts in the tail-folding path for cases when the VF is not scalable.
In this patch I have only permitted tail-folding to be enabled explicitly for scalable vectors when the user has specified one of the following flags:
-prefer-predicate-over-epilogue=predicate-dont-vectorize -prefer-predicate-over-epilogue=predicate-else-scalar-epilogue
For now it's best not to enable tail-folding with scalable vectors for low trip counts or when optimising for code size, since there has been no analysis on whether this is worth it.
Various tests have been added here:
Transforms/LoopVectorize/AArch64/sve-tail-folding.ll Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll
The tests cannot be target independent because they require masked load/store support, i.e. TTI.isLegalMaskedLoad and TTI.isLegalMaskedStore need to return true.
Differential Revision: https://reviews.llvm.org/D113003
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding-forced.ll |
 | llvm/test/Transforms/LoopVectorize/AArch64/sve-tail-folding.ll |
Commit
33cec20dbd3bb8a896084da4a87f00d1cf13f77a
by herhut[mlir][memref] Tighten verification of memref.reinterpret_cast
We allow the omission of a map in memref.reinterpret_cast under the assumption, that the cast might cast to an identity layout. This change adds verification that the static knowledge that is present in the reinterpret_cast supports this assumption.
Differential Revision: https://reviews.llvm.org/D116601
|
 | mlir/test/Dialect/MemRef/invalid.mlir |
 | mlir/lib/Dialect/MemRef/IR/MemRefOps.cpp |
 | mlir/test/mlir-cpu-runner/copy.mlir |
 | mlir/test/Dialect/MemRef/canonicalize.mlir |
 | mlir/test/Dialect/MemRef/ops.mlir |
Commit
e92d63b467e13227408f9726fbd66d07cc58811c
by david.greenRevert "[LoopFlatten] Move it to a LoopPassManager"
This commit caused performance regressions due to differences in the expected code during loop flattening. Reverting it until the fix is ready, which hopefully wont take too long.
This reverts commit 86825fc2fb363b807569327880c05e4b0b5393ec.
|
 | llvm/lib/Passes/PassBuilderPipelines.cpp |
Commit
2f672e2ffa22d8c10279569de123a1e60d3aa00e
by zinenko[mlir] Don't inline calls from dead SCCs
During iterative inlining of the functions in a multi-step call chain, the inliner could add the same call operation several times to the worklist, which led to use-after-free when this op was considered more than once.
Closes #52887.
Reviewed By: wsmoses
Differential Revision: https://reviews.llvm.org/D116820
|
 | mlir/lib/Transforms/Inliner.cpp |
 | mlir/test/Transforms/inlining-repeated-use.mlir |
Commit
1ab13793beafd1db0159a410560b3ce998b15f5e
by sam.mccall[clangd] Include fixer for missing functions in C
A function call `unresolved()` in C will generate an implicit declaration of the missing function and warn `ext_implicit_function_decl` or so. (Compared to in C++ where we get `err_undeclared_var_use`). We want to try to resolve these names.
Unfortunately typo correction is disabled in sema for performance reasons unless this warning is promoted to error. (We need typo correction for include-fixer.) It's not clear to me where a switch to force this correction on should go, include-fixer is kind of a hack. So hack more by telling sema we're promoting them to error.
Fixes https://github.com/clangd/clangd/issues/937
Differential Revision: https://reviews.llvm.org/D115490
|
 | clang-tools-extra/clangd/IncludeFixer.cpp |
 | clang-tools-extra/clangd/Diagnostics.cpp |
 | clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp |
 | clang-tools-extra/clangd/ParsedAST.cpp |
 | clang/lib/Sema/SemaDecl.cpp |
Commit
d17fb46e894501568a1bf3b11a5d920817444630
by mubashar.ahmad[Clang][AArch64][ARM] PMUv3.4 Option Added
An option has been added to Clang to enable or disable the PMU v3.4 architecture extension.
Differential Revision: https://reviews.llvm.org/D116748
|
 | llvm/include/llvm/Support/AArch64TargetParser.def |
 | llvm/include/llvm/Support/ARMTargetParser.def |
 | llvm/include/llvm/Support/AArch64TargetParser.h |
 | clang/test/Driver/aarch64-perfmon.c |
 | clang/test/Driver/arm-perfmon.c |
 | llvm/include/llvm/Support/ARMTargetParser.h |
 | llvm/unittests/Support/TargetParserTest.cpp |
 | llvm/lib/Support/AArch64TargetParser.cpp |
Commit
3a094d8b272c15aa329db92d85c6d483004b4f6e
by jeremy.morse[Dexter] Allow tests to specify command line options
This patch adds a "DexCommandLine" command, allowing dexter tests to specify what command line options the test should be started with. I've also plumbed it through into the debuggers.
This eases the matter of pointing Dexter at larger tests, or controlling different paths through a single binary from a Dexter test.
Differential Revision: https://reviews.llvm.org/D115330
|
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/ConditionalController.py |
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/lldb/LLDB.py |
 | cross-project-tests/debuginfo-tests/dexter/dex/command/commands/DexCommandLine.py |
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/DefaultController.py |
 | cross-project-tests/debuginfo-tests/dexter/feature_tests/commands/perfect/command_line.c |
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/dbgeng/dbgeng.py |
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/visualstudio/VisualStudio.py |
 | cross-project-tests/debuginfo-tests/dexter/dex/command/ParseCommand.py |
 | cross-project-tests/debuginfo-tests/dexter/Commands.md |
 | cross-project-tests/debuginfo-tests/dexter/dex/debugger/DebuggerControllers/DebuggerControllerBase.py |
Commit
aecad5828ee7c3cd6d7dea5ea9f552251e4362df
by flo[SCEVExpander] Only create trunc when needed.
9345ab3a4550 updated generateOverflowCheck to skip creating checks that always evaluate to false. This in turn means that we only need to create TruncTripCount if it is actually used.
Sink the TruncTripCount creating into ComputeEndCheck, so it is only created when there's an actual check.
|
 | llvm/test/Transforms/LoopVersioning/wrapping-pointer-versioning.ll |
 | llvm/test/Transforms/LoopDistribute/scev-inserted-runtime-check.ll |
 | llvm/lib/Transforms/Utils/ScalarEvolutionExpander.cpp |
 | llvm/test/Transforms/LoopVectorize/runtime-check-small-clamped-bounds.ll |
Commit
c44d521b3054b7d8dc923d13fe7723cfd44807c8
by zinenko[mlir] address post-commit review for D116759
|
 | mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp |
Commit
abe3003ead808518190d1e9717495735786938d3
by hokein.wu[AST] Use recovery-expr to preserve incomplete-type-member-access expression.
Fixes https://github.com/clangd/clangd/issues/502
Differential Revision: https://reviews.llvm.org/D116922
|
 | clang/test/AST/ast-dump-recovery.cpp |
 | clang/test/OpenMP/declare_reduction_messages.cpp |
 | clang/lib/Sema/SemaExprCXX.cpp |
Commit
55d96ac3dc56bdebea854952a724c2a50d96ce19
by hokein.wu[AST] Add RParen loc for decltype AutoTypeloc.
Differential Revision: https://reviews.llvm.org/D116919
|
 | clang/lib/AST/TypeLoc.cpp |
 | clang/test/AST/ast-dump-template-decls.cpp |
 | clang/lib/Sema/SemaType.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/lib/Serialization/ASTWriter.cpp |
 | clang-tools-extra/clangd/unittests/SelectionTests.cpp |
 | clang/test/AST/ast-dump-template-decls-json.cpp |
 | clang/unittests/AST/SourceLocationTest.cpp |
 | clang/include/clang/AST/TypeLoc.h |
Commit
003ac239d862a232c8b97d67f4729af2b83e72b8
by flo[SROA] Reduce the number of times a IRBuilder is constructed (NFC).
This patch reduces the number of times IRBuilders need to be constructed in SROA.cpp by passing existing ones by reference to the appropriate places.
|
 | llvm/lib/Transforms/Scalar/SROA.cpp |
Commit
d9d2516aafb991f2e1bef64ab28da91a43efbdda
by petar.avramovicAMDGPU/GlobalISel: Rework legalization for extract/insert vector elt
Use G_MERGE_VALUES and G_UNMERGE_VALUES on vector elements instead of G_EXTRACT and G_INSERT when doing custom legalization for G_EXTRACT_VECTOR_ELT and G_INSERT_VECTOR_ELT. With this approach legalization artifact combiner gets direct access to all vector elements.
Differential Revision: https://reviews.llvm.org/D116115
|
 | llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp |
Commit
581e855623c27a0c35bab526112e7eade63e2036
by Tim NorthoverAArch64: don't claim to preserve registers used by prologue code
|
 | llvm/test/CodeGen/AArch64/cxx-tlscc.ll |
 | llvm/lib/Target/AArch64/AArch64FrameLowering.cpp |
 | llvm/lib/Target/AArch64/AArch64CallingConvention.td |
Commit
392aa97acc056d6d57f7a5b8f52cd9c3060869dd
by martin[llvm-objcopy] Implement the PE-COFF specific --subsystem option
This implements the parsing of the highly PE-COFF specific option in ConfigManager.cpp, setting Optional<> values in COFFConfig, which then are used in COFFObjcopy.
This should fix https://github.com/mstorsjo/llvm-mingw/issues/239.
Differential Revision: https://reviews.llvm.org/D116556
|
 | llvm/docs/CommandGuide/llvm-objcopy.rst |
 | llvm/tools/llvm-objcopy/ObjcopyOpts.td |
 | llvm/tools/llvm-objcopy/COFF/COFFConfig.h |
 | llvm/test/tools/llvm-objcopy/COFF/subsystem.test |
 | llvm/tools/llvm-objcopy/COFF/COFFObjcopy.cpp |
 | llvm/tools/llvm-objcopy/ConfigManager.cpp |
 | llvm/test/tools/llvm-objcopy/COFF/pe-fields.test |
Commit
37ec65e1d705f56fe5551de1dfcbac1e071588a2
by hokein.wu[clangd] Enable expand-auto for decltype(auto).
Based on https://reviews.llvm.org/D116919.
Fixes https://github.com/clangd/clangd/issues/121
Differential Revision: https://reviews.llvm.org/D116921
|
 | clang-tools-extra/clangd/unittests/tweaks/ExpandAutoTypeTests.cpp |
 | clang-tools-extra/clangd/refactor/tweaks/ExpandAutoType.cpp |
Commit
cb64c541f92f2bbec8d8cb6db80490d126e96c76
by springerm[mlir][linalg][bufferize][NFC] Clean up bufferization entry point
Differential Revision: https://reviews.llvm.org/D116892
|
 | mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.h |
 | mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.h |
 | mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp |
 | mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp |
 | mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp |
Commit
49b9b9dc9c962d9d5e443220f3861f3321d783c1
by Louis Dionne[libc++] Fix the documentation and re-enable documentation CI
The documentation CI job is very cheap, so we can afford to keep it around even with reduced capacity. This commit fixes the documentation (which had an invalid reference in it) and re-enables that CI step.
Differential Revision: https://reviews.llvm.org/D116897
|
 | libcxx/docs/index.rst |
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
5eb47961c42cef03d832c646860a1eff6f8b4104
by llvm-dev[CostModel][X86] Update ROTL/ROTR vXi8/vXi16 costs on AVX512BW targets
Refresh based off recent improvements to codegen and the helper script from D103695
|
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/X86/fshr.ll |
 | llvm/test/Analysis/CostModel/X86/fshl.ll |
Commit
e6d7b2f0de1fca60d1e38557fc912ac4f44ad845
by Louis Dionne[libc++] Fix link to bug tracker
|
 | libcxx/docs/index.rst |
Commit
446f0c609fcb304a7412123fdbcae803a4d61014
by springerm[mlir][linalg][bufferize][NFC] Update comments in BufferizableOpInterface
Differential Revision: https://reviews.llvm.org/D116932
|
 | mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.h |
 | mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.td |
Commit
c01260a781df727c98f6dc16b6233bd2395f5fed
by Louis Dionne[libc++] Add missing `return 0` to main() functions in the tests
|
 | libcxx/test/libcxx/ranges/range.access/end.incomplete_type.pass.cpp |
 | libcxx/test/libcxx/ranges/range.access/begin.incomplete_type.sh.cpp |