LLVM/project bcfff58llvm/include/llvm/Transforms/InstCombine InstCombiner.h, llvm/lib/Target/AMDGPU AMDGPUInstCombineIntrinsic.cpp

AMDGPU: Strip sign bit operations on llvm.amdgcn.trig.preop uses (#179712)

The instruction ignores the sign bit, so we can find the magnitude
source. The real library use has a fabs input which this avoids.

stripSignOnlyFPOps should probably go directly into PatternMatch in some
form.
DeltaFile
+64-0llvm/test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll
+11-0llvm/include/llvm/Transforms/InstCombine/InstCombiner.h
+0-9llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
+5-0llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+80-94 files

LLVM/project 680b56allvm/utils/emacs llvm-mir-mode.el llvm-mode.el, mlir/utils/emacs mlir-mode.el

[NFC][emacs] Fix emacs lints in the LLVM and MLIR modes (#182074)

This mainly involved explicitly declaring minimum emacs versions for
setq-local and adding a lexical-binding annotaton.

The commit also removes some workarounds from the MLIR mode for Emacs 23
(!).
DeltaFile
+5-9mlir/utils/emacs/mlir-mode.el
+3-1llvm/utils/emacs/llvm-mir-mode.el
+3-1llvm/utils/emacs/llvm-mode.el
+11-113 files

LLVM/project fab8cb4clang/lib/CIR/CodeGen CIRGenBuiltin.cpp, clang/test/CIR/CodeGen builtins-x86.c

[CIR]Upstream support for IITDescriptor::Pointer and Vector types (#182112)

DeltaFile
+27-0clang/test/CIR/CodeGen/builtins-x86.c
+11-0clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp
+38-02 files

LLVM/project f446cbbllvm/lib/Target/AMDGPU AMDGPURegBankLegalizeRules.cpp, llvm/test/CodeGen/AMDGPU llvm.amdgcn.bitop3.ll

AMDGPU/GlobalISel: RegBankLegalize for amdgcn_bitop3 (#181877)

DeltaFile
+6-0llvm/lib/Target/AMDGPU/AMDGPURegBankLegalizeRules.cpp
+3-3llvm/test/CodeGen/AMDGPU/llvm.amdgcn.bitop3.ll
+9-32 files

LLVM/project 38d8047llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 inversed-icmp-to-gather.ll

[SLP]Do not mark for transforming to buildvector inversed compares

Inversed compares must remain vector nodes, they should be converted to
gathers to generate correct code.

Fixes issue reported in https://github.com/llvm/llvm-project/pull/181580#issuecomment-3926951332
DeltaFile
+36-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+1-1llvm/test/Transforms/SLPVectorizer/X86/inversed-icmp-to-gather.ll
+37-22 files

LLVM/project ac16ce3llvm/test/CodeGen/ARM machine-sink-multidef.mir

[ARM] Regenerate checks in machine-sink-multidef.mir (#182314)

DeltaFile
+23-18llvm/test/CodeGen/ARM/machine-sink-multidef.mir
+23-181 files

LLVM/project c3745fellvm/docs HowToSubmitABug.rst

docs: Delete incorrect code generation section of HowToSubmitABug (#182315)

I've never used this. Based on the description here, I'm assuming
it relied on the C backend, which was removed in 2012.
DeltaFile
+0-68llvm/docs/HowToSubmitABug.rst
+0-681 files

LLVM/project 6fdbcf6llvm/docs/CommandGuide llc.rst lli.rst, llvm/tools/llc llc.cpp

tools: Remove untested PluginLoader includes (#117644)

As far as I can tell there are 2 parallel plugin mechanisms.
opt -load=plugin does not work, and is ignored. opt -load-pass-plugin
does work. PluginLoader.h forces a static definition of the "load"
cl::opt into included TUs. Delete the cases with no tests.
DeltaFile
+0-6llvm/docs/CommandGuide/llc.rst
+0-5llvm/docs/CommandGuide/lli.rst
+0-1llvm/tools/llc/llc.cpp
+0-1llvm/tools/lli/lli.cpp
+0-134 files

LLVM/project 8e85a42mlir/include/mlir/Dialect/OpenACC OpenACCCGAttributes.td OpenACC.h, mlir/lib/Dialect/OpenACC/IR OpenACCCG.cpp

[mlir][acc] Add attributes for parallelism dimensions (#182209)

As OpenACC gets lowered to eventually mapping to GPU (via GPU dialect),
we need to track parallelism assignment which we can use in how
variables get privatized, how barriers and synchronizations are inserted
to ensure appropriate OpenACC execution model, and for loop
work-sharing. This adds GPUParallelDimAttr and GPUParallelDimsAttr for
this.
DeltaFile
+282-0mlir/lib/Dialect/OpenACC/IR/OpenACCCG.cpp
+94-0mlir/include/mlir/Dialect/OpenACC/OpenACCCGAttributes.td
+79-0mlir/test/Dialect/OpenACC/ops-cg.mlir
+21-0mlir/test/Dialect/OpenACC/invalid-cg.mlir
+1-0mlir/include/mlir/Dialect/OpenACC/OpenACC.h
+1-0mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td
+478-06 files

LLVM/project 7d9d392llvm/lib/Target/WebAssembly WebAssemblyISelLowering.cpp WebAssemblyAsmPrinter.cpp, llvm/test/CodeGen/WebAssembly select-reftype.ll

[WebAssembly] Fix SELECT_CC lowering for reference types (#181622)

SELECT_CC nodes with externref or funcref return types were not being
expanded, causing "Cannot select" errors during instruction selection.

This adds SELECT_CC to the list of operations that should be expanded
for reference types, similar to how it's already handled for scalar
types (i32, i64, f32, f64). This allows the SELECT_CC to be lowered to a
SELECT node, which already has instruction patterns defined in
WebAssemblyInstrRef.td.
DeltaFile
+50-0llvm/test/CodeGen/WebAssembly/select-reftype.ll
+10-5llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
+6-0llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp
+66-53 files

LLVM/project e80e940llvm/lib/Target/X86 X86ISelLowering.cpp, llvm/test/CodeGen/X86 cmov-fp.ll select_const.ll

[X86] combineCMov - fold CMOV(LOAD(PTR0),LOAD(PTR1)) -> LOAD(CMOV(PTR0,PTR1)) (#182084)

As discussed on #182021 - if we have equivalent simple loads (chain,
addressspace etc.), just with different pointers then we can select
between the pointers directly and perform just a single load, which in
most cases will avoid branching.

A future patch might be able to further simplify some (mainly stack?)
address math with CMOV(X,ADD(X,C1)) -> ADD(X,CMOV(0,C1)) /
CMOV(ADD(X,C0),ADD(X,C1)) -> ADD(X,CMOV(C0,C1))
DeltaFile
+172-444llvm/test/CodeGen/X86/cmov-fp.ll
+14-22llvm/test/CodeGen/X86/select_const.ll
+31-0llvm/lib/Target/X86/X86ISelLowering.cpp
+12-18llvm/test/CodeGen/X86/dagcombine-select.ll
+5-20llvm/test/CodeGen/X86/sse-load-ret.ll
+4-7llvm/test/CodeGen/X86/hoist-and-by-const-from-shl-in-eqcmp-zero.ll
+238-5112 files not shown
+245-5248 files

LLVM/project cbfb034mlir/lib/Dialect/Linalg/TransformOps LinalgTransformOps.cpp

[MLIR] Apply clang-tidy fixes for llvm-qualified-auto in LinalgTransformOps.cpp (NFC)
DeltaFile
+5-5mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+5-51 files

LLVM/project b284d61llvm/tools/bugpoint CrashDebugger.cpp Miscompilation.cpp

llvm: Delete bugpoint

For crash reduction, I don't think it does anything that llvm-reduce
can't. Pass pipeline reduction also has a separate reduction script.
The main thing there isn't a replacement tool is the miscompilation
reducer, but I'm not sure that's actually functioned for years.

There are still some references to bugpoint in various comments
and pieces of documentation that don't all necessarily make sense
to replace or remove. In particular there are a few passes documented
as "only for bugpoint", but I've left those alone in case they are
useful for manual reductions.
DeltaFile
+0-1,412llvm/tools/bugpoint/CrashDebugger.cpp
+0-1,080llvm/tools/bugpoint/Miscompilation.cpp
+0-849llvm/tools/bugpoint/ToolRunner.cpp
+0-451llvm/tools/bugpoint/ExecutionDriver.cpp
+0-410llvm/tools/bugpoint/ExtractFunction.cpp
+0-290llvm/tools/bugpoint/BugDriver.h
+0-4,49236 files not shown
+15-6,70342 files

LLVM/project 4f70e83llvm/lib/Target/AArch64 AArch64SystemOperands.td, llvm/lib/Target/AArch64/AsmParser AArch64AsmParser.cpp

[AArch64][llvm] Remove `+xs` gating for `tlbip *nxs` instructions

A recent specification update has removed FEAT_XS gating for `tlbip *nxs`
instructions. It remains gated on FEAT_XS for `tlbi *nxs` instructions.
DeltaFile
+6-18llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+8-9llvm/test/MC/AArch64/armv9a-tlbip.s
+0-8llvm/lib/Target/AArch64/MCTargetDesc/AArch64InstPrinter.cpp
+1-1llvm/lib/Target/AArch64/AArch64SystemOperands.td
+15-364 files

LLVM/project 85e6134mlir/lib/Dialect/Linalg/Transforms ElementwiseOpFusion.cpp, mlir/test/Dialect/Linalg collapse-dim.mlir

[MLIR] Fix a crash in CollapseLinalgDimensions (#181715)

This patch fixes #181610 
Added a check in areDimSequencesPreserved()
to verify that each map is a projected permutation before calling
isDimSequencePreserved().
If a map is not a projected permutation, the
function returns false (dimension sequences cannot be preserved in
non-projected-permutation maps).
DeltaFile
+29-0mlir/test/Dialect/Linalg/collapse-dim.mlir
+5-2mlir/lib/Dialect/Linalg/Transforms/ElementwiseOpFusion.cpp
+34-22 files

LLVM/project 7ae0a6emlir/lib/Interfaces IndexingMapOpInterface.cpp, mlir/test/Dialect/Linalg invalid.mlir

[mlir][Interface] Allow scalar operands and require ranked shaped operands in IndexingMapOpInterface (#179072)

This change adjusts `IndexingMapOpInterface::verifyImpl`: Scalars are
allowed as operands (treated as rank-0), vectors remain allowed,
unranked tensors/memrefs are rejected with explicit diagnostics.

Fixes https://github.com/llvm/llvm-project/issues/179043
DeltaFile
+48-3mlir/lib/Interfaces/IndexingMapOpInterface.cpp
+18-0mlir/test/Dialect/Linalg/invalid.mlir
+66-32 files

LLVM/project 070db69lldb/test/API/tools/lldb-dap/variables TestDAP_variables.py, lldb/tools/lldb-dap DAP.cpp

Reapply "[lldb-dap] Validate utf8 protocol messages." (#181930) (#182056)

This reverts commit 977d910d005c47f884ecf838e504da301b1124b9.

Addressing build issues with gcc.
DeltaFile
+67-67lldb/tools/lldb-dap/Protocol/ProtocolTypes.h
+94-9lldb/tools/lldb-dap/Protocol/ProtocolBase.h
+50-50lldb/tools/lldb-dap/Protocol/ProtocolRequests.h
+42-13lldb/tools/lldb-dap/Protocol/ProtocolBase.cpp
+33-13lldb/test/API/tools/lldb-dap/variables/TestDAP_variables.py
+17-20lldb/tools/lldb-dap/DAP.cpp
+303-17220 files not shown
+397-23026 files

LLVM/project 1f08252llvm/utils/emacs llvm-mode.el

Fix typo
DeltaFile
+1-1llvm/utils/emacs/llvm-mode.el
+1-11 files

LLVM/project 2bd23d3flang/lib/Optimizer/Transforms FIRToMemRef.cpp, flang/test/Transforms/FIRToMemRef array-coor-block-arg.mlir no-declare.mlir

[flang] Lowering a ArrayCoorOp to arithmetic computations when a fir memref is a block argument (#182139)

Remove the special-case that handled `fir.array_coor` with a
block-argument base by converting the element ref result (!fir.ref<i32>
-> memref<i32>) and leaving fir.array_coor alive.

Instead, we now always convert the base (!fir.ref<!fir.array<...>> ->
memref<...>) and compute the memref indices from the fir.array_coor
operands, so loads/stores become memref.load/store base[indices] and
fir.array_coor can be erased when it’s only used by memory ops.
DeltaFile
+14-15flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
+28-0flang/test/Transforms/FIRToMemRef/array-coor-block-arg.mlir
+7-6flang/test/Transforms/FIRToMemRef/no-declare.mlir
+49-213 files

LLVM/project 3c1c590llvm/docs HowToSubmitABug.rst

docs: Delete incorrect code generation section of HowToSubmitABug

I've never used this. Based on the description here, I'm assuming
it relied on the C backend, which was removed in 2012.
DeltaFile
+0-68llvm/docs/HowToSubmitABug.rst
+0-681 files

LLVM/project 0e29fa3clang/test/CodeGenHIP printf.cpp printf_nonhostcall.cpp, llvm/lib/Transforms/Utils AMDGPUEmitPrintf.cpp

[AMDGPUEmitPrintf] Fix operand order

Fix a typo in 87eee80dad79417e079c369b9ff5578873019b78, the
CreatePtrDiff operands were supposed to be the other way around.
DeltaFile
+12-12clang/test/CodeGenHIP/printf.cpp
+12-12clang/test/CodeGenHIP/printf_nonhostcall.cpp
+1-1llvm/lib/Transforms/Utils/AMDGPUEmitPrintf.cpp
+25-253 files

LLVM/project 44f1a91llvm/lib/Target/RISCV RISCVISelDAGToDAG.cpp RISCVInstrInfoVSDPatterns.td

[RISCV] Add ComplexPatterns for matching xor/vmnot_vl+vmset_vl. NFC (#182071)

Xor is commutable and we don't guarantee which operand will be the
vmset_vl. Tablegen will generate all possible permutations when creating
RISCVGenDAGISel.inc. These xor/vmnot_vl are used by other commutable
nodes leading to quite a few patterns being generated by tablegen.

By using a ComplexPattern we can handle both cases with one piece of C++
code. This reduces the isel table by 2-3k.
DeltaFile
+48-0llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp
+14-9llvm/lib/Target/RISCV/RISCVInstrInfoVSDPatterns.td
+11-7llvm/lib/Target/RISCV/RISCVInstrInfoVVLPatterns.td
+3-0llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
+76-164 files

LLVM/project 969a326llvm/lib/Target/AMDGPU SIInsertWaitcnts.cpp AMDGPU.td, llvm/test/CodeGen/AMDGPU llvm.amdgcn.update.dpp.ll waitcnt-loop-ds-store-barrier.mir

[AMDGPU] BackOffBarrier feature added to gfx1250; Removed incorrect "DS Store drain" check. (#179818)

Missing BackOffBarrier feature added to gfx1250.
Checking for S_BARRIER only does not imply prior DS Stores getting
drained.
DeltaFile
+1,178-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.update.dpp.ll
+77-0llvm/test/CodeGen/AMDGPU/waitcnt-loop-ds-store-barrier.mir
+59-0llvm/test/CodeGen/AMDGPU/back-off-barrier-subtarget-feature.ll
+10-13llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp
+1-0llvm/lib/Target/AMDGPU/AMDGPU.td
+1,325-135 files

LLVM/project 34c3525llvm/docs/CommandGuide llc.rst lli.rst

Remove docs
DeltaFile
+0-6llvm/docs/CommandGuide/llc.rst
+0-5llvm/docs/CommandGuide/lli.rst
+0-112 files

LLVM/project 9fa6eaacross-project-tests/debuginfo-tests/clang_llvm_roundtrip callsite-dwarf.cpp

[clang][DebugInfo] Add virtuality call-site target information in DWARF. (#182311)

Add missing
  'REQUIRES: x86-registered-target'

to fix buildbot failure:
  https://lab.llvm.org/buildbot/#/builders/190/builds/36803
DeltaFile
+2-1cross-project-tests/debuginfo-tests/clang_llvm_roundtrip/callsite-dwarf.cpp
+2-11 files

LLVM/project 2db55dcllvm/test/Transforms/SLPVectorizer/X86 inversed-icmp-to-gather.ll

[SLP][NFC]Add a test with incorrect inversed compares after throttling, NFC
DeltaFile
+53-0llvm/test/Transforms/SLPVectorizer/X86/inversed-icmp-to-gather.ll
+53-01 files

LLVM/project 69b8cb8llvm/lib/Target/PowerPC PPCInstrInfo.td

revert unnecessary format update
DeltaFile
+2-4llvm/lib/Target/PowerPC/PPCInstrInfo.td
+2-41 files

LLVM/project b3b6fffllvm/docs HowToSubmitABug.rst GettingStarted.rst

docs: Update HowToSubmitABug to use llvm-reduce instead of bugpoint (#182310)

Convert the crash section to recommend llvm-reduce, and stop mentioning
bugpoint. The miscompilation section still uses bugpoint.
DeltaFile
+33-30llvm/docs/HowToSubmitABug.rst
+3-3llvm/docs/GettingStarted.rst
+36-332 files

LLVM/project 590a1dcllvm/tools/llvm-lto2 llvm-lto2.cpp

Revert llvm-lto2 case
DeltaFile
+1-0llvm/tools/llvm-lto2/llvm-lto2.cpp
+1-01 files

LLVM/project fecc9edllvm/tools/opt optdriver.cpp

Revert opt case
DeltaFile
+1-0llvm/tools/opt/optdriver.cpp
+1-01 files