LLVM/project b9ff3d0libc/include/llvm-libc-macros annex-k-macros.h CMakeLists.txt

[libc][annex_k] Add Annex K support macros.
DeltaFile
+26-0libc/include/llvm-libc-macros/annex-k-macros.h
+6-0libc/include/llvm-libc-macros/CMakeLists.txt
+32-02 files

LLVM/project 706ffa1llvm/lib/Target/X86/GISel X86InstructionSelector.cpp, llvm/test/CodeGen/X86 pr49087.ll

[X86][GlobalISel] Improve carry value selection (#146586)

Generally G_UADDE, G_UADDO, G_USUBE, G_USUBO are used together and it
was enough to simply define EFLAGS. But if extractvalue is used, we end
up with a copy of EFLAGS into GPR.

Always generate SETB instruction to put the carry bit on GPR and CMP to
set the carry bit back. It gives the correct lowering in all the cases.

Closes #120029
DeltaFile
+50-0llvm/test/CodeGen/X86/GlobalISel/pr49087.ll
+20-19llvm/lib/Target/X86/GISel/X86InstructionSelector.cpp
+0-30llvm/test/CodeGen/X86/pr49087.ll
+13-14llvm/test/CodeGen/X86/GlobalISel/select-add-x32.mir
+21-0llvm/test/CodeGen/X86/GlobalISel/select-get-carry-bit.ll
+10-10llvm/test/CodeGen/X86/GlobalISel/legalize-add.mir
+114-738 files not shown
+171-10114 files

LLVM/project d81ffd4llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 parent-phi-node-reordered.ll phi-nodes-incoming-same-blocks.ll

[SLP]INsert postponed vector value after all uses, if the parent node is PHI

Need to insert the vector value for the postponed gather/buildvector
node after all uses non only if the vector value of the user node is
phi, but also if the user node itself is PHI node, which may produce
vector phi + shuffle.

Fixes #162799
DeltaFile
+118-0llvm/test/Transforms/SLPVectorizer/X86/parent-phi-node-reordered.ll
+3-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+2-2llvm/test/Transforms/SLPVectorizer/X86/phi-nodes-incoming-same-blocks.ll
+123-33 files

LLVM/project 5e3ac2allvm/lib/Transforms/Vectorize LoopVectorizationLegality.cpp, llvm/test/Transforms/LoopVectorize loop-form.ll

[LV] Bail out on loops with switch as latch terminator.

Currently we cannot vectorize loops with latch blocks terminated by a
switch. In the future this could be handled by materializing appropriate
compares.

Fixes https://github.com/llvm/llvm-project/issues/156894.
DeltaFile
+46-0llvm/test/Transforms/LoopVectorize/loop-form.ll
+13-0llvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
+59-02 files

LLVM/project f23fd9bclang/unittests/Analysis/FlowSensitive MockHeaders.h MockHeaders.cpp

rename

Created using spr 1.3.4
DeltaFile
+2-2clang/unittests/Analysis/FlowSensitive/MockHeaders.h
+1-1clang/unittests/Analysis/FlowSensitive/MockHeaders.cpp
+1-1clang/unittests/Analysis/FlowSensitive/UncheckedOptionalAccessModelTest.cpp
+4-43 files

LLVM/project d526d47libc/hdr/types errno_t.h CMakeLists.txt, libc/include errno.h.def CMakeLists.txt

[libc][annex_k] Add errno_t.
DeltaFile
+18-0libc/include/llvm-libc-types/errno_t.h
+18-0libc/hdr/types/errno_t.h
+9-0libc/hdr/types/CMakeLists.txt
+2-0libc/include/errno.h.def
+2-0libc/include/llvm-libc-types/CMakeLists.txt
+1-0libc/include/CMakeLists.txt
+50-06 files

LLVM/project 88f6bf8llvm/unittests/Transforms/Utils BasicBlockUtilsTest.cpp

implement feedback
DeltaFile
+8-3llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
+8-31 files

LLVM/project e6358abllvm/test/CodeGen/PowerPC aix-emit-tracebacktable.ll aix-emit-tracebacktable-redzone-boundary.mir, llvm/test/DebugInfo/XCOFF empty.ll explicit-section.ll

Fix typo: IsGlobaLinkage -> IsGlobalLinkage in XCOFF (#161960)

Corrects the spelling of 'IsGlobaLinkage' to 'IsGlobalLinkage' in
XCOFF-related code, comments, and tests across the codebase.
DeltaFile
+4-4llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable.ll
+2-2llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-redzone-boundary.mir
+2-2llvm/test/CodeGen/PowerPC/aix-emit-tracebacktable-vectorinfo.ll
+2-2llvm/test/DebugInfo/XCOFF/empty.ll
+2-2llvm/test/DebugInfo/XCOFF/explicit-section.ll
+2-2llvm/test/DebugInfo/XCOFF/function-sections.ll
+14-149 files not shown
+26-2615 files

LLVM/project 0d1f2f4llvm/lib/Analysis ScalarEvolution.cpp

[SCEV] Use APInt for DividesBy when collecting loop guard info (NFC). (#163017)

Follow-up as suggested in
https://github.com/llvm/llvm-project/pull/162617.

Just use an APInt for DividesBy, as the existing code already operates
on APInt and thus handles the case of DividesBy being 1.

PR: https://github.com/llvm/llvm-project/pull/163017
DeltaFile
+32-43llvm/lib/Analysis/ScalarEvolution.cpp
+32-431 files

LLVM/project 3dc972allvm/utils/TableGen/Basic RuntimeLibcallsEmitter.cpp

TableGen: Account for Unsupporte LibcallImpl in bitset size

The Unsupported case is special and doesn't have an entry in the
vector, and is directly emitted as the 0 case. This should be
harmless as it is, but could break if the right number of new
libcalls is added.
DeltaFile
+1-1llvm/utils/TableGen/Basic/RuntimeLibcallsEmitter.cpp
+1-11 files

LLVM/project 22eaf7dclang/test/CodeGen target-data.c, lld/test/ELF/lto amdgcn-oses.ll

AMDGPU: Use ELF mangling in data layout

Closes #95219
DeltaFile
+10-10llvm/test/CodeGen/AMDGPU/global-constant.ll
+4-4llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.nogenerated.expected
+4-4clang/test/CodeGen/target-data.c
+4-4llvm/test/CodeGen/AMDGPU/naked-fn-with-frame-pointer.ll
+4-4llvm/test/tools/UpdateTestChecks/update_llc_test_checks/Inputs/amdgpu_generated_funcs.ll.generated.expected
+3-3lld/test/ELF/lto/amdgcn-oses.ll
+29-296 files not shown
+39-3912 files

LLVM/project 8f16837llvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/RISCV non-commutative-second-arg-only-copyable.ll

[SLP]Support non-ordered copyable argument in non-commutative instructions

If the non-commutative user has several same operands and at least one
of them (but not the first) is copyable, need to consider this
opportunity when calculating the number of dependencies. Otherwise, the
schedule bundle might be not scheduled correctly and cause a compiler
crash

Fixes #162925
DeltaFile
+32-27llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+32-0llvm/test/Transforms/SLPVectorizer/RISCV/non-commutative-second-arg-only-copyable.ll
+64-272 files

LLVM/project d72cd24clang/test/CXX/expr/expr.prim/expr.prim.req compound-requirement.cpp, clang/test/CXX/temp/temp.param p10-2a.cpp

[Clang] Preserve more sugars in constraint evaluation (#162991)

Using the canonical form of SugarConverted was an oversight during the
iteration of e9972debc9. We now retain sugar for better diagnostics.
DeltaFile
+4-4clang/test/SemaTemplate/concepts.cpp
+3-3clang/test/SemaHLSL/BuiltIns/Buffers.hlsl
+3-3clang/test/SemaHLSL/BuiltIns/RWBuffers.hlsl
+2-2clang/test/CXX/temp/temp.param/p10-2a.cpp
+2-2clang/test/CXX/expr/expr.prim/expr.prim.req/compound-requirement.cpp
+2-2clang/test/SemaTemplate/concepts-recursive-inst.cpp
+16-162 files not shown
+18-198 files

LLVM/project 6333e05llvm/include/llvm/ADT Sequence.h

[ADT] Simplify CheckedInt::from with llvm::to_underlying (NFC) (#163038)

llvm::to_underlying, forward ported from C++23, conveniently packages
static_cast and std::underlying_type_t like so:

  static_cast<std::underlying_type_t<EnumTy>>(E)
DeltaFile
+2-2llvm/include/llvm/ADT/Sequence.h
+2-21 files

LLVM/project ac0f95allvm/include/llvm/ADT STLExtras.h

[ADT] Simplify addEnumValues with llvm::to_underlying (NFC) (#163037)

llvm::to_underlying, forward ported from C++23, conveniently packages
static_cast and std::underlying_type_t like so:

  static_cast<std::underlying_type_t<EnumTy>>(E)
DeltaFile
+3-5llvm/include/llvm/ADT/STLExtras.h
+3-51 files

LLVM/project 3b42d62llvm/include/llvm/ADT PointerUnion.h

[ADT] Use TypeAtIndex in PointerUnion (NFC) (#163036)

This patch replaces GetFirstType with TypeAtIndex.
DeltaFile
+1-7llvm/include/llvm/ADT/PointerUnion.h
+1-71 files

LLVM/project 3ebfbacllvm/include/llvm/CodeGen SelectionDAGNodes.h, llvm/lib/CodeGen/SelectionDAG SelectionDAGISel.cpp

[TableGen] Support for optional chain in Selection DAG nodes

This change adds a new property for Selection DAG nodes used in pattern
descriptions: SDNPMayHaveChain. A node with this property may have or
may not have a chain operand. For example, both of the following
variants become valid:

    t3: f32,ch = fnearbyint t0, t2
    t3: f32 = fnearbyint t2

The specific variant is determined during pattern matching, based on
whether the first operand is a chain (i.e. has the type MVT::Other).

This feature is intended to be used for floating point operations. They
have side effects in a strictfp environment and are pure functions in
the default FP environment. Currently each such operation requires two
opcodes - one for each kind of FP environment. These opcodes represent
the same operation and are processed similarly, which increase amount of
code. With this feature the support of strictfp environment should be
easier, as it can use the same opcode as the default environment.
DeltaFile
+53-16llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
+35-17llvm/utils/TableGen/Common/DAGISelMatcher.h
+36-15llvm/utils/TableGen/DAGISelMatcherGen.cpp
+46-0llvm/test/TableGen/optional-chain.td
+14-4llvm/utils/TableGen/DAGISelMatcherEmitter.cpp
+18-0llvm/include/llvm/CodeGen/SelectionDAGNodes.h
+202-5213 files not shown
+248-5719 files

LLVM/project 6eef045offload/libomptarget omptarget.cpp

[Offload] Silence warning via maybe unused (NFC) (#163076)

DeltaFile
+1-1offload/libomptarget/omptarget.cpp
+1-11 files

LLVM/project 1fde14butils/bazel/llvm-project-overlay/clang BUILD.bazel

[bazel] Update clang/Analysis/LifetimeSafety for #162474
DeltaFile
+2-0utils/bazel/llvm-project-overlay/clang/BUILD.bazel
+2-01 files

LLVM/project c3c74ebllvm/unittests/Support JobserverTest.cpp

JobserverTest.cpp: Suppress a warning. [-Wunused-lambda-capture]

I don't know how to mark an item as `maybe_unused` on capture list.
I also guess `i` may be removed out of byval capture.
DeltaFile
+1-0llvm/unittests/Support/JobserverTest.cpp
+1-01 files

LLVM/project 73e92d1llvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp SelectionDAGBuilder.h

implement feedback
DeltaFile
+8-10llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+3-2llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
+11-122 files

LLVM/project 011f8fcllvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 aarch64-load-ext.ll extbinopload.ll

[AArch64] Optimize extending loads of small vectors

Reduces the total amount of loads and the amount of moves between SIMD
registers and general-purpose registers.
DeltaFile
+242-28llvm/test/CodeGen/AArch64/aarch64-load-ext.ll
+99-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+10-10llvm/test/CodeGen/AArch64/extbinopload.ll
+4-10llvm/test/CodeGen/AArch64/aarch64-smull.ll
+5-6llvm/test/CodeGen/AArch64/load.ll
+360-545 files

LLVM/project 236379ellvm/lib/CodeGen/SelectionDAG DAGCombiner.cpp, llvm/lib/Target/X86 X86ISelLowering.cpp

[DAGCombiner][X86] Enable bitcast-load optimization through freeze
DeltaFile
+78-107llvm/test/CodeGen/X86/widen-load-of-small-alloca.ll
+75-0llvm/test/CodeGen/X86/load-freeze-bitcast-opt.ll
+21-6llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+16-0llvm/test/CodeGen/AArch64/freeze-bitcast.ll
+14-0llvm/lib/Target/X86/X86ISelLowering.cpp
+2-2llvm/test/CodeGen/X86/avx10_2bf16-arith.ll
+206-1151 files not shown
+207-1167 files

LLVM/project 8bb10cfllvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 dup-ext-load-combine.ll aarch64-smull.ll

[AArch64] Optimize DUP of extending loads to avoid GPR->FPR transfer

Loads the data into the SIMD register, thus sparing a physical register
and a potentially costly movement of data.
DeltaFile
+139-0llvm/test/CodeGen/AArch64/dup-ext-load-combine.ll
+24-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+20-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+6-8llvm/test/CodeGen/AArch64/aarch64-smull.ll
+6-6llvm/test/CodeGen/AArch64/dup.ll
+195-155 files

LLVM/project 4bf5ab4llvm/lib/Transforms/Vectorize VPlanTransforms.cpp LoopVectorize.cpp, llvm/test/Transforms/LoopVectorize/RISCV truncate-to-minimal-bitwidth-evl-crash.ll

[VPlan] Set flags when constructing truncs using VPWidenCastRecipe.

VPWidenCastRecipes with Trunc opcodes where missing the correct OpType
for IR flags. Update createWidenCast to set the correct flags for
truncs, and use it consistenly.

Fixes https://github.com/llvm/llvm-project/issues/162374.
DeltaFile
+78-0llvm/test/Transforms/LoopVectorize/RISCV/truncate-to-minimal-bitwidth-evl-crash.ll
+19-21llvm/lib/Transforms/Vectorize/VPlanTransforms.cpp
+11-5llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+5-1llvm/lib/Transforms/Vectorize/LoopVectorizationPlanner.h
+113-274 files

LLVM/project 0e85d30llvm/lib/Target/AArch64 AArch64ISelLowering.cpp AArch64InstrInfo.td, llvm/test/CodeGen/AArch64 dup-ext-load-combine.ll aarch64-smull.ll

[AArch64] Optimize DUP of extending loads to avoid GPR->FPR transfer

Loads the data into the SIMD register, thus sparing a physical register
and a potentially costly movement of data.
DeltaFile
+240-0llvm/test/CodeGen/AArch64/dup-ext-load-combine.ll
+25-1llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+20-0llvm/lib/Target/AArch64/AArch64InstrInfo.td
+6-8llvm/test/CodeGen/AArch64/aarch64-smull.ll
+6-6llvm/test/CodeGen/AArch64/dup.ll
+297-155 files

LLVM/project 3337875llvm/include/llvm/Transforms/Utils BasicBlockUtils.h, llvm/lib/Transforms/Utils BasicBlockUtils.cpp

[BasicBlockUtils] Add BasicBlock printer
DeltaFile
+24-0llvm/unittests/Transforms/Utils/BasicBlockUtilsTest.cpp
+7-0llvm/lib/Transforms/Utils/BasicBlockUtils.cpp
+3-0llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h
+34-03 files

LLVM/project 2946317llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 aarch64-load-ext.ll extbinopload.ll

[AArch64] Optimize extending loads of small vectors

Reduces the total amount of loads and the amount of moves between SIMD
registers and general-purpose registers.
DeltaFile
+242-28llvm/test/CodeGen/AArch64/aarch64-load-ext.ll
+99-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+10-10llvm/test/CodeGen/AArch64/extbinopload.ll
+4-10llvm/test/CodeGen/AArch64/aarch64-smull.ll
+5-6llvm/test/CodeGen/AArch64/load.ll
+2-2llvm/test/CodeGen/AArch64/arm64ec-exit-thunks.ll
+362-566 files

LLVM/project 694d1e9llvm/lib/Target/AArch64 AArch64ISelLowering.cpp, llvm/test/CodeGen/AArch64 aarch64-load-ext.ll extbinopload.ll

[AArch64] Optimize extending loads of small vectors
DeltaFile
+244-28llvm/test/CodeGen/AArch64/aarch64-load-ext.ll
+99-0llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+10-10llvm/test/CodeGen/AArch64/extbinopload.ll
+4-10llvm/test/CodeGen/AArch64/aarch64-smull.ll
+5-6llvm/test/CodeGen/AArch64/load.ll
+2-2llvm/test/CodeGen/AArch64/arm64ec-exit-thunks.ll
+364-566 files

LLVM/project ab71b77mlir/lib/Dialect/LLVMIR/IR ROCDLDialect.cpp, mlir/test/Dialect/LLVMIR inlining-rocdl.mlir

[mlir][rocdl] Add rocdl inlining interface (#163058)

All rocdl ops should be safe to inline.
DeltaFile
+14-0mlir/test/Dialect/LLVMIR/inlining-rocdl.mlir
+11-0mlir/lib/Dialect/LLVMIR/IR/ROCDLDialect.cpp
+25-02 files