Commit
a3c05982ac05637a8f40207db83c04a1710033d5
by llvm-dev[SLP][X86] Improve SLP tests for division/multiplication by +/- pow2
Add PR51436 test as well as some basic multiply tests, and include SSE2 division coverage
|
 | llvm/test/Transforms/SLPVectorizer/X86/powof2div.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/powof2mul.ll |
Commit
5a8ad80b6fa5cbad58b78384f534b78fca863e7f
by Louis Dionne[libunwind] Use the from-scratch testing configuration by default
This commit switches libunwind from using the complicated logic in libc++'s testing configuration to a from-scratch configuration. I tried to make sure that all cases that were handled in the old config were handled by this one too, so hopefully this shouldn't break anyone. However, if you encounter issues with this change, please let me know and feel free to revert if I don't reply quickly.
This change was engineered to be easily revertable.
Differential Revision: https://reviews.llvm.org/D112082
|
 | libunwind/CMakeLists.txt |
Commit
be6c8dc765c32a79c0c9b0e6720e3b22d226e478
by sander.desmalen[SelectionDAG] Fix getVectorSubVecPointer for scalable subvectors.
When inserting a scalable subvector into a scalable vector through the stack, the index to store to needs to be scaled by vscale. Before this patch, that didn't yet happen, so it would generate the wrong offset, thus storing a subvector to the incorrect address and overwriting the wrong lanes.
For some insert: nxv8f16 insert_subvector(nxv8f16 %vec, nxv2f16 %subvec, i64 2)
The offset was not scaled by vscale: orr x8, x8, #0x4 st1h { z0.h }, p0, [sp] st1h { z1.d }, p1, [x8] ld1h { z0.h }, p0/z, [sp]
And is changed to: mov x8, sp st1h { z0.h }, p0, [sp] st1h { z1.d }, p1, [x8, #1, mul vl] ld1h { z0.h }, p0/z, [sp]
Differential Revision: https://reviews.llvm.org/D111633
|
 | llvm/test/CodeGen/AArch64/sve-insert-vector.ll |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
Commit
192331b890e238a8ede4e61e6c5294e7eaa365fd
by mgorny[lldb] [Process/Linux] Support arbitrarily-sized FPR writes on ARM
Support arbitrarily-sized FPR writes on ARM in order to fix writing qN registers directly. Currently, writing them works only by accident due to value_regs splitting them into smaller writes via dN and sN registers.
Differential Revision: https://reviews.llvm.org/D112131
|
 | lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp |
Commit
99277a81f807e6f4c63ececdb6974d6d5f1f3562
by mgorny[lldb] [Process/Utility] Fix value_regs/invalidate_regs for ARM
Fix incorrect values for value_regs, and incomplete values for invalidate_regs in RegisterInfos_arm. The value_regs entry needs to list only one base (i.e. larger) register that needs to be read to get the value for this register, while invalidate_regs needs to list all other registers (including pseudo-register) whose values would change when this register is written to.
7a8ba4ffbeecb5070926b80bb839a4d80539f1ac fixed a similar problem for ARM64.
Differential Revision: https://reviews.llvm.org/D112066
|
 | lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h |
Commit
f290efc32622cc59566ec7ac13e74a039b6047c2
by mgorny[lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*
gdbserver does not expose combined ymm* registers but rather XSAVE-style split xmm* and ymm*h portions. Extend value_regs to support combining multiple registers and use it to create user-friendly ymm* registers that are combined from split xmm* and ymm*h portions.
Differential Revision: https://reviews.llvm.org/D108937
|
 | lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py |
 | lldb/include/lldb/lldb-private-types.h |
 | lldb/source/Target/DynamicRegisterInfo.cpp |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/source/Plugins/ABI/X86/ABIX86.cpp |
Commit
a413663d8fea6700076010b7e4458b03a8bfb8b4
by bjorn.a.pettersson[NewPM][test] Avoid using -enable-new-pm=1 since -passes implies new PM
|
 | llvm/test/Transforms/SLPVectorizer/X86/limit.ll |
 | llvm/test/Transforms/LICM/no-hoist-prof.ll |
 | llvm/test/Transforms/SampleProfile/remarks-hotness.ll |
 | llvm/test/Transforms/PhaseOrdering/openmp-opt-module.ll |
 | llvm/test/CodeGen/PowerPC/opt-builtins-ppc-xlcompat-cas.ll |
 | llvm/test/Transforms/LoopUnswitch/AMDGPU/uniform-unswitch.ll |
 | llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll |
Commit
57bd67abfcb8799cbee204e5fd92fe60bce3f9bf
by bjorn.a.pettersson[NewPM][test] Use -passes syntax in SpeculativeExecution lit tests
The legacy PM is deprecated, so use the new PM syntax in lit tests running the speculative-execution pass.
|
 | llvm/test/Transforms/SpeculativeExecution/spec-other.ll |
 | llvm/test/Transforms/SpeculativeExecution/spec-calls.ll |
 | llvm/test/Transforms/SpeculativeExecution/spec-other-inseltpoison.ll |
 | llvm/test/Transforms/SpeculativeExecution/PR46267.ll |
 | llvm/test/Transforms/SpeculativeExecution/spec-casts.ll |
 | llvm/test/Transforms/SpeculativeExecution/spec.ll |
 | llvm/test/Transforms/SpeculativeExecution/spec-compares.ll |
Commit
15f1fb5a302d7b4b1405c0414c661ef3de7ff18d
by bjorn.a.pettersson[NewPM][test] Use -passes syntax in BoundsChecking lit tests
The legacy PM is deprecated, so use the new PM syntax in lit tests running the bounds-checking pass.
|
 | llvm/test/Instrumentation/BoundsChecking/many-trap.ll |
 | llvm/test/Instrumentation/BoundsChecking/phi.ll |
 | llvm/test/Instrumentation/BoundsChecking/many-traps-2.ll |
 | llvm/test/Instrumentation/BoundsChecking/opt.ll |
 | llvm/test/Instrumentation/BoundsChecking/simple.ll |
 | llvm/test/Instrumentation/BoundsChecking/simple-32.ll |
Commit
5e4dbd7a2fb095a6c25ec4758b806571c033e88e
by bjorn.a.pettersson[NewPM][test] Use -passes syntax in VectorCombine lit tests
The legacy PM is deprecated, so use the new PM syntax in lit tests running the vector-combine pass.
|
 | llvm/test/Transforms/VectorCombine/X86/shuffle.ll |
 | llvm/test/Transforms/VectorCombine/load-insert-store.ll |
 | llvm/test/Transforms/VectorCombine/X86/no-sse-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/AMDGPU/as-transition-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/Hexagon/load-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/load.ll |
 | llvm/test/Transforms/VectorCombine/X86/extract-binop.ll |
 | llvm/test/Transforms/VectorCombine/X86/scalarize-cmp-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/scalarize-vector-gep.ll |
 | llvm/test/Transforms/VectorCombine/AMDGPU/as-transition.ll |
 | llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/load-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/AArch64/extract-cmp-binop.ll |
 | llvm/test/Transforms/VectorCombine/AArch64/load-extract-insert-store-scalarization.ll |
 | llvm/test/Transforms/VectorCombine/X86/extract-cmp.ll |
 | llvm/test/Transforms/VectorCombine/X86/insert-binop-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/extract-cmp-binop.ll |
 | llvm/test/Transforms/VectorCombine/X86/extract-binop-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/shuffle-inseltpoison.ll |
 | llvm/test/Transforms/VectorCombine/X86/insert-binop.ll |
 | llvm/test/Transforms/VectorCombine/AArch64/vscale-bitcast-shuffle.ll |
 | llvm/test/Transforms/VectorCombine/X86/load-widening.ll |
 | llvm/test/Transforms/VectorCombine/Hexagon/load.ll |
 | llvm/test/Transforms/VectorCombine/X86/insert-binop-with-constant.ll |
 | llvm/test/Transforms/VectorCombine/X86/scalarize-cmp.ll |
 | llvm/test/Transforms/VectorCombine/X86/no-sse.ll |
 | llvm/test/Transforms/VectorCombine/AArch64/load-extractelement-scalarization.ll |
Commit
e9320b1a95a69652bba9b3ba66900b1c0e8f6b0a
by bjorn.a.pettersson[NewPM][test] Only use -passes syntax in Scalarizer lit tests
With legacy PM being deprecated it should be enough to verify the scalarizer pass using the new-PM syntax when invoking opt.
|
 | llvm/test/Transforms/Scalarizer/phi-bug-inseltpoison.ll |
 | llvm/test/Transforms/Scalarizer/vector-gep.ll |
 | llvm/test/Transforms/Scalarizer/constant-insertelement.ll |
 | llvm/test/Transforms/Scalarizer/phi-bug.ll |
 | llvm/test/Transforms/Scalarizer/constant-extractelement.ll |
 | llvm/test/Transforms/Scalarizer/store-bug.ll |
 | llvm/test/Transforms/Scalarizer/intrinsics.ll |
 | llvm/test/Transforms/Scalarizer/global-bug-2.ll |
 | llvm/test/Transforms/Scalarizer/variable-extractelement.ll |
 | llvm/test/Transforms/Scalarizer/order-bug-inseltpoison.ll |
 | llvm/test/Transforms/Scalarizer/cache-bug.ll |
 | llvm/test/Transforms/Scalarizer/dbginfo.ll |
 | llvm/test/Transforms/Scalarizer/dbgloc-bug-inseltpoison.ll |
 | llvm/test/Transforms/Scalarizer/dbgloc-bug.ll |
 | llvm/test/Transforms/Scalarizer/basic-inseltpoison.ll |
 | llvm/test/Transforms/Scalarizer/order-bug.ll |
 | llvm/test/Transforms/Scalarizer/variable-insertelement.ll |
 | llvm/test/Transforms/Scalarizer/basic.ll |
 | llvm/test/Transforms/Scalarizer/global-bug.ll |
 | llvm/test/Transforms/Scalarizer/crash-bug.ll |
 | llvm/test/Transforms/Scalarizer/phi-unreachable-pred.ll |
 | llvm/test/Transforms/Scalarizer/scatter-order.ll |
Commit
cbe3b6b21f6d3e706edd9c825e2bfb6ee324945e
by Louis Dionne[libc++] Move LIBCXX-DEBUG-FIXME to params.py
This temporary FIXME really belongs to the testing config, not to the specific CMake cache that enables that configuration.
Differential Revision: https://reviews.llvm.org/D112031
|
 | libcxx/utils/libcxx/test/params.py |
 | libcxx/cmake/caches/Generic-debug-iterators.cmake |
Commit
9e7b7303f1d3556756d7c4db8fa02969c8f11c58
by mascasa[libFuzzer] Update InputInfo.TimeOfUnit when replacing it in the corpus.
Previously, when the fuzzing loop replaced an input in the corpus, it didn't update the execution time of the input. Therefore, some schedulers (e.g. Entropic) would adjust weights based on the incorrect execution time.
This patch updates the execution time of the input when replacing it.
Reviewed By: morehouse
Differential Revision: https://reviews.llvm.org/D111479
|
 | compiler-rt/lib/fuzzer/FuzzerLoop.cpp |
 | compiler-rt/lib/fuzzer/FuzzerCorpus.h |
 | compiler-rt/lib/fuzzer/tests/FuzzerUnittest.cpp |
Commit
6bb7d2474fe4d3a68e2d1efefaa0bc8a244737bb
by nicolas.vasilache[mlir][Linalg] Add a first vectorization pattern for conv1d in NWCxWCF format.
This revision uses the newly refactored StructuredGenerator to create a simple vectorization for conv1d_nwc_wcf.
Note that the pattern is not specific to the op and is technically not even specific to the ConvolutionOpInterface (modulo minor details related to dilations and strides).
The overall design follows the same ideas as the lowering of vector::ContractionOp -> vector::OuterProduct: it seeks to be minimally complex, composable and extensible while avoiding inference analysis. Instead, we metaprogram the maps/indexings we expect and we match against them.
This is just a first stab and still needs to be evaluated for performance. Other tradeoffs are possible that should be explored.
Reviewed By: ftynse
Differential Revision: https://reviews.llvm.org/D111894
|
 | mlir/test/Dialect/Linalg/vectorize-convolution.mlir |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
 | mlir/include/mlir/Dialect/Utils/StructuredOpsUtils.h |
 | mlir/lib/Dialect/Vector/VectorTransforms.cpp |
 | mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Vectorization.cpp |
Commit
89950ade216bcabf3cb9acf2cf7218763fd40a92
by jeremy.morse[DebugInfo][InstrRef] Track a single variable at a time
Here's another performance patch for InstrRefBasedLDV: rather than processing all variable values in a scope at a time, instead, process one variable at a time. The benefits are twofold: * It's easier to reason about one variable at a time in your mind, * It improves performance, apparently from increased locality.
The downside is that the value-propagation code gets indented one level further, plus there's some churn in the unit tests.
Differential Revision: https://reviews.llvm.org/D111799
|
 | llvm/unittests/CodeGen/InstrRefLDVTest.cpp |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.cpp |
 | llvm/lib/CodeGen/LiveDebugValues/InstrRefBasedImpl.h |
Commit
6a99423390995f874ee4e345157523f4139ccbef
by jpienaar[mlir] Expand prefixing to OpFormatGen
Follow up to also use the prefixed emitters in OpFormatGen (moved getGetterName(s) and getSetterName(s) to Operator as that is most convenient usage wise even though it just depends on Dialect). Prefix accessors in Test dialect and follow up on missed changes in OpDefinitionsGen.
Differential Revision: https://reviews.llvm.org/D112118
|
 | mlir/lib/TableGen/Operator.cpp |
 | mlir/tools/mlir-tblgen/OpFormatGen.cpp |
 | mlir/test/lib/Dialect/Test/TestPatterns.cpp |
 | mlir/include/mlir/TableGen/Operator.h |
 | mlir/test/lib/Transforms/TestInlining.cpp |
 | mlir/test/lib/Dialect/Test/TestDialect.cpp |
 | mlir/tools/mlir-tblgen/OpDefinitionsGen.cpp |
 | mlir/test/lib/Dialect/Test/TestOps.td |
Commit
3efd2a0bec0298d804f274fcc10ea14431b61de1
by spatel[x86] make helper for useVPTERNLOG; NFC
See D112085 for another use case.
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
c959da9ef344a22e3753e2e62af46a63a33cd80f
by kadircet[clangd] Only publish preamble after rebuilds
Don't invoke parsing callback for preamble if clangd is using a previously built one.
Differential Revision: https://reviews.llvm.org/D112137
|
 | clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp |
 | clang-tools-extra/clangd/TUScheduler.cpp |
Commit
60e19f6752b7f19b022d8bdca0937c59b49811f9
by kadircet[clangd] Fix use-after-free in HeaderIncluderCache
Includer cache could get into a bad state when a main file went bad and added back afterwards. This patch adds a check to invalidate to prevent that.
Differential Revision: https://reviews.llvm.org/D112130
|
 | clang-tools-extra/clangd/TUScheduler.cpp |
 | clang-tools-extra/clangd/unittests/TUSchedulerTests.cpp |
Commit
fe1f0de00335a8e59aa6c08d1cdae7cf20e14f87
by craig.topper[RISCV][WebAssembly][TargetLowering] Allow expandCTLZ/expandCTTZ to rely on CTPOP expansion for vectors.
Our fallback expansion for CTLZ/CTTZ relies on CTPOP. If CTPOP isn't legal or custom for a vector type we would scalarize the CTLZ/CTTZ. This is different than CTPOP itself which would use a vector expansion.
This patch teaches expandCTLZ/CTTZ to rely on the vector CTPOP expansion instead of scalarizing. To do this I had to add additional checks to make sure the operations used by CTPOP expansions are all supported. Some of the operations were already needed for the CTLZ/CTTZ expansion.
This is a huge improvement to the RISCV which doesn't have a scalar ctlz or cttz in the base ISA.
For WebAssembly, I've added Custom lowering to keep the scalarizing behavior. I've also extended the scalarizing to CTPOP.
Differential Revision: https://reviews.llvm.org/D111919
|
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-ctlz.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-cttz.ll |
 | llvm/test/CodeGen/WebAssembly/simd-unsupported.ll |
Commit
0abb5d293cf7289780542fd9c5f0d84e5aadbdc8
by kazu[Sema, StaticAnalyzer] Use StringRef::contains (NFC)
|
 | clang/lib/Sema/SemaDeclAttr.cpp |
 | clang/lib/StaticAnalyzer/Core/CheckerContext.cpp |
 | clang/lib/StaticAnalyzer/Checkers/DirectIvarAssignment.cpp |
 | clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp |
 | clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp |
 | clang/lib/Sema/SemaExpr.cpp |
 | clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp |
 | clang/lib/StaticAnalyzer/Core/CallEvent.cpp |
 | clang/lib/Sema/SemaChecking.cpp |
 | clang/lib/StaticAnalyzer/Core/MemRegion.cpp |
Commit
a3ca7dd0ab9947e0fdde6de5c0d6b1952ac8ac94
by bjorn.a.pettersson[NewPM][test] Use -passes syntax in Mem2Reg lit tests
The legacy PM is deprecated, so use the new PM syntax in lit tests verifying the mem2reg pass.
|
 | llvm/test/Transforms/Mem2Reg/2005-06-30-ReadBeforeWrite.ll |
 | llvm/test/Transforms/Mem2Reg/debug-alloca-vla-2.ll |
 | llvm/test/Transforms/Mem2Reg/PromoteMemToRegister.ll |
 | llvm/test/Transforms/Mem2Reg/debug-alloca-phi.ll |
 | llvm/test/Transforms/Mem2Reg/debug-alloca-vla-1.ll |
 | llvm/test/Transforms/Mem2Reg/undef-order.ll |
 | llvm/test/Transforms/Mem2Reg/ConvertDebugInfo2.ll |
 | llvm/test/Transforms/Mem2Reg/pr24179.ll |
 | llvm/test/Transforms/Mem2Reg/UndefValuesMerge.ll |
 | llvm/test/Transforms/Mem2Reg/2005-11-28-Crash.ll |
 | llvm/test/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll |
 | llvm/test/Transforms/Mem2Reg/atomic.ll |
 | llvm/test/Transforms/Mem2Reg/2003-10-05-DeadPHIInsertion.ll |
 | llvm/test/Transforms/Mem2Reg/optnone.ll |
 | llvm/test/Transforms/Mem2Reg/ignore-droppable.ll |
 | llvm/test/Transforms/Mem2Reg/pr37632-unreachable-list-of-stores.ll |
 | llvm/test/Transforms/Mem2Reg/crash.ll |
 | llvm/test/Transforms/Mem2Reg/dbg-inline-scope-for-phi.ll |
 | llvm/test/Transforms/Mem2Reg/dbg-addr.ll |
 | llvm/test/Transforms/Mem2Reg/ConvertDebugInfo.ll |
 | llvm/test/Transforms/Mem2Reg/2003-06-26-IterativePromote.ll |
 | llvm/test/Transforms/Mem2Reg/debug-alloca-phi-2.ll |
 | llvm/test/Transforms/Mem2Reg/preserve-nonnull-load-metadata.ll |
 | llvm/test/Transforms/Mem2Reg/alloca_addrspace.ll |
 | llvm/test/Transforms/Mem2Reg/ignore-lifetime.ll |
 | llvm/test/Transforms/Mem2Reg/dbg-addr-inline-dse.ll |
 | llvm/test/Transforms/Mem2Reg/2003-04-24-MultipleIdenticalSuccessors.ll |
Commit
3d152bc49ddc87350eb1c588b083b24858bf6d51
by bjorn.a.pettersson[NewPM][test] Strickly use -passes in some more lit tests
Removed/replaced RUN lines using legacy PM syntax in favor of using -passes in lit tests for Float2Int, MetaRenamer, StripDeadPrototypes and StripSymbols.
|
 | llvm/test/Transforms/StripSymbols/strip-cov.ll |
 | llvm/test/Transforms/Float2Int/float2int-optnone.ll |
 | llvm/test/Transforms/StripSymbols/2007-01-15-llvm.used.ll |
 | llvm/test/Transforms/Float2Int/toolarge.ll |
 | llvm/test/Transforms/StripSymbols/block-address.ll |
 | llvm/test/Transforms/Float2Int/basic.ll |
 | llvm/test/Transforms/MetaRenamer/metarenamer.ll |
 | llvm/test/Transforms/MetaRenamer/main.ll |
 | llvm/test/Transforms/StripDeadPrototypes/basic.ll |
 | llvm/test/Transforms/StripSymbols/2010-08-25-crash.ll |
 | llvm/test/Transforms/StripSymbols/strip-dead-debug-info.ll |
Commit
aab0f2264aebe6cb89d5dcb30df664bfc4d8f1c3
by vyng[lld-macho] Fix dangling string reference when adding frameworks
In Driver.cpp, addFramework used std::string instance to represent the path of a framework, which will be freed after the function returns. However, this string is stored in loadedArchive, which will be used later to compare with path of newly added frameworks. This caused https://bugs.llvm.org/show_bug.cgi?id=52133. A test is included in this commit to reproduce this bug.
Now resolveDylibPath returns a StringRef instance, and it uses StringSaver to save its data, then returns it to functions on the top. This ensures the resolved framework path is still valid after LC_LINKER_OPTION is parsed.
Reviewed By: int3, #lld-macho, oontvoo
Differential Revision: https://reviews.llvm.org/D111706
|
 | lld/test/MachO/lc-linker-option.ll |
 | lld/MachO/DriverUtils.cpp |
 | lld/MachO/Driver.cpp |
 | lld/MachO/Driver.h |
 | lld/MachO/InputFiles.cpp |