Commit
c962b3fdf8dd7492a8c117ac32990a5e010d9894
by akuegel[mlir][Bazel][cmake] Add missing dependency.
After 2c7b0685e179 this dependency is needed.
|
 | mlir/lib/Dialect/Tensor/IR/CMakeLists.txt |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
61528a77780e696a657b1a55de6bb48db7026245
by yedeng.yd[NFC] Add tests for ODR checking of default template argument
|
 | clang/test/Modules/odr_hash.cpp |
Commit
3f72f9da43f0691094c0b23f142d295a784eeada
by ddchen[libc] Fix 64-bit Apple ARM support and header includes
Summary:
Reviewers: sivachandra
Subscribers:
Differential Revision: https://reviews.llvm.org/D114236
|
 | libc/src/__support/FPUtil/PlatformDefs.h |
 | libc/test/src/math/exhaustive/sinf_test.cpp |
 | libc/test/src/math/exhaustive/cosf_test.cpp |
 | libc/test/src/math/exhaustive/sqrtf_test.cpp |
 | libc/test/src/math/exhaustive/expm1f_test.cpp |
Commit
93122b25673b3b8256d372f04d3813b3e93bc643
by npopov[ARM] Don't look through pointer types in canTailPredicateLoop()
Inspecting the pointer element type here is incompatible with opaque pointers, and doesn't seem necessary to me. I think the intention might have been to check the type of load/store pointer arguments, but I believe those should get checked through their return type or value operand anyway. I don't get any test failures if I simply drop this.
Differential Revision: https://reviews.llvm.org/D118353
|
 | llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp |
Commit
f2c2a31dd7483be8ac98917cd3b800418c58c5f6
by npopov[OpenMPIRBuilder] Store element type in AtomicOpValue
With opaque pointers, we can no longer derive this from the pointer type, so we need to explicitly provide the element type the atomic operation should work with.
Differential Revision: https://reviews.llvm.org/D118359
|
 | llvm/unittests/Frontend/OpenMPIRBuilderTest.cpp |
 | mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp |
 | llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp |
 | llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h |
Commit
0d71f2e097b94bd785bcadfe38cb0875f7756d78
by ashaposhnikov[lld][ELF] Cleanup %t directory in tests, NFC
|
 | lld/test/ELF/aarch64-adrp-ldr-got-symbols.s |
 | lld/test/ELF/aarch64-adrp-ldr-got.s |
Commit
a4ad79c50a582664f8f87115c6a1a8d80252f6ec
by npopov[MLIR] Remove some pointer element type accesses
Use the MLIR pointer element type, rather than the LLVM pointer element type.
|
 | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |
Commit
d1c124e6e7006ff5597981f8adcb48b2e26b110d
by david.spickett[lldb][ARM/AArch64] Update dissembler to v9.3-a
This means sve2 is enabled by default and the v8.8 mops (memcpy and memset acceleration instructions) and HBC (hinted conditional branch) extensions can be disassembled.
v9.3-a is equivalent to v8.8-a except that in v9.0-a sve2 was enabled by default so v9.3-a includes that too.
MTE remains an optional extension, only enabled for specific CPUs.
Reviewed By: omjavaid
Differential Revision: https://reviews.llvm.org/D118358
|
 | lldb/source/Plugins/Disassembler/LLVMC/DisassemblerLLVMC.cpp |
Commit
59a3f65f5ed6b25b584d504fe4cf8473d4029ff3
by mgornyRevert "[lldb] [gdb-remote] Support getting siginfo via API"
This reverts commit 1a8f60f5f5b8638a3e8e7fb31ba7ae9e17a7ff2d. The API requires further work.
|
 | lldb/include/lldb/Target/Thread.h |
 | lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py |
 | lldb/bindings/interface/SBThread.i |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h |
 | lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h |
 | lldb/include/lldb/API/SBThread.h |
 | lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp |
 | lldb/include/lldb/API/SBType.h |
 | lldb/source/API/SBThread.cpp |
 | lldb/include/lldb/API/SBPlatform.h |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp |
 | lldb/include/lldb/API/SBTarget.h |
Commit
5b79d5acdb0eff563d49f38daaebe368766face8
by martin[MC] Remove a stray space after tab for COFF .def directives
This extra stray space after tab can be traced back to when printing of this directive was added originally in 4f01b783a3ca5b2544fe1b1677b5bcf6d91c6d2c. The same commit added inconsistent printing of space after the ELF .type directive too, which was fixed later in 77fe07a93aeb8feaf39b7d48ad8fc1e6c9e4c78e.
(This is kind of NFC, but it does alter the output, so it's not strictly non-functional in that sense.)
Differential Revision: https://reviews.llvm.org/D118401
|
 | llvm/lib/MC/MCAsmStreamer.cpp |
Commit
de5d38ef2de6a76c0a76673958ce1d49e5af2324
by martin[libcxx] Allow using thread safety annotations in MinGW mode
These were omitted in all Windows configurations, but it turns out that they work just fine in MinGW mode.
This allows converting a couple cases of "XFAIL: LIBCXX-WINDOWS-FIXME" into "XFAIL: msvc" as the bug is specific to MSVC mode (clang-cl).
Differential Revision: https://reviews.llvm.org/D118192
|
 | libcxx/test/libcxx/thread/thread.mutex/thread_safety_lock_guard.pass.cpp |
 | libcxx/test/libcxx/thread/thread.mutex/thread_safety_missing_unlock.fail.cpp |
 | libcxx/include/__config |
 | libcxx/test/libcxx/thread/thread.mutex/thread_safety_lock_unlock.pass.cpp |
 | libcxx/test/libcxx/thread/thread.mutex/thread_safety_requires_capability.pass.cpp |
Commit
9a9a372d38f445b07551b6c0932116666c0e35d4
by martin[libcxx] [test] Fix testcases that fail on systems with 16 bit wchar_t
Don't decode a UTF-8 character that is out of range for a 16 bit `wchar_t`.
Differential Revision: https://reviews.llvm.org/D118191
|
 | libcxx/test/libcxx/localization/locales/locale.convenience/conversions/conversions.string/ctor_move.pass.cpp |
Commit
96400f179ff640544964f3e51a756e41eb971a43
by flo[VPlan] Record whether scalar IVs are need in induction recipe. (NFC)
This explicitly records whether a scalar IV is needed in the VPWidenIntOrFpInductionRecipe, to remove a dependence on the cost-model during its ::execute.
It will also be used in D116123 to determine if a vector phi will be generated.
Reviewed By: Ayal
Differential Revision: https://reviews.llvm.org/D118167
|
 | llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp |
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/lib/Transforms/Vectorize/VPRecipeBuilder.h |
 | llvm/lib/Transforms/Vectorize/VPlan.h |
Commit
91e5096d82d8c4dbfe6f01527c25e16f5e2ba883
by npopov[InlineFunction] Use phis() iterator (NFC)
|
 | llvm/lib/Transforms/Utils/InlineFunction.cpp |
Commit
2d75f627221e434c9ff64cdd2c47da9dcb437967
by pavel[lldb] Convert DWARF log to the new API
This also deletes some dead log statements (log initialization commented out).
|
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAranges.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDebugMap.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/DebugNamesDWARFIndex.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/AppleDWARFIndex.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/LogChannelDWARF.h |
 | lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugArangeSet.cpp |
Commit
a584b1a4d17a834490d40ea12281d36c3cfb89c1
by ro[Sparc] Implement BFD_RELOC_NONE
`instrprof-icall-promo.test` `FAIL`s on Solaris/sparcv9:
Profile-sparc :: instrprof-icall-promo.test Profile-sparcv9 :: instrprof-icall-promo.test
when compiling `compiler-rt/test/profile/Inputs/instrprof-icall-promo_2.cpp` with
fatal error: error in backend: Relocation for CG Profile could not be created: unknown relocation name
This happens because the Sparc backend doesn't implement `BFD_RELOC_NONE`. This patch fixes that, following what X86 does.
Tested on `sparcv9-sun-solaris2.11`.
Differential Revision: https://reviews.llvm.org/D118136
|
 | llvm/test/MC/Sparc/reloc-directive.s |
 | llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp |
 | llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp |
Commit
1f08b0867412d5696ed624a2da78bdba2cc672c3
by amilendra.kodithuwakku[clang][ARM] Emit warnings when PACBTI-M is used with unsupported architectures
Branch protection in M-class is supported by - Armv8.1-M.Main - Armv8-M.Main - Armv7-M
Attempting to enable this for other architectures, either by command-line (e.g -mbranch-protection=bti) or by target attribute in source code (e.g. __attribute__((target("branch-protection=..."))) ) will generate a warning.
In both cases function attributes related to branch protection will not be emitted. Regardless of the warning, module level attributes related to branch protection will be emitted when it is enabled via the command-line.
The following people also contributed to this patch: - Victor Campos
Reviewed By: chill
Differential Revision: https://reviews.llvm.org/D115501
|
 | clang/test/Frontend/arm-invalid-branch-protection.c |
 | llvm/include/llvm/ADT/Triple.h |
 | clang/test/Driver/arm-security-options.c |
 | clang/lib/Basic/Targets/ARM.cpp |
 | clang/test/Sema/arm-branch-protection-attr-warn.c |
 | clang/lib/CodeGen/CodeGenModule.cpp |
 | clang/test/CodeGen/arm-branch-protection-attr-2.c |
 | clang/lib/Basic/Targets/ARM.h |
 | clang/test/Frontend/arm-ignore-branch-protection-option.c |
 | llvm/unittests/ADT/TripleTest.cpp |
 | clang/test/Sema/arm-branch-protection.c |
 | clang/lib/Sema/SemaDeclAttr.cpp |
 | clang/lib/Basic/Targets/AArch64.cpp |
 | clang/lib/CodeGen/TargetInfo.cpp |
 | clang/include/clang/Basic/TargetInfo.h |
 | clang/test/Driver/aarch64-security-options.c |
 | clang/lib/Basic/Targets/AArch64.h |
 | clang/include/clang/Basic/DiagnosticCommonKinds.td |
 | clang/test/Frontend/arm-branch-protection-default-arch.c |
 | clang/lib/Driver/ToolChains/Clang.cpp |
 | clang/test/CodeGen/arm_acle.c |
Commit
14e8bedc98071b0c159345b472807c011d7b3f8a
by pierre.gousseau[tblgen] Disable lsan weak hook when building with msvc
This change is to fix a link time error when building llvm with msvc.
MSVC's implementation does not support weak hook or lsan so this change disables lsan's weak hook definition. Only GCC supports LSan.
Tested with visual studio 2019 v16.9.6
Reviewed By: aaron.ballman, rnk
Differential Revision: https://reviews.llvm.org/D118162
|
 | llvm/utils/TableGen/TableGen.cpp |
Commit
8860e69a254a08585ad2c9bc9b9261b54d584d0c
by martin[ADT] Remove unused variables in Triple.h, fix build warnings with GCC. NFC.
|
 | llvm/include/llvm/ADT/Triple.h |
Commit
249a21ab188419b019adea21716f5c779c063de3
by marek.kurdej+llvm.org[clang-format] Remove useless npos parameter from substr. NFC.
|
 | clang/lib/Format/BreakableToken.cpp |
Commit
bfd8210f6f470d79a78f57ebe02650bbb5a79129
by sven.vanhaastregt[OpenCL] opencl-c.h: refactor named addrspace builtins
The named address space overloads of builtins that take a pointer argument are conditionalized on the `__opencl_c_generic_address_space` feature macro (in a `#else` body). Introduce an internal feature macro instead, such that their availability can be controlled in a single place and independently of the generic address space feature macro.
This commit does not change the available builtins.
Differential Revision: https://reviews.llvm.org/D118158
|
 | clang/lib/Headers/opencl-c-base.h |
 | clang/lib/Headers/opencl-c.h |
Commit
8a0d0a3a547197add626c81b12c939fe67bdacd0
by clementval[flang][NFC] Remove obsolete FIRBuilder and BoxValue
This patch removes some files made obsolete by newer version of them available in the Optimizer directory. `flang/include/flang/Lower/FIRBuilder.h` and `flang/lib/Lower/FIRBuilder.cpp` are removed and replace by the newer version present in `flang/include/flang/Optimizer/Builder/FIRBuilder.h` and `flang/lib/Optimizer/Builder/FIRBuilder.cpp`. `flang/include/flang/Lower/Support/BoxValue.h` and `flang/lib/Lower/ConvertExpr.cpp` are removed and replace by the newer version present in `flang/include/flang/Optimizer/Builder/BoxValue.h`
This patch is a preparation to be able to upstream the lowering from fir-dev.
Reviewed By: jeanPerier, kiranchandramohan
Differential Revision: https://reviews.llvm.org/D118404
|
 | flang/lib/Lower/Coarray.cpp |
 | flang/lib/Lower/OpenACC.cpp |
 | flang/include/flang/Lower/AbstractConverter.h |
 | flang/lib/Lower/IntrinsicCall.cpp |
 | flang/lib/Lower/SymbolMap.h |
 | flang/include/flang/Lower/ComplexExpr.h |
 | flang/include/flang/Lower/Bridge.h |
 | flang/lib/Lower/OpenMP.cpp |
 | flang/include/flang/Lower/Support/BoxValue.h |
 | flang/include/flang/Lower/DoLoopHelper.h |
 | flang/lib/Lower/CMakeLists.txt |
 | flang/include/flang/Lower/FIRBuilder.h |
 | flang/lib/Lower/CharacterRuntime.cpp |
 | flang/include/flang/Lower/CharacterExpr.h |
 | flang/lib/Lower/FIRBuilder.cpp |
 | flang/include/flang/Optimizer/Builder/Character.h |
 | flang/lib/Lower/ConvertExpr.cpp |
 | flang/lib/Lower/IO.cpp |
 | flang/include/flang/Lower/IntrinsicCall.h |
 | flang/lib/Lower/CharacterExpr.cpp |
 | flang/include/flang/Lower/Coarray.h |
Commit
47a66f1c5ad5a27f38b667a7d9849eb11c07bbff
by clementval[flang][NFC] Remove obsolete DoLoopHelper
During the upstreaming process from fir-dev some new builder have been introduced in the `flang/Optimizer/Builder` directory. This patch removes the obsolete DoLoopHelper still present in the lowering directories and makes use of the new one where needed.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: kiranchandramohan
Differential Revision: https://reviews.llvm.org/D118442
|
 | flang/lib/Lower/CharacterExpr.cpp |
 | flang/lib/Lower/DoLoopHelper.cpp |
 | flang/include/flang/Lower/DoLoopHelper.h |
 | flang/lib/Lower/CMakeLists.txt |
Commit
aa45fc41c8cdbc3001959f7c59c2483468ca8ad4
by martin[sanitizers] Silence warnings about unused variables in i386 build. NFC.
|
 | compiler-rt/lib/interception/interception_win.cpp |
Commit
b339bbdb197052ec4a346d95e74cdffa17469904
by flo[Matrix] Use ArrayType for allocas instead of VectorType.
When creating an alloca to copy a matrix due to memory conflicts, those allocas used to use VectorTypes, which forced them to have huge alignments for large vectors.
This patch updates LowerMatrixIntrinsics to use a corresponding array type, like Clang already does, to get more manageable alignments.
Reviewed By: anemet, thegameg
Differential Revision: https://reviews.llvm.org/D118239
|
 | llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-loops.ll |
 | llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused.ll |
 | llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-multiple-blocks.ll |
 | llvm/lib/Transforms/Scalar/LowerMatrixIntrinsics.cpp |
 | llvm/test/Transforms/LowerMatrixIntrinsics/multiply-fused-dominance.ll |
Commit
5b3b008cf07df2b6ae8b0f49b6557dee7ad29262
by sgueltonMove llvm::array_lenghtof to llvm/ADT/STLArrayExtras.h
This moves the dependency of several files on include/llvm/ADT/STLExtras.h to the much shorter llvm/ADT/STLArrayExtras.h
Differential Revision: https://reviews.llvm.org/D118342
|
 | llvm/include/llvm/ADT/STLArrayExtras.h |
 | llvm/lib/Support/Signals.cpp |
 | llvm/lib/Support/raw_ostream.cpp |
 | llvm/include/llvm/ADT/STLExtras.h |
 | llvm/lib/Support/Triple.cpp |
 | llvm/lib/Support/ARMAttributeParser.cpp |
Commit
b2e0a6d95a261563b166694ef8bb92110376c0c5
by sgueltonCleanup includes for LLVMBitstream
This is a very small library, so only a few changes and very little gain.
$ clang++ -E -Iinclude -I../llvm/include ../llvm/lib/Bitstream/Reader/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l before: 65777 after: 64997
Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup
Differential Revision: https://reviews.llvm.org/D118373
|
 | llvm/include/llvm/Bitstream/BitstreamReader.h |
Commit
92f49b89e2d8aaa7826d96ec2d45dfe1102371b9
by sgueltonCleanup include dependencies for LLVMTableGen
Based on the output of include-what-you-use. No other library seems affected by the new forward declaration.
$ clang++ -E -Iinclude -I../llvm/include ../llvm/lib/TableGen/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l before: 795231 after: 750654
Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D118374
|
 | llvm/lib/TableGen/DetailedRecordsBackend.cpp |
 | llvm/lib/TableGen/JSONBackend.cpp |
 | llvm/lib/TableGen/Record.cpp |
 | llvm/lib/TableGen/SetTheory.cpp |
 | llvm/lib/TableGen/TableGenBackendSkeleton.cpp |
 | llvm/lib/TableGen/Main.cpp |
 | llvm/lib/TableGen/TGParser.cpp |
Commit
bd059b3bc97aa15904e93cccc983ad638ad2310e
by sgueltonCleanup includes for LLVMTableGenGlobalISel
Based on the output of include-what-you-use. No big deal here, it's a utils library and it doesn't seem to be used a lot across the codebase.
$ clang++ -E -Iinclude -I../llvm/include ../llvm/utils/TableGen/GlobalISel/*.cpp -std=c++14 -fno-rtti -fno-exceptions | wc -l before: 573143 after: 568908
Related Discourse thread: https://llvm.discourse.group/t/include-what-you-use-include-cleanup Differential Revision: https://reviews.llvm.org/D118375
|
 | llvm/utils/TableGen/GlobalISel/CodeExpander.h |
 | llvm/lib/TableGen/TableGenBackendSkeleton.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchTree.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.cpp |
 | llvm/utils/TableGen/GICombinerEmitter.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagEdge.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagPredicate.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagPredicate.h |
 | llvm/utils/TableGen/GlobalISel/CodeExpander.cpp |
 | llvm/utils/TableGen/GlobalISel/GIMatchDag.h |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagInstr.h |
 | llvm/utils/TableGen/GlobalISel/GIMatchDagPredicateDependencyEdge.h |
Commit
03c59765b3eb2f2233728da8e16637f802147d66
by martinclang-format: [JS] sort import aliases. Users can define aliases for long symbols using import aliases:
import X = A.B.C;
Previously, these were unhandled and would terminate import sorting. With this change, aliases sort as their own group, coming last after all other imports.
Aliases are not sorted within their group, as they may reference each other, so order is significant.
This reverts commit f750c3d95a0c8bf1d21380ae753fce12010a7561. It fixes the msan issue by not parsing past the end of the line when handling import aliases.
Differential Revision: https://reviews.llvm.org/D118446
|
 | clang/unittests/Format/SortImportsTestJS.cpp |
 | clang/lib/Format/SortJavaScriptImports.cpp |
Commit
f40475c7fd71d8b525d04536191c70ae0c87cc22
by akuegel[mlir] Move SCF utils implementations to SCF/Utils.
BEGIN_PUBLIC [mlir] Move SCF utils implementations to SCF/Utils. END_PUBLIC
|
 | utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel |
 | mlir/lib/Dialect/SCF/Transforms/LoopPipelining.cpp |
 | mlir/lib/Dialect/SCF/Transforms/ParallelLoopCollapsing.cpp |
 | mlir/lib/Dialect/SCF/Transforms/AffineCanonicalizationUtils.cpp |
 | mlir/lib/Dialect/SCF/Utils/CMakeLists.txt |
 | mlir/lib/Dialect/SCF/Transforms/LoopSpecialization.cpp |
 | mlir/lib/Dialect/SCF/Utils/AffineCanonicalizationUtils.cpp |
 | mlir/test/lib/Dialect/SCF/CMakeLists.txt |
 | mlir/include/mlir/Dialect/Linalg/Transforms/Transforms.h |
 | mlir/include/mlir/Dialect/SCF/Transforms.h |
 | mlir/lib/Dialect/SCF/Transforms/ParallelLoopTiling.cpp |
 | mlir/include/mlir/Dialect/SCF/Utils/AffineCanonicalizationUtils.h |
 | mlir/lib/Dialect/Linalg/Transforms/Hoisting.cpp |
 | mlir/lib/Dialect/SCF/Transforms/LoopRangeFolding.cpp |
 | mlir/lib/Dialect/Linalg/Transforms/Loops.cpp |
 | mlir/test/lib/Dialect/SCF/TestLoopParametricTiling.cpp |
 | mlir/test/lib/Dialect/SCF/TestSCFUtils.cpp |
 | mlir/include/mlir/Dialect/SCF/Utils/Utils.h |
 | mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt |
 | mlir/lib/Dialect/SCF/Utils/Utils.cpp |
 | mlir/lib/Dialect/SCF/Transforms/Utils.cpp |
 | mlir/lib/Dialect/SparseTensor/Transforms/CMakeLists.txt |
 | mlir/lib/Dialect/Linalg/Transforms/HoistPadding.cpp |
 | mlir/test/lib/Dialect/SCF/TestLoopUnrolling.cpp |
 | mlir/lib/Dialect/SCF/CMakeLists.txt |
 | mlir/lib/Dialect/SCF/Transforms/LoopCanonicalization.cpp |
 | mlir/include/mlir/Dialect/SCF/AffineCanonicalizationUtils.h |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
 | mlir/lib/Dialect/Affine/Transforms/LoopCoalescing.cpp |
 | mlir/include/mlir/Dialect/SCF/Utils.h |
 | mlir/lib/Dialect/SCF/Transforms/CMakeLists.txt |
 | mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt |
Commit
f4d5195d2fff06e2e3daad136f909143324d0485
by marek.kurdej+llvm.org[clang-format] Move irrelevant code from getRangeLength to getRemainingLength. NFC.
|
 | clang/unittests/Format/FormatTestJS.cpp |
 | clang/lib/Format/BreakableToken.cpp |
Commit
93c9b39d25ce842a911e800f68432668403b8aca
by llvm-dev[X86] Fix MOVMSK(CONCAT(X,Y)) -> MOVMSK(AND/OR(X,Y)) fold for float types and demanded elements
rG9103b73fe052 was assuming that we could OR/AND with the source vector, but that will fail on float/double vectors without bitcasting - it also missed the case that any_of checks might be testing less than all the source elements
|
 | llvm/test/CodeGen/X86/combine-movmsk-avx.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
f7d2afbac904d3605b984b5b34cfd3aec8616e63
by martin[CodeGen] Emit COFF symbol type for function aliases
On the level of the generated object files, both symbols (both original and alias) are generally indistinguishable - both are regular defined symbols. But previously, only the original function had the COFF ComplexType set to IMAGE_SYM_DTYPE_FUNCTION, while the symbol created via an alias had the type set to IMAGE_SYM_DTYPE_NULL.
This matches what GCC does, which emits directives for setting the COFF symbol type for this kind of alias symbol too.
This makes a difference when GNU ld.bfd exports symbols without dllexport directives or a def file - it seems to decide between function or data exports based on the COFF symbol type. This means that functions created via aliases, like some C++ constructors, are exported as data symbols (missing the thunk for calling without dllimport).
The hasnt been an issue when doing the same with LLD, as LLD decides between function or data export based on the flags of the section that the symbol points at.
This should fix the root cause of https://github.com/msys2/MINGW-packages/issues/10547.
Differential Revision: https://reviews.llvm.org/D118328
|
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
 | llvm/test/CodeGen/X86/coff-alias-type.ll |
Commit
fabaca10b86f77f7d2d34db91fa6b284da924395
by hansRevert "[InstCombine] Fold and-reduce idiom"
It causes builds to fail with
llvm/include/llvm/Support/Casting.h:269: typename llvm::cast_retty<X, Y*>::ret_type llvm::cast(Y*) [with X = llvm::IntegerType; Y = const llvm::Type; typename llvm::cast_retty<X, Y*>::ret_type = const llvm::IntegerType*]: Assertion `isa<X>(Val) && "cast<Ty>() argument of incompatible type!"' failed.
See the code review for link to a reproducer.
> This patch introduces folding of and-reduce idiom and generates code > that is easier to read and which is lest costly in terms of icmp operations. > The folding is > ``` > icmp eq (bitcast(icmp ne (lhs, rhs)), 0) > ``` > into > ``` > icmp eq(bitcast(lhs), bitcast(rhs)) > ``` > > See PR53419. > > Differential Revision: https://reviews.llvm.org/D118317 > Reviewed By: lebedev.ri, spatel
This reverts commit 8599bb0f26738ed88aae62aba57d82f7cf326cf9.
This also revertes the dependent change:
"[Test] Add 'ne' tests for and-reduce pattern folding"
This reverts commit a4aaa5995308ac2ba1bf180c9ce9c321cdb9f28a.
|
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
 | llvm/test/Transforms/InstCombine/icmp-vec.ll |
 | llvm/test/Transforms/InstCombine/reduction-and-sext-zext-i1.ll |
 | llvm/test/Transforms/InstCombine/reduction-or-sext-zext-i1.ll |
Commit
d7424939a6d37caee912092ad2e644453229442f
by ybrevnov[BasicAA] Add support for memmove intrinsic
Currently, basic AA has special support for llvm.memcpy.* intrinsics. This change extends this support for any memory trancsfer opration and in particular llvm.memmove.* intrinsic.
Reviewed By: reames, nikic
Differential Revision: https://reviews.llvm.org/D117095
|
 | llvm/test/Analysis/BasicAA/deoptimize.ll |
 | llvm/lib/Analysis/BasicAliasAnalysis.cpp |
Commit
cd79ca6136c34f32e7ed643b6afefa6823b286c8
by flo[ConstraintElimination] Add sub nuw test with signed predicates.
Add missing test coverage for `sub nuw` combined with both unsigned and signed predicates.
|
 | llvm/test/Transforms/ConstraintElimination/mixed-signed-unsigned-predicates.ll |
Commit
c26729251588cb6e9e20c3edf67d14ac9b549f9b
by martinclang-format: [JS] fix uninitialized memory.
SortJavaScriptImports attempts to set its currently parsed token to an invalid token when it reaches the end of the line. However in doing so, it used a `FormatToken`, which contains a `Token Tok`. `Token` does not have a constructor, so its fields start out as uninitialized memory.
`Token::startToken()` initializes all fields. Calling it in `JavaScriptImportSorter`'s constructor thus fixes the problem.
Differential Revision: https://reviews.llvm.org/D118448
|
 | clang/lib/Format/SortJavaScriptImports.cpp |
Commit
cce6490eca5be1661178078e7cccdcdfbda622f4
by llvm-dev[X86] combineSetCCMOVMSK - match all_of patterns with X86ISD::CMP as well as X86ISD::SUB
Previous folds by combineSetCCMOVMSK might have converted these to CMP when changing the bitwidth, and the CMP->SUB fold might not have happened (or will happen)
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/movmsk-cmp.ll |
 | llvm/test/CodeGen/X86/vector-compare-all_of.ll |
 | llvm/test/CodeGen/X86/vector-reduce-and-bool.ll |
Commit
402f91bcbb5157a122b92366b0f5f9a917df06a3
by djordje.todorovic[llvm-mca] Plot as result of comparing multiple files
This patch introduces a new options for script llvm-mca-compare.py (-plot-resource-pressure, -plot) to draw plots for llvm-mca tool statistics and option (--plot-path) to specify relative path where you want to save the plots.
Differential Revision: https://reviews.llvm.org/D115718
|
 | llvm/utils/llvm-mca-compare.py |
Commit
6297f929f73134736fadf704056fda3dee4ace9b
by fraser[RISCV] Fix FileCheck prefixes in RVV test
The LMULMAX check names didn't match the options we were passing to llc (they were swapped around) and we were silently missing coverage for one test which differs between RV32 and RV64.
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll |
Commit
10879c26a20307abb3f0d29da6504f6cc9cc41e3
by fraser[RISCV] Add tests for possible splat optimizations
These splats -- whether BUILD_VECTOR or SPLAT_VECTOR -- are formed by first extracting a value from a vector and splatting it to all elements of the destination vector. These could be performed more optimally, avoiding the drop to scalar, using RVV's vrgather, for example.
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-fp-buildvec.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-int-buildvec.ll |
 | llvm/test/CodeGen/RISCV/rvv/splat-vectors.ll |
Commit
4f73528403944627c5d13f57ee7728c7f92b3c47
by bjorn.a.pettersson[test][NewGVN] Use -passes=newgvn instead of -newgvn
Use the new PM syntax when specifying the pipeline in regression tests previously running "opt -newgvn ..."
Instead we now do "opt -passes=newgvn ..."
Notice that this also changes the aa-pipeline to become the default aa-pipeline instead of just basic-aa. Since these tests haven't been explicitly requesting basic-aa in the past (compared to the test cases updated in a separate patch involving "-basic-aa -newgvn") it is assumed that the exact aa-pipeline isn't important for the validity of the test cases. An alternative could have been to add -aa-pipeline=basic-aa as well to the run lines, but that might just add clutter in case the test cases do not care about the aa-pipeline.
This is another step to move away from the legacy PM syntax when specifying passes in opt.
Differential Revision: https://reviews.llvm.org/D118341
|
 | llvm/test/Transforms/NewGVN/2007-07-26-NonRedundant.ll |
 | llvm/test/Transforms/NewGVN/dbg-redundant-load.ll |
 | llvm/test/Transforms/NewGVN/pr34452.ll |
 | llvm/test/Transforms/NewGVN/opt-remarks-xfail.ll |
 | llvm/test/Transforms/NewGVN/phi-of-ops-simplification-dependencies.ll |
 | llvm/test/Transforms/NewGVN/commute.ll |
 | llvm/test/Transforms/NewGVN/compare-condition-changes.ll |
 | llvm/test/Transforms/NewGVN/eliminate-ssacopy.ll |
 | llvm/test/Transforms/NewGVN/non-integral-pointers.ll |
 | llvm/test/Transforms/NewGVN/pr32838.ll |
 | llvm/test/Transforms/NewGVN/2011-07-07-MatchIntrinsicExtract.ll |
 | llvm/test/Transforms/NewGVN/2007-07-30-PredIDom.ll |
 | llvm/test/Transforms/NewGVN/rle-no-phi-translate-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr33204.ll |
 | llvm/test/Transforms/NewGVN/pr33461.ll |
 | llvm/test/Transforms/NewGVN/2008-02-13-NewPHI.ll |
 | llvm/test/Transforms/NewGVN/pr32836.ll |
 | llvm/test/Transforms/NewGVN/crash.ll |
 | llvm/test/Transforms/NewGVN/propagate-ir-flags.ll |
 | llvm/test/Transforms/NewGVN/2007-07-25-NestedLoop.ll |
 | llvm/test/Transforms/NewGVN/2007-07-25-SinglePredecessor.ll |
 | llvm/test/Transforms/NewGVN/edge.ll |
 | llvm/test/Transforms/NewGVN/flags-simplify.ll |
 | llvm/test/Transforms/NewGVN/2008-12-09-SelfRemove.ll |
 | llvm/test/Transforms/NewGVN/simp-to-self.ll |
 | llvm/test/Transforms/NewGVN/pr17732.ll |
 | llvm/test/Transforms/NewGVN/bitcast-of-call.ll |
 | llvm/test/Transforms/NewGVN/2008-12-12-RLE-Crash.ll |
 | llvm/test/Transforms/NewGVN/storeoverstore.ll |
 | llvm/test/Transforms/NewGVN/pr14166-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr35074.ll |
 | llvm/test/Transforms/NewGVN/2007-07-25-Loop.ll |
 | llvm/test/Transforms/NewGVN/load-from-unreachable-predecessor.ll |
 | llvm/test/Transforms/NewGVN/pr43441.ll |
 | llvm/test/Transforms/NewGVN/2008-12-14-rle-reanalyze.ll |
 | llvm/test/Transforms/NewGVN/pr33116.ll |
 | llvm/test/Transforms/NewGVN/pr33432.ll |
 | llvm/test/Transforms/NewGVN/pr33305.ll |
 | llvm/test/Transforms/NewGVN/assumes.ll |
 | llvm/test/Transforms/NewGVN/pr33014.ll |
 | llvm/test/Transforms/NewGVN/2008-02-12-UndefLoad-xfail.ll |
 | llvm/test/Transforms/NewGVN/2009-01-22-SortInvalidation.ll |
 | llvm/test/Transforms/NewGVN/phi-edge-handling.ll |
 | llvm/test/Transforms/NewGVN/pr32852.ll |
 | llvm/test/Transforms/NewGVN/int_sideeffect.ll |
 | llvm/test/Transforms/NewGVN/pr32897.ll |
 | llvm/test/Transforms/NewGVN/pr34135.ll |
 | llvm/test/Transforms/NewGVN/metadata-simplify.ll |
 | llvm/test/Transforms/NewGVN/pr33185.ll |
 | llvm/test/Transforms/InstSimplify/ConstProp/gep-constanfolding-error.ll |
 | llvm/test/Transforms/NewGVN/pr33165-distribute-undef.ll |
 | llvm/test/Transforms/NewGVN/addrspacecast.ll |
 | llvm/test/Transforms/NewGVN/debugloc-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr32607.ll |
 | llvm/test/Transforms/NewGVN/2011-04-27-phioperands.ll |
 | llvm/test/Transforms/NewGVN/2009-11-12-MemDepMallocBitCast.ll |
 | llvm/test/Transforms/NewGVN/pr32952.ll |
 | llvm/test/Transforms/NewGVN/2008-12-15-CacheVisited.ll |
 | llvm/test/Transforms/NewGVN/pr32403.ll |
 | llvm/test/Transforms/NewGVN/2009-01-21-SortInvalidation.ll |
 | llvm/test/Transforms/NewGVN/pre-compare.ll |
 | llvm/test/Transforms/NewGVN/2007-07-26-PhiErasure.ll |
 | llvm/test/Transforms/NewGVN/pr33086.ll |
 | llvm/test/Transforms/NewGVN/todo-pr37121-seens-this-value-a-lot.ll |
 | llvm/test/Transforms/NewGVN/readattrs.ll |
 | llvm/test/Transforms/NewGVN/invariant.start.ll |
 | llvm/test/Transforms/NewGVN/pr32845.ll |
 | llvm/test/Transforms/NewGVN/big-endian.ll |
 | llvm/test/Transforms/NewGVN/metadata-nonnull.ll |
 | llvm/test/Transforms/NewGVN/pr34430.ll |
 | llvm/test/Transforms/NewGVN/verify-memoryphi.ll |
 | llvm/test/Transforms/NewGVN/pr33720.ll |
 | llvm/test/Transforms/NewGVN/2009-07-13-MemDepSortFail.ll |
 | llvm/test/Transforms/NewGVN/todo-pr35074-phi-of-ops.ll |
 | llvm/test/Transforms/NewGVN/assume-equal-xfail.ll |
 | llvm/test/Transforms/NewGVN/2009-03-10-PREOnVoid.ll |
 | llvm/test/Transforms/NewGVN/fold-const-expr.ll |
 | llvm/test/Transforms/NewGVN/pr25440.ll |
 | llvm/test/Transforms/NewGVN/2010-05-08-OneBit.ll |
 | llvm/test/Transforms/NewGVN/pr12979.ll |
 | llvm/test/Transforms/NewGVN/pr31758.ll |
 | llvm/test/Transforms/NewGVN/pr28562.ll |
 | llvm/test/Transforms/NewGVN/pr32934.ll |
 | llvm/test/Transforms/NewGVN/assume-equal.ll |
 | llvm/test/Transforms/NewGVN/flags.ll |
 | llvm/test/Transforms/NewGVN/pr35125.ll |
 | llvm/test/Transforms/NewGVN/todo-pr36335-phi-undef.ll |
 | llvm/test/Transforms/NewGVN/basic.ll |
 | llvm/test/Transforms/NewGVN/2012-05-22-PreCrash.ll |
 | llvm/test/Transforms/NewGVN/preserve-metadata-for-predicate-replacements.ll |
 | llvm/test/Transforms/NewGVN/br-identical.ll |
 | llvm/test/Transforms/NewGVN/phi-of-ops-move-block.ll |
 | llvm/test/Transforms/NewGVN/pr33187.ll |
 | llvm/test/Transforms/NewGVN/phi-of-ops-simplified-to-existing-value-then-changes-again.ll |
 | llvm/test/Transforms/NewGVN/pr32945.ll |
 | llvm/test/Transforms/NewGVN/2007-07-25-DominatedLoop.ll |
 | llvm/test/Transforms/NewGVN/todo-pr42422-phi-of-ops.ll |
 | llvm/test/Transforms/NewGVN/fpmath.ll |
Commit
bcdcf984cc4295de9734ed542069b82930c4ba17
by bjorn.a.pettersson[test][NewGVN] Use '-passes=newgvn' instead of '-basic-aa -newgvn'
This updates NewGVN test cases that were running "opt -basic-aa -newgvn ..." to run "opt -passes=newgvn ..." instead.
The pipeline will be more similar to what we used to have with legacy PM by doing it this way. The compatility mode that we've been using for awhile during transition from legacy PM to new PM, i.e. using the legacy syntax together with new PM, has resulted in a pipeline such as -passes='function(require<basic-aa>),function(newgvn)' but running the analysis in a separate function pass manager seem overly complicated for these tests.
Another difference is that we will get the default aa-pipeline instead of only running basic-aa. That might be a bit questioned (given that the tests originally specified basic-aa). The output is however identival for all the test cases modified here regardless of using basic-aa or the default aa-pipeline.
This is also another small step towards removal of the support for using the legacy PM syntax in opt.
Differential Revision: https://reviews.llvm.org/D118340
|
 | llvm/test/Transforms/NewGVN/malloc-load-removal.ll |
 | llvm/test/Transforms/NewGVN/pr31573.ll |
 | llvm/test/Transforms/NewGVN/range.ll |
 | llvm/test/Transforms/NewGVN/condprop-xfail.ll |
 | llvm/test/Transforms/NewGVN/memory-handling.ll |
 | llvm/test/Transforms/NewGVN/2008-07-02-Unreachable.ll |
 | llvm/test/Transforms/NewGVN/deadstore.ll |
 | llvm/test/Transforms/NewGVN/load-constant-mem.ll |
 | llvm/test/Transforms/NewGVN/calls-nonlocal-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr31483.ll |
 | llvm/test/Transforms/NewGVN/cond_br.ll |
 | llvm/test/Transforms/NewGVN/pr31501.ll |
 | llvm/test/Transforms/NewGVN/2007-07-26-InterlockingLoops.ll |
 | llvm/test/Transforms/NewGVN/equivalent-phi.ll |
 | llvm/test/Transforms/NewGVN/2011-09-07-TypeIdFor.ll |
 | llvm/test/Transforms/NewGVN/pr31613.ll |
 | llvm/test/Transforms/NewGVN/pr33196.ll |
 | llvm/test/Transforms/NewGVN/basic-undef-test.ll |
 | llvm/test/Transforms/NewGVN/pr31594.ll |
 | llvm/test/Transforms/NewGVN/refine-stores.ll |
 | llvm/test/Transforms/NewGVN/cyclic-phi-handling.ll |
 | llvm/test/Transforms/NewGVN/phi-translate-partial-alias.ll |
 | llvm/test/Transforms/NewGVN/calls-readonly.ll |
 | llvm/test/Transforms/NewGVN/2010-03-31-RedundantPHIs.ll |
 | llvm/test/Transforms/NewGVN/funclet.ll |
 | llvm/test/Transforms/NewGVN/condprop.ll |
 | llvm/test/Transforms/NewGVN/completeness.ll |
 | llvm/test/Transforms/NewGVN/basic-cyclic-opt.ll |
 | llvm/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr24397.ll |
 | llvm/test/Transforms/NewGVN/loadforward.ll |
 | llvm/test/Transforms/NewGVN/2007-07-31-RedundantPhi.ll |
 | llvm/test/Transforms/NewGVN/2016-08-30-MaskedScatterGather-xfail-inseltpoison.ll |
 | llvm/test/Transforms/NewGVN/MemdepMiscompile.ll |
 | llvm/test/Transforms/NewGVN/non-local-offset.ll |
 | llvm/test/Transforms/NewGVN/pr10820-xfail.ll |
 | llvm/test/Transforms/NewGVN/fence-xfail.ll |
 | llvm/test/Transforms/NewGVN/2007-07-25-InfiniteLoop.ll |
 | llvm/test/Transforms/NewGVN/pre-new-inst-xfail.ll |
 | llvm/test/Transforms/NewGVN/pr31682.ll |
 | llvm/test/Transforms/NewGVN/null-aliases-nothing.ll |
 | llvm/test/Transforms/NewGVN/rle-nonlocal.ll |
 | llvm/test/Transforms/NewGVN/lifetime-simple.ll |
 | llvm/test/Transforms/NewGVN/pr31472.ll |
 | llvm/test/Transforms/NewGVN/pr31491.ll |
 | llvm/test/Transforms/NewGVN/calloc-load-removal.ll |
 | llvm/test/Transforms/NewGVN/2007-07-31-NoDomInherit-xfail.ll |
 | llvm/test/Transforms/NewGVN/2010-11-13-Simplify.ll |
 | llvm/test/Transforms/NewGVN/predicates.ll |
 | llvm/test/Transforms/NewGVN/nonescaping-malloc-xfail.ll |
 | llvm/test/Transforms/NewGVN/rle-must-alias-xfail.ll |
Commit
cc8e3dadc464001b521f38a067586e583b904fc7
by sander.desmalen[AArch64][SVE] NFC: Add test for scaled stepvector.
This commutative test could be optimised into: index z0.d, x0, x1
But currently isn't yet.
|
 | llvm/test/CodeGen/AArch64/sve-stepvector.ll |
Commit
49178a2c4ee3f44b85d99c3730a7e71e2caf554a
by paul.walker[SVE] Extend isel pattern coverage for BIC.
Adds patterns of the form "(and a, (not b)) -> bic".
NOTE: With this support I'm inclined to remove AArch64ISD::BIC, but will leave that investigation for another time.
Differential Revision: https://reviews.llvm.org/D118365
|
 | llvm/test/CodeGen/AArch64/llvm-ir-to-intrinsic.ll |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/test/CodeGen/AArch64/sve-int-log.ll |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
Commit
835a737887cf565b3dba7bb73d405994009a478d
by llvm-dev[X86] Add test showing incorrect movmsk->ptest fold
We can't fold MOVMSK(BITCAST(PCMPEQ(X,0))) -> PTESTZ(X,X) if we're not testing every element comparison
|
 | llvm/test/CodeGen/X86/combine-movmsk.ll |
Commit
2a13beaa70beb91cc4ce2e804b36f21d0e760172
by llvm-dev[X86] combineSetCCMOVMSK - don't fold MOVMSK(BITCAST(PCMPEQ(X,0))) -> PTESTZ(X,X) if we're not testing every element comparison
|
 | llvm/test/CodeGen/X86/combine-movmsk.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
b6d9ca14c20f6f982a9fee4bebccf4761400f6aa
by aaronDo not crash when trying to encode a _BitInt type
Using a _BitInt (or _ExtInt) type as a block parameter or block return type hits an "unreachable" when trying to determine the encoding for the block. Instead of crashing, this patch handles it like some of the other types for which we don't yet have an encoding. The test case verifies we no longer crash, but does not verify that we provide any particular encoding (it can be updated once someone more familiar with ObjC steps in to define the encoding).
Fixes PR50503.
|
 | clang/test/CodeGenObjC/encode-test-bitint.m |
 | clang/lib/AST/ASTContext.cpp |
Commit
6277b909921d30e018c87b480231a9c2f51a9708
by clementval[flang] Add missing FIRBuilder library
Fix buildbot failure https://lab.llvm.org/buildbot/#/builders/160
|
 | flang/lib/Lower/CMakeLists.txt |
Commit
e9768a2a44a1501b82e3bbf9862b4ba2cc4b9cc3
by spatel[x86] add test for possible load scalarization fold; NFC
This is a minimal test to show a transform proposed in D118376.
|
 | llvm/test/CodeGen/X86/extractelement-load.ll |
Commit
f7c28332de71e55f1ab1b0fef72d598e427db3c3
by mascasa[HWASan] Leave pointer tagged when calling memmove.
Fixes a false positive that occurs when a user-implemented memmove is instrumented by HWASan.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D118180
|
 | compiler-rt/test/hwasan/TestCases/custom-memmove.c |
 | compiler-rt/lib/hwasan/hwasan_memintrinsics.cpp |
Commit
81bd67e18ae6ef90b68792f63eb94a10f22a353b
by david.truby[AArch64][SVE][VLS] Move extends into arguments of comparisons
When a comparison is extended and it would be free to extend the arguments to that comparison, we can propagate the extend into those arguments. This prevents extra instructions being generated to extend the result of the comparison, which is not free to extend.
This is a resubmission of D116812 with fixes that need another review.
Differential Revision: https://reviews.llvm.org/D118139
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-fixed-length-masked-loads.ll |
Commit
9cc5b064f185678be494fc48c18e832e10583e07
by amy.kwan1[PowerPC] Update handling of splat loads for v4i32/v4f32/v2i64 to require non-extending loads.
This patch updates how splat loads handled and is an extension of D106555.
Particularly, for v2i64/v4f32/v4i32 types, they are updated to handle only non-extending loads. For v8i16/v16i8 types, they are updated to handle extending loads only if the memory VT is the same vector element VT type.
A test case has been added to illustrate a scenario where a PPCISD::LD_SPLAT node should not be produced. In this test, it depicts the following f64 extending load used in a v2f64 build vector, but the extending load is actually used in more places other than the build vector (such as in t12 and t16). ``` Type-legalized selection DAG: %bb.0 'test:entry' SelectionDAG has 20 nodes: t0: ch = EntryToken t4: i64,ch = CopyFromReg t0, Register:i64 %1 t6: i64,ch = CopyFromReg t0, Register:i64 %2 t11: f64,ch = load<(load (s64) from %ir.b, !tbaa !7)> t0, t4, undef:i64 t16: f64 = fadd t31, t37 t34: ch = store<(store (s64) into %ir.c, !tbaa !7)> t31:1, t16, t6, undef:i64 t36: ch = TokenFactor t34, t37:1 t27: v2f64 = BUILD_VECTOR t37, t37 t22: ch,glue = CopyToReg t36, Register:v2f64 $v2, t27 t12: f64 = fadd t11, t37 t28: ch = store<(store (s64) into %ir.b, !tbaa !7)> t11:1, t12, t4, undef:i64 t31: f64,ch = load<(load (s64) from %ir.c, !tbaa !7)> t28, t6, undef:i64 t2: i64,ch = CopyFromReg t0, Register:i64 %0 t37: f64,ch = load<(load (s32) from %ir.a, !tbaa !3), anyext from f32> t0, t2, undef:i64 t23: ch = PPCISD::RET_FLAG t22, Register:v2f64 $v2, t22:1 ```
Differential Revision: https://reviews.llvm.org/D117803
|
 | llvm/test/CodeGen/PowerPC/load-and-splat.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
Commit
8b36c437df4a71553caa6fd7419f552b7aa7771d
by npopov[ArgPromotion] Make areFunctionArgsABICompatible() static (NFC)
This function used to be shared with the Attributor, but can now be made private.
|
 | llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h |
 | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp |
Commit
9d75ee1cd597a762c75e6b680e5af8039850a522
by llvm-dev[Sema] Add signed/unsigned integer mismatch tests for min/max elementwise builtins
As suggested on D117898
Differential Revision: https://reviews.llvm.org/D118464
|
 | clang/test/Sema/builtins-elementwise-math.c |
Commit
c7bb3665a1c4a06754e486d8567182821fa32b55
by llvm-dev[X86] SimplifyDemandedBitsForTargetNode - fold MOVMSK(YMM) -> MOVMSK(XMM)
If we don't demand the upper elements of the 256-bit vector, then just perform as a 128-bit vector
|
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/combine-movmsk-avx.ll |
Commit
de37912f000e7e8e42fbf16a832dd4020f85c06f
by jay.foad[update_test_checks] Fix option name in warning message
|
 | llvm/utils/UpdateTestChecks/common.py |
Commit
76fd78b4b35a6831af0b37ab74764892231077eb
by jeremy.morse[MVerifier] Don't check liveness of any debug instruction operands
Shiny new DBG_PHI instruction usually have physical registers as operands -- however, the machine verifier checks to see whether they're live, and occasionally this fails. There's a filter for DBG_VALUE instructions to not get verified in this way: expand it to exempt all debug instructions from liveness checking, which means DBG_PHIs get treated like DBG_VALUEs.
This also future proofs against us adding new debug instructions.
Differential Revision: https://reviews.llvm.org/D117891
|
 | llvm/lib/CodeGen/MachineVerifier.cpp |
 | llvm/test/DebugInfo/MIR/InstrRef/accept-nonlive-reg-phis.mir |
Commit
2dc45bf4de9c8af87c019ae958a842f3c9f118fb
by npopov[ArgPromotion] Add test for non-willreturn load hoisting (NFC)
In this case, we have no guarantee that the load is unconditionally executed, so the argument promotion is not legal.
|
 | llvm/test/Transforms/ArgumentPromotion/load-after-non-willreturn-call.ll |
Commit
0ebbf3435ff4c3c141549aaf0f791485c28f06f0
by npopov[ArgPromotion] Don't assume all entry block instrs are executed
We should abort this walk if we hit any instruction that is not guaranteed to transfer.
|
 | llvm/lib/Transforms/IPO/ArgumentPromotion.cpp |
 | llvm/test/Transforms/ArgumentPromotion/load-after-non-willreturn-call.ll |
Commit
5f856c5b308e5de9dc004e89bd5f447ac7e96435
by eopxd[NFC][RISCV] Bundle up ISAInfo updates and checks
Reviewed By: kito-cheng
Differential Revision: https://reviews.llvm.org/D118334
|
 | llvm/include/llvm/Support/RISCVISAInfo.h |
 | llvm/lib/Support/RISCVISAInfo.cpp |
Commit
588f121ada6d5418290e271bcaf2d1bada500912
by asb[RISCV][NFC] Make Zb* instruction naming match the convention used elsewhere in the RISC-V backend
Where the instruction mnemonic contains a dot, we name the corresponding instruction in the .td file using a _ in the place of the dot. e.g. LR_W rather than LRW. This commit updates RISCVInstrInfoZb.td to follow that convention.
|
 | llvm/lib/Target/RISCV/AsmParser/RISCVAsmParser.cpp |
 | llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp |
 | llvm/lib/Target/RISCV/RISCVSExtWRemoval.cpp |
 | llvm/lib/Target/RISCV/MCTargetDesc/RISCVMatInt.cpp |
 | llvm/lib/Target/RISCV/RISCVInstrInfo.cpp |
 | llvm/lib/Target/RISCV/RISCVInstrInfoZb.td |
Commit
b4b97ec813a02585000f30ac7d532dda74e8bfda
by spatel[x86] try harder to scalarize a vector load with extracted integer op uses
extract_vec_elt (load X), C --> scalar load (X+C)
As noted in the comment, DAGCombiner has this fold -- and the code in this patch is adapted from DAGCombiner::scalarizeExtractedVectorLoad() -- but x86 should benefit even if the loaded vector has other uses as long as we apply some other x86-specific conditions. The motivating example from #50310 is shown in vec_int_to_fp.ll.
Fixes #50310
Differential Revision: https://reviews.llvm.org/D118376
|
 | llvm/test/CodeGen/X86/bitcast-vector-bool.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
 | llvm/test/CodeGen/X86/oddsubvector.ll |
 | llvm/test/CodeGen/X86/avx512-cvt.ll |
 | llvm/test/CodeGen/X86/pr45378.ll |
 | llvm/test/CodeGen/X86/extractelement-load.ll |
 | llvm/test/CodeGen/X86/shrink_vmul.ll |
 | llvm/test/CodeGen/X86/scalar_widen_div.ll |
 | llvm/test/CodeGen/X86/vec_cast.ll |
 | llvm/test/CodeGen/X86/vec_int_to_fp.ll |
 | llvm/test/CodeGen/X86/2011-12-26-extractelement-duplicate-load.ll |
Commit
8a4293f3ef2b3a93ec309d6613f1bc791fafb446
by npopov[Loads] Require Align in isDereferenceableAndAlignedPointer() (NFC)
Now that loads always have an alignment, we should not perform an ABI alignment fallback here.
|
 | llvm/lib/Analysis/ValueTracking.cpp |
 | llvm/include/llvm/Analysis/Loads.h |
 | llvm/lib/Analysis/MemDerefPrinter.cpp |
 | llvm/lib/Analysis/Loads.cpp |
Commit
cf0357a5450e2b0d7e3aed28d3e0d53bc81849a6
by npopov[BasicBlockUtils] Fix typo in API name (NFC)
detatch -> detach. As this requires touching all uses, also lower-case it in accordance with the style guide.
|
 | llvm/lib/Transforms/IPO/Attributor.cpp |
 | llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp |
 | llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h |
 | llvm/lib/Transforms/Utils/BasicBlockUtils.cpp |
Commit
7d176844d05bf11b32c4379f1422379d3d979a1e
by npopov[CodeExtractor] Fix warning in assert (NFC)
|
 | llvm/lib/Transforms/Utils/CodeExtractor.cpp |
Commit
a9d5bb926d45e9464d539226e380ae6accc95952
by kito.cheng[RISCV] Use __extendhfsf2/__truncsfhf2 for fp16 <-> fp32
`__gnu_h2f_ieee` and `__gnu_f2h_ieee` are introduce by ARM and set that as default name for fp16 and fp32 conversion in LLVM.
However RISC-V GCC using default naming scheme for that, which is `__extendhfsf2` and `__truncsfhf2` for that, that cause runtime ABI incompatible issue.
Although we didn't have formal runtime ABI spec to specify those naming convention yet, but I think it would be great to fix the incompatible issue first.
And I've plan to create a runtime ABI spec undere psABI spec this year.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D118207
|
 | llvm/test/CodeGen/RISCV/fp16-promote.ll |
 | llvm/test/CodeGen/RISCV/half-intrinsics.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/half-arith.ll |
 | llvm/test/CodeGen/RISCV/copysign-casts.ll |
 | llvm/test/CodeGen/RISCV/calling-conv-half.ll |
 | llvm/test/CodeGen/RISCV/fpclamptosat_vec.ll |
 | llvm/test/CodeGen/RISCV/half-convert.ll |
 | llvm/test/CodeGen/RISCV/fpclamptosat.ll |
 | llvm/test/CodeGen/RISCV/rv32i-rv64i-half.ll |
Commit
b414954a5f1c2f8f6adecf20e5a433dfbc320cc2
by Augusto Noronha[lldb] Make ReadCStringFromMemory default to read from the file-cache.
Differential Revision: https://reviews.llvm.org/D118265
|
 | lldb/source/Target/Target.cpp |
 | lldb/include/lldb/Target/Target.h |
Commit
9939bb6682128235c9f0f6076d15ae5191d2dd05
by daltenty[NFC][AIX][clang] un-XFAIL gcc profile flag compat test
We can pass this test now thanks to recent changes that allow us to use PGO without LTO, so un-XFAIL the test and update the comments.
Differential Revision: https://reviews.llvm.org/D118474
|
 | clang/test/Profile/gcc-flag-compatibility-aix.c |
 | clang/test/Profile/gcc-flag-compatibility.c |
Commit
6db019582a52129935f0e4c9471401954ee1cecf
by arjunpitchanathan[MLIR] Introduce LexSimplex to support lexicographic optimization
This patch introduces a class LexSimplex that can currently be used to find the lexicographically minimal rational point in an IntegerPolyhedron. This is a series of patches leading to computing the lexicographically minimal integer lattice point as well parametric lexicographic minimization.
Reviewed By: Groverkss
Differential Revision: https://reviews.llvm.org/D117437
|
 | mlir/lib/Analysis/Presburger/Matrix.cpp |
 | mlir/unittests/Analysis/Presburger/IntegerPolyhedronTest.cpp |
 | mlir/lib/Analysis/Presburger/IntegerPolyhedron.cpp |
 | mlir/include/mlir/Analysis/Presburger/Matrix.h |
 | mlir/lib/Analysis/Presburger/Simplex.cpp |
 | mlir/include/mlir/Analysis/Presburger/Simplex.h |
 | mlir/include/mlir/Analysis/Presburger/IntegerPolyhedron.h |
Commit
6f4f745668eccf460ec1e0d34df4692f8e883b07
by jakeegan10[clang][deps] Adapt test to be compatible when the assembler is called by default
When `-fno-integrated-as` is in effect (the default on AIX) the cc1 job produces a `.s` file instead. This patch adapts the test to accept `.s` or `.o` files.
Reviewed By: jansvoboda11
Differential Revision: https://reviews.llvm.org/D118152
|
 | clang/test/ClangScanDeps/headerwithdirnamefollowedbyinclude.cpp |
 | clang/test/ClangScanDeps/headerwithdirname.cpp |
Commit
a858e25f1cf384af9f7350b92594467321070cf1
by sivachandra[libc][NFC] Create file with all permissions for the user in read_write_test.
|
 | libc/test/src/unistd/read_write_test.cpp |
Commit
ac666d1799c45a1ecd59f7503e1fc649deffd4d4
by mgorny[lldb] [gdb-remote] Support getting siginfo via API
Add Thread::GetSiginfo() and SBThread::GetSiginfo() methods to retrieve the siginfo value from server.
Differential Revision: https://reviews.llvm.org/D118055
|
 | lldb/source/API/SBThread.cpp |
 | lldb/source/Target/Thread.cpp |
 | lldb/bindings/interface/SBThread.i |
 | lldb/include/lldb/API/SBThread.h |
 | lldb/include/lldb/Target/Thread.h |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp |
 | lldb/test/API/functionalities/gdb_remote_client/TestGDBRemoteClient.py |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h |
 | lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp |
 | lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.h |
Commit
5d089d9a832c24c008ba0ecc0e28e82a7ad42297
by cullen.rhodes[DAGCombiner] Fix invalid size request in combineRepeatedFPDivisors
If we have a vector FP division with a splatted divisor, use getVectorMinNumElements when scaling the num of uses by splat factor.
For AArch64 the combine kicks in for the <vscale x 4 x float> case since it's above the fdiv threshold (3) when scaling num uses by splat factor, but the codegen is worse (splat + vector fdiv + vector fmul) than the <vscale x 2 x double> case (splat + vector fdiv).
If the combine could be converted into a scalar FP division by scalarizeBinOpOfSplats it may be cheaper, but it looks like this is predicated on the isExtractVecEltCheap TLI function which is implemented for x86 but not AArch64. Perhaps for now combineRepeatedFPDivisors should only scale num uses by splat if the division can be converted into scalar op.
Reviewed By: sdesmalen
Differential Revision: https://reviews.llvm.org/D118343
|
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/AArch64/fdiv-combine.ll |
Commit
c80d34985993a2e4f6a8ad6cc92b0bc6bde16797
by i[msan][tsan] Refine __fxstat{,at}{,64} condition
In glibc before 2.33, include/sys/stat.h defines fstat/fstat64 to `__fxstat/__fxstat64` and provides `__fxstat/__fxstat64` in libc_nonshared.a. The symbols are glibc specific and not needed on other systems.
Reviewed By: vitalybuka, #sanitizers
Differential Revision: https://reviews.llvm.org/D118423
|
 | compiler-rt/lib/tsan/rtl/tsan_interceptors_posix.cpp |
 | compiler-rt/lib/msan/msan_interceptors.cpp |
Commit
cec8b614f3843c169dc387520013745e4ff9886a
by a.bataev[SLP]Do not reorder top nodes if they do not require reordering.
No need to reorder the top nodes, if they are not stores or insertelement instructions and each node should be analized only once, when the bottom-to-top analysis is performed. We still endup with extractelements for the top node scalars and the final shuffle just adds an extra cost and currently crashes the compiler for PHI nodes.
Differential Revision: https://reviews.llvm.org/D116760
|
 | llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/reordered-top-scalars.ll |
Commit
de0c2d75bf06beebbd0b3084e390629dbb9df2e9
by craig.topper[RISCV] Use tablegen size for getInstSizeInBytes.
Fix the pseudos to have the correct size in the MCInstrDesc description.
Inspired by D118009 and D117970.
Reviewed By: asb
Differential Revision: https://reviews.llvm.org/D118175
|
 | llvm/lib/Target/RISCV/RISCVInstrInfo.td |
 | llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td |
 | llvm/lib/Target/RISCV/RISCVInstrInfoA.td |
 | llvm/lib/Target/RISCV/RISCVInstrInfo.cpp |
Commit
eea002a9c4712217a0cd0df4529abaaaad6644e2
by ellis.sparky.hoag[InstrProf][NFC] Move function out of InstrProf.h
`createIRLevelProfileFlagVar()` seems to be only used in `PGOInstrumentation.cpp` so we move it to that file. Then it can also take advantage of directly using options rather than passing them as arguments.
Reviewed By: kyulee, phosek
Differential Revision: https://reviews.llvm.org/D118097
|
 | llvm/lib/ProfileData/InstrProf.cpp |
 | llvm/include/llvm/ProfileData/InstrProf.h |
 | llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp |
Commit
ea05ee90596ceaa361950f818980d4997e4437b9
by craig.topper[RISCV] Preserve VL when truncating i64 gather/scatter indices on RV32.
We were creating a truncate with the default for the type, but for VP intrinsics we have a VL that we should use.
Reviewed By: frasercrmck
Differential Revision: https://reviews.llvm.org/D118406
|
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpgather.ll |
 | llvm/lib/Target/RISCV/RISCVISelLowering.cpp |
 | llvm/test/CodeGen/RISCV/rvv/vpscatter-sdnode.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-scatter.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-masked-gather.ll |
 | llvm/test/CodeGen/RISCV/rvv/fixed-vectors-vpscatter.ll |
 | llvm/test/CodeGen/RISCV/rvv/vpgather-sdnode.ll |
Commit
760e69223d83860ed4758f86a0de4686a8d51fd7
by wanyu9511[NFC][AIX]Disable new pcm tests on AIX
Same as D114481, the PCH reader looks for a `__clangast` section in the precompiled module file, which isn't present on AIX, and we don't support writing this custom section in XCOFF yet.
Reviewed By: Jake-Egan, daltenty, sfertile
Differential Revision: https://reviews.llvm.org/D118477
|
 | clang/test/ClangScanDeps/modules-symlink.c |