Commit
41115efca642981c2165cdf9ef2b2148605faa12
by Jan Svoboda[clang][deps] NFC: Check the correct context hashes in tests
The `clang-scan-deps` tests for the full output format were written under the assumption that most TUs/modules have the same context hash. This is no longer true, since we're changing the original compilation options. This patch updates the tests, which no longer conflate multiple context hashes into a single FileCheck variable.
|
 | clang/test/ClangScanDeps/modules-full.cpp (diff) |
 | clang/test/ClangScanDeps/modules-inferred.m (diff) |
Commit
80c0c639687ef52f5c432ea059ff9cb53125d08e
by Jan Svoboda[clang][deps] Prevent unintended modifications of the original TU command-line
One of the goals of the dependency scanner is to generate command-lines that can be used to explicitly build modular dependencies of a translation unit. The only modifications to these command-lines should be for the purposes of explicit modular build.
However, the current version of dependency scanner leaks its implementation details into the command-lines.
The first problem is that the `clang-scan-deps` tool adjusts the original textual command-line (adding `-Eonly -M -MT <target> -sys-header-deps -Wno-error -o /dev/null `, removing `--serialize-diagnostics`) in order to set up the `DependencyScanning` library. This has been addressed in D103461, D104012, D104030, D104031, D104033. With these patches, the `DependencyScanning` library receives the unmodified `CompilerInvocation`, sets it up and uses it for the implicit modular build.
Finally, to prevent leaking the implementation details to the resulting command-lines, this patch generates them from the **original** unmodified `CompilerInvocation` rather than from the one that drives the implicit build.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D104036
|
 | clang/include/clang/Tooling/DependencyScanning/ModuleDepCollector.h (diff) |
 | clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp (diff) |
 | clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (diff) |
 | clang/test/ClangScanDeps/Inputs/preserved-args/cdb.json.template |
 | clang/test/ClangScanDeps/Inputs/preserved-args/module.modulemap |
 | clang/test/ClangScanDeps/Inputs/preserved-args/mod.h |
 | clang/test/ClangScanDeps/Inputs/preserved-args/tu.c |
 | clang/test/ClangScanDeps/preserved-args.c |
Commit
ac031c8db2ce454a9b08f23192ce698e8bde4447
by david.spickettRevert "[lldb] Set return status to failed when adding a command error" (and fixups)
This reverts commit f583029da3d6dbabe82f48b160227eb0120abd33, 0f94d68a2e15d50796439f20bcb508b95931d2ae and a2363c0cf9b6a9a81c76ac652da667f73845d38b.
Due to test failures from incorrect SB API usage.
|
 | lldb/test/Shell/Commands/command-backtrace-parser-1.test |
 | lldb/test/API/commands/register/register/register_command/TestRegisters.py (diff) |
 | lldb/source/Interpreter/CommandReturnObject.cpp (diff) |
 | lldb/test/Shell/Commands/command-backtrace-parser-2.test |
 | lldb/test/Shell/Commands/command-backtrace.test |
Commit
8e93aa304b3fbe57bb7d22f63681f1b9758e63a9
by Louis Dionne[libc++] Refactor the tests for std::prev, next and advance
This started as an attempt to fix a GCC 11 warning of misplaced parentheses. I then noticed that trying to fix the parentheses warning actually triggered errors in the tests, showing that we were incorrectly assuming that the implementation of ranges::advance was using operator+= or operator-=.
This commit fixes that issue and makes the tests easier to follow by localizing the assertions it makes.
Differential Revision: https://reviews.llvm.org/D103272
|
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/constraints.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp |
 | libcxx/test/support/test_iterators.h (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/check_round_trip.h |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator_count_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/constraints.verify.cpp |
 | libcxx/include/__iterator/advance.h (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/constraints.verify.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/constraints.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/check_round_trip.h |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/special_function.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/advance.pass.cpp |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator_count.pass.cpp (diff) |
Commit
88e4aae57d4deabf55de534e1d3e0794739f4be6
by uday[MLIR][NFC] Rename MemRefDataFlow -> AffineScalarReplacement
NFC. Rename MemRefDataFlow -> AffineScalarReplacement and move to AffineTransforms library. Pass command line rename: -memref-dataflow-opt -> affine-scalrep. Update outdated pass documentation.
Rationale: https://llvm.discourse.group/t/move-and-rename-memref-dataflow-opt-lib-transforms-lib-affine-dialect-transforms/3640
Differential Revision: https://reviews.llvm.org/D104190
|
 | mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt (diff) |
 | mlir/examples/toy/Ch6/toyc.cpp (diff) |
 | mlir/examples/toy/Ch7/toyc.cpp (diff) |
 | mlir/examples/toy/Ch5/toyc.cpp (diff) |
 | mlir/lib/Dialect/Affine/Transforms/AffineScalarReplacement.cpp |
 | mlir/include/mlir/Dialect/Affine/Passes.h (diff) |
 | mlir/lib/Transforms/CMakeLists.txt (diff) |
 | mlir/include/mlir/Transforms/Passes.h (diff) |
 | mlir/include/mlir/Transforms/Passes.td (diff) |
 | mlir/test/Transforms/memref-dataflow-opt.mlir |
 | mlir/test/Dialect/Affine/scalrep.mlir |
 | mlir/lib/Transforms/MemRefDataFlowOpt.cpp |
 | mlir/include/mlir/Dialect/Affine/Passes.td (diff) |
Commit
f39dcf85f994b464946cd6702bbceadc518ce904
by Jan Svoboda[clang][deps] NFC: Fix an XFAIL test on Windows
The `sed` command ensures Windows-specific path separators (single and double backslashes) are replaced by forward slashes in the output file. FileCheck can continue using forward slashes in paths this way.
|
 | clang/test/ClangScanDeps/modules-full.cpp (diff) |
|
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator_count_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/constraints.compile.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_count.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator.pass.cpp (diff) |
 | libcxx/test/support/test_iterators.h (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/iterator_count.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.next/iterator_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.advance/iterator_count_sentinel.pass.cpp (diff) |
 | libcxx/test/std/iterators/iterator.primitives/range.iter.ops/range.iter.ops.prev/constraints.compile.pass.cpp (diff) |
Commit
bb8ce25e88218be60d2a4ea9c9b0b721809eff27
by jeroen.dobbelaereIntrinsic::getName: require a Module argument
Ensure that we provide a `Module` when checking if a rename of an intrinsic is necessary.
This fixes the issue that was detected by https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=32288 (as mentioned by @fhahn), after committing D91250.
Note that the `LLVMIntrinsicCopyOverloadedName` is being deprecated in favor of `LLVMIntrinsicCopyOverloadedName2`.
Reviewed By: nikic
Differential Revision: https://reviews.llvm.org/D99173
|
 | llvm/test/Assembler/auto_upgrade_intrinsics.ll (diff) |
 | llvm/lib/IR/Function.cpp (diff) |
 | llvm/docs/ReleaseNotes.rst (diff) |
 | llvm/lib/CodeGen/MachineOperand.cpp (diff) |
 | llvm/include/llvm/IR/Intrinsics.h (diff) |
 | llvm/lib/IR/Core.cpp (diff) |
 | llvm/lib/IR/AutoUpgrade.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp (diff) |
 | llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff) |
 | llvm/lib/CodeGen/ReplaceWithVeclib.cpp (diff) |
 | llvm/include/llvm-c/Core.h (diff) |
 | llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp (diff) |
Commit
f95ff81627212a8db9f942aafa91392096538847
by Jan Svoboda[clang][deps] NFC: Handle `DependencyOutputOptions` only once
There's no need to pass `DependencyOutputOptions` to each call of `handleFileDependency`, since the options don't ever change.
This patch adds new `handleDependencyOutputOpts` method to the `DependencyConsumer` interface and the dependency scanner uses it to report the options only once.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D104104
|
 | clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (diff) |
 | clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp (diff) |
 | clang/lib/Tooling/DependencyScanning/DependencyScanningTool.cpp (diff) |
 | clang/include/clang/Tooling/DependencyScanning/DependencyScanningWorker.h (diff) |
Commit
85208b96b85f6f3e502cf4b7fd5f440434d1c7e5
by Jan Svoboda[clang][deps] NFC: Stop using moved-from object
The dependency scanning worker uses `std::move` to "reset" `DependencyOutputOptions` in the `CompilerInstance` that performs the implicit build. It's probably preferable to replace the object with value-initialized instance, rather than depending on the behavior of a moved-from object.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D104106
|
 | clang/lib/Tooling/DependencyScanning/DependencyScanningWorker.cpp (diff) |
Commit
6e5628354e22f3ca40b04295bac540843b8e6482
by lebedev.ri[DAGCombine] reduceBuildVecToShuffle(): sort input vectors by decreasing size
The sorting, obviously, must be stable, else we will have random assembly fluctuations.
Apparently there was no test coverage that would benefit from that, so i've added one test.
The sorting consists of two parts - just sort the input vectors, and recompute the shuffle mask -> input vector mapping. I don't believe we need to do anything else.
Reviewed By: RKSimon
Differential Revision: https://reviews.llvm.org/D104187
|
 | llvm/test/CodeGen/X86/oddshuffles.ll (diff) |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
|
 | lldb/test/Shell/Commands/command-backtrace.test |
 | lldb/test/Shell/Commands/command-backtrace-parser-2.test |
 | lldb/source/Interpreter/CommandReturnObject.cpp (diff) |
 | lldb/test/API/commands/register/register/register_command/TestRegisters.py (diff) |
 | lldb/test/Shell/Commands/command-backtrace-parser-1.test |
Commit
b88fa0e39fa7b8906562b7044d06bba094c8b688
by psteinfeld[flang] Fix compilation problem with rename of "MemRefDataFlow"
Revision https://reviews.llvm.org/D104190 renamed MemRefDataFlow -> AffineScalarReplacement. After this rename, mlir failed to build. With this change, all of clang, mlir, and flang build and test correctly.
Differential Revision: https://reviews.llvm.org/D104223
|
 | flang/include/flang/Optimizer/Support/InitFIR.h (diff) |
Commit
c83e696732fd906297d83a98dee044f1173be355
by zinenkoAdd AutomaticAllocationScope to memref.alloca_scope
This change adds `AutomaticAllocationScope` to the memref.alloca_scope op. Additionally, it also clarifies that alloca_scope is is conceptually a passthrough operation.
Reviewed By: ftynse, bondhugula
Differential Revision: https://reviews.llvm.org/D104227
|
 | mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td (diff) |
|
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/assign_move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/default.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/default.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/swap_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/range_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/init_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/range.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.swap/swap_non_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/copy_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.swap/swap_non_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/range_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/size.compile.fail.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/range_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/copy_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/assign_move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/size.compile.fail.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/init_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/assign_init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/range_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/init_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/assign_init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/assign_copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/swap_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.swap/swap_non_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/default.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_init.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/assign_copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal_allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size.compile.fail.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/swap_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/init_size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/size.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/copy.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/range.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/move_alloc.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/assign_move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/swap_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size.compile.fail.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/init.pass.cpp (diff) |
 | libcxx/test/std/containers/test_hash.h (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/init_size_hash_equal.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/init_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/range_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/allocator.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multimap/unord.multimap.cnstr/default.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.cnstr/range_size_hash.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.set/unord.set.swap/swap_non_member.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/assign_move.pass.cpp (diff) |
 | libcxx/test/std/containers/unord/unord.map/unord.map.cnstr/init.pass.cpp (diff) |
|
 | lldb/docs/python_api_enums.rst (diff) |
|
 | lldb/docs/python_api_enums.rst (diff) |
|
 | libcxx/include/__ranges/size.h (diff) |
 | libcxx/include/__ranges/all.h |
 | libcxx/test/std/ranges/range.adaptors/range.all.pass.cpp |
 | libcxx/include/CMakeLists.txt (diff) |
 | libcxx/include/ranges (diff) |
|
 | llvm/utils/gn/secondary/libcxx/include/BUILD.gn (diff) |
Commit
c60dd3b2626a4d9eefd9f82f9a406b0d28d3fd72
by hansRevert "[clang] NRVO: Improvements and handling of more cases."
This change caused build errors related to move-only __block variables, see discussion on https://reviews.llvm.org/D99696
> This expands NRVO propagation for more cases: > > Parse analysis improvement: > * Lambdas and Blocks with dependent return type can have their variables > marked as NRVO Candidates. > > Variable instantiation improvements: > * Fixes crash when instantiating NRVO variables in Blocks. > * Functions, Lambdas, and Blocks which have auto return type have their > variables' NRVO status propagated. For Blocks with non-auto return type, > as a limitation, this propagation does not consider the actual return > type. > > This also implements exclusion of VarDecls which are references to > dependent types. > > Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> > > Reviewed By: Quuxplusone > > Differential Revision: https://reviews.llvm.org/D99696
This also reverts the follow-on change which was hard to tease apart form the one above:
> "[clang] Implement P2266 Simpler implicit move" > > This Implements [[http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2266r1.html|P2266 Simpler implicit move]]. > > Signed-off-by: Matheus Izvekov <mizvekov@gmail.com> > > Reviewed By: Quuxplusone > > Differential Revision: https://reviews.llvm.org/D99005
This reverts commits 1e50c3d785f4563873ab1ce86559f2a1285b5678 and bf20631782183cd19e0bb7219e908c2bbb01a75f.
|
 | clang/test/SemaCXX/constant-expression-cxx11.cpp (diff) |
 | clang/include/clang/Sema/Sema.h (diff) |
 | clang/test/CXX/drs/dr3xx.cpp (diff) |
 | clang/lib/Sema/SemaTemplateInstantiateDecl.cpp (diff) |
 | clang/test/CXX/expr/expr.prim/expr.prim.lambda/p4-cxx14.cpp (diff) |
 | clang/test/SemaCXX/constant-expression-cxx14.cpp (diff) |
 | clang/test/SemaCXX/coroutine-rvo.cpp (diff) |
 | clang/test/SemaCXX/return-stack-addr.cpp (diff) |
 | clang/test/CXX/class/class.init/class.copy.elision/p3.cpp (diff) |
 | clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.spec.auto/p7-cxx14.cpp (diff) |
 | clang/lib/Sema/Sema.cpp (diff) |
 | clang/test/CodeGen/nrvo-tracking.cpp (diff) |
 | clang/test/SemaCXX/coroutines.cpp (diff) |
 | clang/lib/Sema/SemaExprCXX.cpp (diff) |
 | clang/test/SemaCXX/deduced-return-type-cxx14.cpp (diff) |
 | clang/lib/Sema/SemaStmt.cpp (diff) |
 | clang/lib/Sema/SemaType.cpp (diff) |
 | clang/lib/Sema/SemaCoroutine.cpp (diff) |
 | clang/test/SemaCXX/warn-return-std-move.cpp (diff) |
 | clang/test/CXX/temp/temp.decls/temp.mem/p5.cpp (diff) |
Commit
08ce52ef5e6b879216f8018b920ef5c0621e797d
by jingu.kang[AArch64] Improve SAD pattern
Given a vecreduce_add node, detect the below pattern and convert it to the node sequence with UABDL, [S|U]ADB and UADDLP.
i32 vecreduce_add( v16i32 abs( v16i32 sub( v16i32 [sign|zero]_extend(v16i8 a), v16i32 [sign|zero]_extend(v16i8 b)))) =================> i32 vecreduce_add( v4i32 UADDLP( v8i16 add( v8i16 zext( v8i8 [S|U]ABD low8:v16i8 a, low8:v16i8 b v8i16 zext( v8i8 [S|U]ABD high8:v16i8 a, high8:v16i8 b
Differential Revision: https://reviews.llvm.org/D104042
|
 | llvm/test/CodeGen/AArch64/neon-sad.ll (diff) |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp (diff) |
 | llvm/test/CodeGen/AArch64/arm64-vabs.ll (diff) |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td (diff) |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h (diff) |
Commit
d767d1dd2c7870bf7e1c4c301a59b682370b9a2a
by flo[ADT] Use unnamed argument for unused arg in StringMapEntryStorage.
This silences an 'unsused argument' warning.
Similar to c2006f857d80f54b90ed7d911d3e7acf4f46001b.
|
 | llvm/include/llvm/ADT/StringMapEntry.h (diff) |
Commit
7ed515d16803f12fc06258ebf8a405931dc8a637
by zhijian[AIX][XCOFF] emit vector info of traceback table.
Summary:
emit vector info of traceback table.
Reviewers: Jason Liu,Hubert Tong Differential Revision: https://reviews.llvm.org/D93659
|
 | llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo_hasvarg.ll |
 | llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp (diff) |
 | llvm/test/DebugInfo/XCOFF/explicit-section.ll (diff) |
 | llvm/lib/Object/XCOFFObjectFile.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-clobber-register.ll (diff) |
 | llvm/include/llvm/BinaryFormat/XCOFF.h (diff) |
 | llvm/lib/CodeGen/MachineRegisterInfo.cpp (diff) |
 | llvm/lib/BinaryFormat/XCOFF.cpp (diff) |
 | llvm/unittests/Object/XCOFFObjectFileTest.cpp (diff) |
 | llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h (diff) |
 | llvm/include/llvm/CodeGen/MachineRegisterInfo.h (diff) |
 | llvm/test/CodeGen/PowerPC/aix-exception.ll (diff) |
 | llvm/include/llvm/Object/XCOFFObjectFile.h (diff) |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp (diff) |
 | llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo.ll |
Commit
5b5833b9e092bd6808818615c2e4816995382b55
by Saleem AbdulrasoolSelectionDAG: repair the Windows build
6e5628354e22f3ca40b04295bac540843b8e6482 regressed the Windows build as the return type no longer matched in both branches for the return value type deduction. This uses a bit more compiler magic to deal with that.
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff) |
Commit
96ca03493ae51def23eb69475fbf1bfae1eb9f2c
by flo[VectorCombine] Limit scalarization to non-poison indices for now.
As Eli mentioned post-commit in D103378, the result of the freeze may still be out-of-range according to Alive2. So for now, just limit the transform to indices that are non-poison.
|
 | llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll (diff) |
 | llvm/lib/Transforms/Vectorize/VectorCombine.cpp (diff) |
|
 | mlir/lib/Conversion/GPUCommon/GPUToLLVMConversion.cpp (diff) |
Commit
ee9bb258bb76e9c076c19592b3778e2ecc2ff47c
by flo[LoopDeletion] Add test with irreducible control flow in loop.
Currently the irreducible cycles in the loops are ignored. The irreducible cycle may loop infinitely in irreducible_subloop_no_mustprogress, which is allowed and the loop should not be removed.
Discussed in D103382.
|
 | llvm/test/Transforms/LoopDeletion/loops-with-irreducible-subloops.ll |
|
 | llvm/test/Transforms/InstCombine/not.ll (diff) |
 | llvm/test/Transforms/InstCombine/select-and-or.ll (diff) |
Commit
8591640379ac9175a8a8493126ecf0b44e3bb4af
by spatel[InstCombine] add DeMorgan folds for logical ops in select form
We canonicalized to these select patterns (poison-safe logic) with D101191, so we need to reduce 'not' ops when possible as we would with 'and'/'or' instructions.
This is shown in a secondary example in: https://llvm.org/PR50389
https://alive2.llvm.org/ce/z/BvsESh
|
 | llvm/test/Transforms/InstCombine/select-and-or.ll (diff) |
 | llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp (diff) |
Commit
ce77039596a9bfb9f1649455ef4f26aeada2ee8c
by clattner[Verifier] Parallelize verification and dom checking. NFC.
This changes the outer verification loop to not recurse into IsolatedFromAbove operations - instead return them up to a place where a parallel for loop can process them all in parallel. This also changes Dominance checking to happen on IsolatedFromAbove chunks of the region tree, which makes it easy to fold operation and dominance verification into a single simple parallel regime.
This speeds up firtool in CIRCT from ~40s to 31s on a large testcase in -verify-each mode (the default). The .fir parser and module passes in particular benefit from this - FModule passes (roughly analogous to function passes) were already running the verifier in parallel as part of the pass manager. This allows the whole-module passes to verify their enclosed functions / FModules in parallel.
-verify-each mode is still faster (26.3s on the same testcase), but we do expect the verifier to take *some* time.
Differential Revision: https://reviews.llvm.org/D104207
|
 | mlir/lib/IR/Verifier.cpp (diff) |
Commit
c58cf692f4197bf1f8ea7e0efb95c1afd2d6d81f
by ashermancinelli[flang] Move buffer runtime test to GTest
Move buffer unit test from Runtime directory to RuntimeGtest directory and use GTest. Test coverage is only maintained.
Differential Revision: https://reviews.llvm.org/D102335 Reviewed By: awarzynski, klausler
|
 | flang/unittests/Runtime/buffer.cpp |
 | flang/unittests/RuntimeGTest/CMakeLists.txt (diff) |
 | flang/unittests/Runtime/CMakeLists.txt (diff) |
 | flang/unittests/RuntimeGTest/BufferTest.cpp |
Commit
c75e454cb93206833f8cedde1ed5d12ef161e357
by fraser[RISCV] Transform unaligned RVV vector loads/stores to aligned ones
This patch adds support for loading and storing unaligned vectors via an equivalently-sized i8 vector type, which has support in the RVV specification for byte-aligned access.
This offers a more optimal path for handling of unaligned fixed-length vector accesses, which are currently scalarized. It also prevents crashing when `LegalizeDAG` sees an unaligned scalable-vector load/store operation.
Future work could be to investigate loading/storing via the largest vector element type for the given alignment, in case that would be more optimal on hardware. For instance, a 4-byte-aligned nxv2i64 vector load could loaded as nxv4i32 instead of as nxv16i8.
Reviewed By: craig.topper
Differential Revision: https://reviews.llvm.org/D104032
|
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp (diff) |
 | llvm/test/CodeGen/RISCV/rvv/unaligned-loads-stores.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-unaligned.ll (diff) |
 | llvm/lib/Target/RISCV/RISCVISelLowering.h (diff) |
|
 | clang/test/Sema/warn-unused-but-set-variables.c (diff) |
Commit
863184dd6920a65dd122603be7e595bc88d89e8b
by wlei[CSSPGO] Aggregation by the last K context frames for cold profiles
This change provides the option to merge and aggregate cold context by the last k frames instead of context-less name. By default K = 1 means the context-less one.
This is for better perf tuning. The more selective merging and trimming will rely on llvm-profgen's preinliner.
Reviewed By: wenlei, hoy
Differential Revision: https://reviews.llvm.org/D104131
|
 | llvm/tools/llvm-profdata/llvm-profdata.cpp (diff) |
 | llvm/tools/llvm-profgen/ProfileGenerator.cpp (diff) |
 | llvm/include/llvm/ProfileData/SampleProf.h (diff) |
 | llvm/lib/ProfileData/SampleProf.cpp (diff) |
 | llvm/test/tools/llvm-profgen/merge-cold-profile.test (diff) |
Commit
44f197e94b83d389b59ce6a2a1977f972e6d34e3
by a.bataev[OpenMP] Fix C-only clang assert on parsing use_allocator clause of target directive
The parser code assumes building with C++ compiler and asserts when using clang (not clang++) on C file. I made the code dependent on input language. This shows up for amdgpu target.
Reviewed By: ABataev
Differential Revision: https://reviews.llvm.org/D103899
|
 | clang/lib/Parse/ParseOpenMP.cpp (diff) |
 | clang/test/OpenMP/target_uses_allocators.c |
|
 | lld/MachO/MapFile.cpp (diff) |
Commit
cc17bfe4898de0b57b58103bb629960f89eb4706
by jezng[lld-macho] Fix "shift exponent too large" UBSAN error
UBSAN seems to have added this check somewhere along the way...
This might also fix the PPC buildbot, which is failing on the same test
|
 | lld/MachO/InputFiles.cpp (diff) |
Commit
8c5a44901cafa5c848d3f2f2c26a23e6583ed657
by aeubanks[OpaquePtr] Remove existing support for forward compatibility
It assumes that PointerType will keep having an optional pointee type, but we'd like to remove the pointee type in PointerType at some point.
I feel like the current implementation could be simplified anyway, although perhaps I'm underestimating the amount of work needed throughout BitcodeReader.
We will still need a side table to keep track of pointee types. This will be reimplemented at some point.
This is essentially a revert of a4771e9d (which doesn't look like it was reviewed anyway).
Reviewed By: dblaikie
Differential Revision: https://reviews.llvm.org/D103135
|
 | llvm/lib/Bitcode/Reader/ValueList.cpp (diff) |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp (diff) |
 | llvm/lib/Bitcode/Reader/ValueList.h (diff) |
|
 | clang/lib/Format/WhitespaceManager.cpp (diff) |
Commit
0e31e22ed973ba542cb15176a202947b2438733a
by aeubanks[docs][OpaquePtr] Shuffle around the transition plan section
Emphasize that this is basically an attempt to remove ``PointerType::getElementType`` and ``Type::getPointerElementType()``.
Add a couple more subtasks.
Differential Revision: https://reviews.llvm.org/D104151
|
 | llvm/docs/OpaquePointers.rst (diff) |
|
 | llvm/lib/Target/X86/X86CallingConv.td (diff) |
 | llvm/test/CodeGen/X86/swift-async-reg-win64.ll |
|
 | llvm/lib/Bitcode/Reader/ValueList.cpp (diff) |
Commit
66e27082054bf8f106ce63d5cb7d6c67e628feff
by riddleriver[mlir:Linalg] Populate LinalgOp patterns on LinalgDialect as opposed to each op
Interface patterns are unique in that they get added to every operation that also implements that interface, given that they aren't tied to individual operations. When the same interface pattern gets added to multiple operations (such as the current behavior with Linalg), an reference to each of these patterns is added to every op (meaning that an operation will now have N references to effectively the same pattern). This revision fixes this problematic behavior in Linalg, and can bring upwards of a 25% reduction in compile time in Linalg based workloads.
Differential Revision: https://reviews.llvm.org/D104160
|
 | mlir/lib/Dialect/Linalg/Transforms/Tiling.cpp (diff) |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-yaml-gen.cpp (diff) |
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp (diff) |
 | mlir/tools/mlir-linalg-ods-gen/mlir-linalg-ods-gen.cpp (diff) |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td (diff) |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgBase.td (diff) |
 | mlir/lib/Dialect/Linalg/Transforms/FusionOnTensors.cpp (diff) |
|
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp (diff) |
Commit
a490ca8e014acac9c2df7bd7f0aff6c7422d850a
by clattner[PassManager] Save compile time by not running the verifier unnecessarily. NFC
This changes the pass manager to not rerun the verifier when a pass says it didn't change anything or after an OpToOpPassAdaptor, since neither of those cases need verification (and if the pass lied, then there will be much larger semantic problems than will be caught by the verifier).
This maintains behavior in EXPENSIVE_CHECKS mode.
Differential Revision: https://reviews.llvm.org/D104243
|
 | mlir/lib/Pass/Pass.cpp (diff) |
Commit
4e155608796b79d7e369f4e42980ce670bff7172
by a.bataev[OPENMP][C++20]Add support for CXXRewrittenBinaryOperator in ranged for loops.
Added support for CXXRewrittenBinaryOperator as a condition in ranged for loops. This is a new kind of expression, need to extend support for C++20 constructs. It fixes PR49970: range-based for compilation fails for libstdc++ vector with -std=c++20.
Differential Revision: https://reviews.llvm.org/D104240
|
 | clang/test/OpenMP/for_ast_print_cxx20.cpp |
 | clang/lib/Sema/SemaOpenMP.cpp (diff) |