Commit
941fecc536f83523a919bcf62aa4ec57b2578b0b
by joker.ephStandardize `linalg.generic` on `args_in`/`args_out` instead of `inputCount`/`outputCount`
This also fixes the outdated use of `n_views` in the documentation.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D83795
|
 | mlir/lib/Dialect/Linalg/IR/LinalgOps.cpp |
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgStructuredOps.td |
Commit
d4b1a14f0a6f6c330dbd0f1aca281d27034307c2
by kirankumar.tp[flang][OpenMP] Enhance parser support for taskwait construct to OpenMP 5.0
Summary: This patch enhances parser support for taskwait construct to OpenMP 5.0.
2.17.5 taskwait Construct !$omp taskwait [clause[ [,] clause] ... ] where clause is one of the following: depend([depend-modifier,]dependence-type : locator-list)
The patch includes code changes and testcase modifications.
Reviewed By: Valentin Clement, Kiran Chandramohan
Differential Revision: https://reviews.llvm.org/D82255
|
 | flang/test/Semantics/omp-clause-validity01.f90 |
 | llvm/include/llvm/Frontend/OpenMP/OMP.td |
Commit
00f3579aea6e3d4a4b7464c3db47294f71cef9e4
by craig.topperRevert "[InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X transforms" and subsequent patches
This reverts most of the following patches due to reports of miscompiles. I've left the added test cases with comments updated to be FIXMEs.
1cf6f210a2e [IR] Disable select ? C : undef -> C fold in ConstantFoldSelectInstruction unless we know C isn't poison. 469da663f2d [InstSimplify] Re-enable select ?, undef, X -> X transform when X is provably not poison 122b0640fc9 [InstSimplify] Don't fold vectors of partial undef in SimplifySelectInst if the non-undef element value might produce poison ac0af12ed2f [InstSimplify] Add test cases for opportunities to fold select ?, X, undef -> X when we can prove X isn't poison 9b1e95329af [InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X transforms
|
 | llvm/lib/Analysis/InstructionSimplify.cpp |
 | clang/test/CodeGen/arm-mve-intrinsics/dup.c |
 | llvm/test/Transforms/InferAddressSpaces/AMDGPU/select.ll |
 | llvm/test/Transforms/InstSimplify/select.ll |
 | llvm/test/Transforms/InstCombine/select.ll |
 | llvm/lib/IR/ConstantFold.cpp |
Commit
00472067c34ccbceb2fad4b905524f3c780bb7d5
by mkazantsev[InstCombine] Simplify boolean Phis with const inputs using CFG
This patch adds simplification for pattern: ``` if (cond) / \ ... ... \ / p = phi [true] [false] ... br p, succ_1, succ_2 ``` If we can prove that top block's branches dominate respective inputs of a block that has a Phi with constant inputs, we can use the branch condition (maybe inverted) instead of Phi. This will make proofs of implication for further jump threading more transparent.
Differential Revision: https://reviews.llvm.org/D81375 Reviewed By: xbolva00
|
 | llvm/test/Transforms/CallSiteSplitting/callsite-split.ll |
 | llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp |
 | llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll |
 | llvm/test/Transforms/InstCombine/branch.ll |
 | llvm/test/Transforms/InstCombine/simple_phi_condition.ll |
 | llvm/test/Transforms/InstCombine/phi.ll |
 | llvm/test/Transforms/InstCombine/icmp-constant-phi.ll |
 | llvm/test/Transforms/InstCombine/select.ll |
Commit
fc55308628709bfc64b100dadf9a030fbb2afaee
by amy.kwan1[PowerPC][Power10] Fix VINS* (vector insert byte/half/word) instructions to have i32 arguments.
Previously, the vins* intrinsic was incorrectly defined to have its second and third argument arguments as an i64. This patch fixes the second and third argument of the vins* instruction and intrinsic to have i32s instead.
Differential Revision: https://reviews.llvm.org/D83497
|
 | llvm/lib/Target/PowerPC/PPCInstrPrefix.td |
 | llvm/include/llvm/IR/IntrinsicsPowerPC.td |
 | clang/test/CodeGen/builtins-ppc-p10vector.c |
 | clang/include/clang/Basic/BuiltinsPPC.def |
 | llvm/test/CodeGen/PowerPC/builtins-ppc-p10permute.ll |
Commit
b893822e32ffe3c1dcf4d5ac0571a282582d72b2
by mkazantsevRevert "[InstCombine] Simplify boolean Phis with const inputs using CFG"
This reverts commit 00472067c34ccbceb2fad4b905524f3c780bb7d5.
Need to fix failing clang tests.
|
 | llvm/test/Transforms/InstCombine/branch.ll |
 | llvm/test/Transforms/InstCombine/select.ll |
 | llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp |
 | llvm/test/Transforms/InstCombine/icmp-constant-phi.ll |
 | llvm/test/Transforms/InstCombine/simple_phi_condition.ll |
 | llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll |
 | llvm/test/Transforms/InstCombine/phi.ll |
 | llvm/test/Transforms/CallSiteSplitting/callsite-split.ll |
Commit
71b49aa438b22b02230fff30e8874ff756336e6d
by craig.topper[X86] Allow lsl/lar to be parsed with a GR16, GR32, or GR64 as source register.
This matches GNU assembler behavior. Operand size is determined only from the destination register.
|
 | llvm/utils/TableGen/X86RecognizableInstr.cpp |
 | llvm/lib/Target/X86/X86InstrSystem.td |
 | llvm/lib/Target/X86/AsmParser/X86Operand.h |
 | llvm/lib/Target/X86/X86InstrInfo.td |
 | llvm/test/MC/X86/I286-64.s |
 | llvm/test/MC/X86/I286-32.s |
Commit
93ec6cd684265161623b4ea67836f022cd18c224
by jarin[lldb] Desugar template specializations
Template specializations are not handled in many of the TypeSystemClang methods. For example, GetNumChildren does not handle the TemplateSpecialization type class, so template specializations always look like empty objects.
This patch just desugars template specializations in the existing RemoveWrappingTypes desugaring helper.
Differential Revision: https://reviews.llvm.org/D83858
|
 | lldb/test/API/lang/cpp/template-specialization-type/main.cpp |
 | lldb/test/API/lang/cpp/template-specialization-type/TestTemplateSpecializationType.py |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | lldb/test/API/lang/cpp/template-specialization-type/Makefile |
Commit
ae74387fc0fd0866766dad877c844e35a3932a51
by mikael.holmen[MasmParser] Remove unused method emitStructValue to silence warning
The method was added in bc8e262afe83 and has been unused ever since so remove it to silence a gcc warning.
|
 | llvm/lib/MC/MCParser/MasmParser.cpp |
Commit
274332282cb4ce167de8e73fb9c59d2eecd67c25
by mikael.holmen[clangd] Fix a few gcc warnings [NFC]
|
 | clang-tools-extra/clangd/CompileCommands.cpp |
Commit
5831e86190966d58385678eb74b26aefacbfd101
by akuegelRevert "[NFC] SimplifyCFGOptions: drop multi-parameter ctor, use default member-init"
This reverts commit 90c1b0442a031d6cad686fdc4e5d3db03c3603a6. This is based on another commit which also needs to be reverted. The other commit introduced a Dependency Cycle between Transforms/Scalar and TransformUtils. Scalar already depends (in many ways) on TransformUtils, so making TransformUtils depend on Scalar should be avoided.
|
 | llvm/include/llvm/Transforms/Scalar/SimplifyCFGOptions.h |
 | llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp |
Commit
1067d3e176ea7b0b1942c163bf8c6c90107768c1
by akuegelRevert "[NFCI] createCFGSimplificationPass(): migrate to also take SimplifyCFGOptions"
This reverts commit b2018198c32a0535bb1f5bb5b40fbcf50d8d47b7. This commit introduced a Dependency Cycle between Transforms/Scalar and Transforms/Utils. Transforms/Scalar already depends on Transforms/Utils, so if SimplifyCFGOptions.h is moved to Scalar, and Utils/Local.h still depends on it, we have a cycle.
|
 | llvm/lib/Target/AArch64/AArch64TargetMachine.cpp |
 | llvm/include/llvm/Transforms/Scalar/SimplifyCFGOptions.h |
 | llvm/lib/Target/ARM/ARMTargetMachine.cpp |
 | llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp |
 | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp |
 | llvm/include/llvm/Transforms/Utils/Local.h |
 | llvm/include/llvm/Transforms/Scalar.h |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
Commit
90798e09e29012fe316565ea04a1f848c5e40e6e
by mkazantsevRe-enable "[InstCombine] Simplify boolean Phis with const inputs using CFG"
This reverts commit b893822e32ffe3c1dcf4d5ac0571a282582d72b2.
+ Clang test fixes + Insertion point fix for landing pads
|
 | llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp |
 | llvm/test/Transforms/InstCombine/select.ll |
 | llvm/test/Transforms/InstCombine/simple_phi_condition.ll |
 | llvm/test/Transforms/InstCombine/icmp-constant-phi.ll |
 | clang/test/CodeGenObjCXX/exceptions-legacy.mm |
 | llvm/test/Transforms/InstCombine/branch.ll |
 | llvm/test/Transforms/CallSiteSplitting/callsite-split.ll |
 | llvm/test/Transforms/InstCombine/phi.ll |
 | clang/test/CodeGenObjC/exceptions.m |
 | clang/test/CodeGenOpenCL/convergent.cl |
 | llvm/test/Transforms/PhaseOrdering/simplifycfg-options.ll |
Commit
5658002b80c105f715b8deb495b2d4443ddf9914
by petar.avramovicAMDGPU/GlobalISel: Select G_FREEZE
Select G_FREEZE in the same way that COPY is selected.
Differential Revision: https://reviews.llvm.org/D83031
|
 | llvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-freeze.mir |
 | llvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-freeze.mir |
 | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp |
 | llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp |
Commit
1c93671e594d075cb0008dc4f33d863611af9ab9
by david.truby[flang] Fix shared library builds for lib/Lower.
Summary: This adds missing definitions for functions in the Lower directory that were causing failures in shared library builds. The definitions for these are taken from the fir-dev branch on github.
Reviewers: sscalpone, schweitz, jeanPerier, klausler
Reviewed By: schweitz
Subscribers: mgorny, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D83771
|
 | flang/lib/Optimizer/Dialect/FIROps.cpp |
 | flang/lib/Lower/CMakeLists.txt |
 | flang/lib/Lower/ConvertExpr.cpp |
Commit
989ee11df6814465714f6292424f9e10668c7755
by mkazantsev[Test] Add test that shows how SimplifyCFG may insert redunant Phi
It happens when a block cannot be threaded because of a convergent function.
|
 | llvm/test/Transforms/SimplifyCFG/convergent.ll |
Commit
cbe0e539e79eaa30d7d0d6f39b9ea4e45f923141
by flo[Matrix] Also run lowering during -O0.
Currently the backends cannot lower the matrix intrinsics directly and rely on the lowering to vector instructions happening in the middle-end. At the moment, this means the backend crashes when matrix types extension code is compiled with -O0, e.g. http://green.lab.llvm.org/green/job/test-suite-verify-machineinstrs-aarch64-O0-g/7902/
This patch enables also runs the lowering with -O0 in the middle-end as a temporary solution. Long term, a lightweight version of the lowering should run in the backend, on demand.
|
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
Commit
2762da0a16a763654254e3320a3f46be2bb742b4
by kerry.mclaughlin[SVE][CodeGen] Legalisation of masked loads and stores
Summary: This patch modifies IncrementMemoryAddress to use a vscale when calculating the new address if the data type is scalable.
Also adds tablegen patterns which match an extract_subvector of a legal predicate type with zip1/zip2 instructions
Reviewers: sdesmalen, efriedma, david-arm
Reviewed By: efriedma, david-arm
Subscribers: tschuett, hiraditya, psnobl, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D83137
|
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
 | llvm/test/CodeGen/AArch64/sve-split-load.ll |
 | llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-split-store.ll |
Commit
146d35b6eeb5b360217d2f14a18c87b1a0aca77e
by david.green[ARM] CSEL generation
This adds a peephole optimisation to turn a t2MOVccr that could not be folded into any other instruction into a CSEL on 8.1-m. The t2MOVccr would usually be expanded into a conditional mov, that becomes an IT; MOV pair. We can instead generate a CSEL instruction, which can potentially be smaller and allows better register allocation freedom, which can help reduce codesize. Performance is more variable and may depend on the micrarchitecture details, but initial results look good. If we need to control this per-cpu, we can add a subtarget feature as we need it.
Original patch by David Penry.
Differential Revision: https://reviews.llvm.org/D83566
|
 | llvm/lib/Target/ARM/Thumb2InstrInfo.h |
 | llvm/test/CodeGen/Thumb2/csel.ll |
 | llvm/test/CodeGen/Thumb2/float-ops.ll |
 | llvm/lib/Target/ARM/ARMInstrThumb2.td |
 | llvm/test/CodeGen/Thumb2/mve-abs.ll |
 | llvm/test/CodeGen/Thumb2/mve-satmul-loops.ll |
 | llvm/test/CodeGen/Thumb2/mve-vecreduce-loops.ll |
 | llvm/test/CodeGen/Thumb2/mve-vmaxv.ll |
 | llvm/lib/Target/ARM/Thumb2InstrInfo.cpp |
Commit
15d058f16ec3a103587d589a8ccbbb7375feae7a
by sjoerd.meijerFollow up of 2b3c505d0f6e: fixed a typo, and added some more formatting. NFC.
|
 | llvm/docs/LangRef.rst |
Commit
b9a6fb64281b6836e565ee39fb0d543bf184fd88
by Pavel.Iliin[ARM] VBIT/VBIF support added.
Vector bitwise selects are matched by pseudo VBSP instruction and expanded to VBSL/VBIT/VBIF after register allocation depend on operands registers to minimize extra copies.
|
 | llvm/test/CodeGen/ARM/vselect_imax.ll |
 | llvm/test/MC/ARM/neon-bitwise-encoding.s |
 | llvm/test/MC/ARM/neont2-bitwise-encoding.s |
 | llvm/test/MC/Disassembler/ARM/neon-tests.txt |
 | llvm/test/CodeGen/ARM/vbsl.ll |
 | llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp |
 | llvm/test/MC/Disassembler/ARM/neont2.txt |
 | llvm/test/CodeGen/Thumb2/float-intrinsics-double.ll |
 | llvm/test/MC/Disassembler/ARM/neon.txt |
 | llvm/lib/Target/ARM/ARMISelLowering.cpp |
 | llvm/lib/Target/ARM/ARMScheduleA57.td |
 | llvm/lib/Target/ARM/ARMScheduleSwift.td |
 | llvm/test/CodeGen/ARM/fp16-promote.ll |
 | llvm/lib/Target/ARM/ARMISelLowering.h |
 | llvm/lib/Target/ARM/ARMInstrNEON.td |
 | llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll |
 | llvm/test/CodeGen/ARM/vbsl-constant.ll |
 | llvm/lib/Target/ARM/ARMScheduleR52.td |
 | llvm/test/CodeGen/ARM/fcopysign.ll |
Commit
46c921003c2ce5f1cdc4de9ef613eb001980780c
by kadircet[clangd] Always retrieve ProjectInfo from Base in OverlayCDB
Summary: Clangd is returning current working directory for overriden commands. This can cause inconsistencies between: - header and the main files, as OverlayCDB only contains entries for the main files it direct any queries for the headers to the base, creating a discrepancy between the two. - different clangd instances, as the results will be different depending on the timing of execution of the query and override of the command. hence clangd might see two different project infos for the same file between different invocations. - editors and the way user has invoked it, as current working directory of clangd will depend on those, hence even when there's no underlying base CWD might change depending on the editor, or the directory user has started the editor in.
This patch gets rid of that discrepency by always directing queries to base or returning llvm::None in absence of it.
For a sample bug see https://reviews.llvm.org/D83099#2154185.
Reviewers: sammccall
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D83934
|
 | clang-tools-extra/clangd/GlobalCompilationDatabase.cpp |
 | clang-tools-extra/clangd/unittests/GlobalCompilationDatabaseTests.cpp |
 | clang-tools-extra/clangd/GlobalCompilationDatabase.h |
Commit
fb432a51f430e3f2324c6a180bdbaa3627e0a0c8
by lebedev.riReland "[NFCI] createCFGSimplificationPass(): migrate to also take SimplifyCFGOptions"
This reverts commit 1067d3e176ea7b0b1942c163bf8c6c90107768c1, which reverted commit b2018198c32a0535bb1f5bb5b40fbcf50d8d47b7, because it introduced a Dependency Cycle between Transforms/Scalar and Transforms/Utils.
So let's just move SimplifyCFGOptions.h into Utils/, thus avoiding the cycle.
|
 | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp |
 | llvm/lib/Transforms/IPO/PassManagerBuilder.cpp |
 | llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h |
 | llvm/include/llvm/Transforms/Scalar.h |
 | llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h |
 | llvm/lib/Transforms/Scalar/Scalar.cpp |
 | llvm/lib/Target/ARM/ARMTargetMachine.cpp |
 | llvm/include/llvm/Transforms/Utils/Local.h |
 | llvm/lib/Target/AArch64/AArch64TargetMachine.cpp |
 | llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp |
Commit
4028409d77f9ea77cec115104409cca605841728
by lebedev.riReland "[NFC] SimplifyCFGOptions: drop multi-parameter ctor, use default member-init"
This reverts commit 5831e86190966d58385678eb74b26aefacbfd101, which reverted commit 90c1b0442a031d6cad686fdc4e5d3db03c3603a6 in preparation for reverting commit b2018198c32a0535bb1f5bb5b40fbcf50d8d47b7 in commit 1067d3e176ea7b0b1942c163bf8c6c90107768c1 due to the introducton of a dependency cycle.
Now that the other revert is reverted with a fix, this can be relanded.
|
 | llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp |
 | llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h |
Commit
b2dda33034934ead00ff8601ce5df487b0e760e9
by lebedev.ri[NFC] SimplifyCFGPass::SimplifyCFGPass(): use default SimplifyCFGOptions - we aren't deviating from them here
|
 | llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h |
Commit
740a1da108ab9097268b509c85ed9ede7f4d5df5
by lebedev.ri[NFC] SimplifyCFG: refactor/deduplicate command-line settings override handling
|
 | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp |
Commit
a130cf8ae8ab56ba1cfa7edc52b637c9d0c3fd38
by kadircet[clang] Fix printing of lambdas with capture expressions
Patch by @walrus !
Reviewers: lattner, kadircet
Reviewed By: kadircet
Subscribers: riccibruno, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D83855
|
 | clang/lib/AST/StmtPrinter.cpp |
 | clang/test/AST/ast-printer-lambda.cpp |
Commit
ed605b7b96b93a4418ec124552654785574e9f71
by grimar[yaml2obj] - Fix an issue with NoHeaders key.
When setting the NoHeaders to false, the e_shnum field wasn't set correctly.
This patch fixes this bug.
Differential revision: https://reviews.llvm.org/D83941
|
 | llvm/lib/ObjectYAML/ELFEmitter.cpp |
 | llvm/test/tools/yaml2obj/ELF/section-headers.yaml |
Commit
ff2f5c3e58a9dfcea19eddeb8894284838df0379
by lebedev.riRevert "[NFC] SimplifyCFG: refactor/deduplicate command-line settings override handling"
Seems to be breaking the bots. This reverts commit 740a1da108ab9097268b509c85ed9ede7f4d5df5.
|
 | llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp |
Commit
ffd8f009311965cfaa75594f98da351350ea0df4
by Andrey.Churbanov[openmp] libomp: added itt notifications for task, taskwait, taskgroup
Add releasing->acquire edges for child task->taskwait and child task->end of taskgroup.
Differential Revision: https://reviews.llvm.org/D83804
|
 | openmp/runtime/src/kmp_tasking.cpp |
 | openmp/runtime/src/kmp_runtime.cpp |
Commit
509351d7689c518f1c2ae8975e704a5324c39ff8
by paul.walker[SVE] Add lowering for scalable vector fadd, fdiv, fmul and fsub operations.
Lower the operations to predicated variants. This is prep work required for fixed length code generation but also fixes a bug whereby these operations fail selection when "unpacked" vector types (e.g. MVT::nxv2f32) are used.
This patch also adds the missing "unpacked" patterns for FMA.
Differential Revision: https://reviews.llvm.org/D83765
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.h |
 | llvm/lib/Target/AArch64/SVEInstrFormats.td |
 | llvm/test/CodeGen/AArch64/sve-fp.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td |
Commit
7bbde17e62aafa487dbcb170ca07d0aed4833adc
by david.green[ARM] Add a PreferNoCSEL option. NFC
This disables CSEL, falling back to the old predicated move behaviour for cases where that is useful for debugging.
|
 | llvm/lib/Target/ARM/Thumb2InstrInfo.cpp |