LLVM/project d2db96clld/ELF SyntheticSections.cpp Symbols.h, lld/test/ELF version-script-extern-undefined.s

[𝘀𝗽𝗿] initial version

Created using spr 1.3.5-bogner
DeltaFile
+3-2lld/ELF/SyntheticSections.cpp
+2-2llvm/include/llvm/BinaryFormat/ELF.h
+1-1lld/test/ELF/version-script-extern-undefined.s
+1-1lld/test/ELF/linkerscript/version-script.s
+2-0lld/ELF/Symbols.h
+9-65 files

LLVM/project 22f550bclang/lib/CIR/CodeGen CIRGenBuilder.h CIRGenExpr.cpp, clang/test/CIR/CodeGen vector-ext-element.cpp

[CIR] ExtVectorElementExpr with result Vector type (#167925)

Upstream ExtVectorElementExpr with result Vector type
DeltaFile
+39-0clang/test/CIR/CodeGen/vector-ext-element.cpp
+29-0clang/lib/CIR/CodeGen/CIRGenBuilder.h
+12-3clang/lib/CIR/CodeGen/CIRGenExpr.cpp
+80-33 files

LLVM/project 30c8465clang/lib/CIR/CodeGen CIRGenExprScalar.cpp, clang/test/CIR/CodeGen offset-of.cpp

[CIR] Implement support for OffsetOfExpr (#167726)

Implement support for the OffsetOfExpr
DeltaFile
+93-0clang/test/CIR/CodeGen/offset-of.cpp
+17-0clang/lib/CIR/CodeGen/CIRGenExprScalar.cpp
+110-02 files

LLVM/project 29e3c2ellvm/include/llvm/MC MCAsmBackend.h, llvm/lib/MC MCAssembler.cpp

MCAsmBackend: Remove unneeded MCAssembler parameter
DeltaFile
+7-7llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp
+6-6llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
+1-1llvm/lib/MC/MCAssembler.cpp
+1-1llvm/include/llvm/MC/MCAsmBackend.h
+15-154 files

LLVM/project d9dfe75llvm/include/llvm/MC MCSection.h

MCNopsFragment,MCBoundaryAlignFragment: Use parent MCSubtargetInfo
DeltaFile
+8-12llvm/include/llvm/MC/MCSection.h
+8-121 files

LLVM/project e6266b9llvm/lib/CodeGen/SelectionDAG LegalizeVectorTypes.cpp, llvm/test/CodeGen/X86 half.ll

DAG: Use poison when splitting vector_shuffle results

The one test change looks like a regression, somehow.
DeltaFile
+69-64llvm/test/CodeGen/X86/half.ll
+1-1llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
+70-652 files

LLVM/project fbf74b2llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll

AMDGPU: Select vector reg class for divergent build_vector (#168169)

The main improvement is to the mfma tests. There are some
mild regressions scattered around, and a few major ones.
The worst regressions are in some of the bitcast tests;
these are cases where the SGPR argument list runs out
and uses VGPRs, and the copies-from-VGPR are misidentified
as divergent. Most of the shufflevector tests are also
regressions. These end up with cleaner MIR, but then get poor
regalloc decisions.
DeltaFile
+26,057-27,245llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+10,029-9,396llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+3,820-3,075llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+3,688-2,998llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+3,337-2,705llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+3,149-2,620llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
+50,080-48,039109 files not shown
+65,970-62,928115 files

LLVM/project 39f4f5ellvm/include/llvm/MC MCInstrDesc.h, llvm/include/llvm/Target Target.td

CodeGen: Remove PointerLikeRegClass handling from codegen

All uses have been migrated to RegClassByHwMode. This is now
an implementation detail of InstrInfoEmitter for pseudoinstructions.
DeltaFile
+13-13llvm/include/llvm/Target/Target.td
+1-12llvm/include/llvm/MC/MCInstrDesc.h
+1-12llvm/utils/TableGen/Common/CodeGenDAGPatterns.cpp
+1-5llvm/utils/TableGen/InstrInfoEmitter.cpp
+0-4llvm/lib/CodeGen/TargetInstrInfo.cpp
+0-3llvm/utils/TableGen/Common/InstructionEncoding.cpp
+16-492 files not shown
+17-518 files

LLVM/project b72a472llvm/test/TableGen target-specialized-pseudos.td RegClassByHwMode.td, llvm/utils/TableGen InstrInfoEmitter.cpp

CodeGen: Make target overrides of PointerLikeRegClass mandatory

Most targets should now use the convenience multiclass to fixup
the operand definitions of pointer-using pseudoinstructions:

defm : RemapAllTargetPseudoPointerOperands<target_ptr_regclass>;
DeltaFile
+26-8llvm/test/TableGen/target-specialized-pseudos.td
+15-3llvm/utils/TableGen/InstrInfoEmitter.cpp
+14-1llvm/test/TableGen/RegClassByHwMode.td
+2-0llvm/test/TableGen/get-operand-type.td
+2-0llvm/test/TableGen/get-operand-type-no-expand.td
+2-0llvm/test/TableGen/get-named-operand-idx.td
+61-122 files not shown
+64-128 files

LLVM/project 5189567llvm/lib/Target/AMDGPU R600.td SIInstructions.td, llvm/lib/Target/ARM ARM.td

CodeGen: Make all targets override pseudos with pointers

This eliminates the need to have PointerLikeRegClass handling in
codegen.
DeltaFile
+12-9llvm/lib/Target/AMDGPU/R600.td
+11-0llvm/lib/Target/AMDGPU/SIInstructions.td
+10-0llvm/lib/Target/NVPTX/NVPTX.td
+8-0llvm/lib/Target/ARM/ARM.td
+8-0llvm/lib/Target/WebAssembly/WebAssembly.td
+4-0llvm/lib/Target/PowerPC/PPCRegisterInfo.td
+53-920 files not shown
+94-1026 files

LLVM/project fb3b386llvm/include/llvm/Target Target.td, llvm/test/TableGen target-specialized-pseudos.td

TableGen: Support target specialized pseudoinstructions

Allow a target to steal the definition of a generic pseudoinstruction
and remap the operands. This works by defining a new instruction, which
will simply swap out the emitted entry in the InstrInfo table.

This is intended to eliminate the C++ half of the implementation
of PointerLikeRegClass. With RegClassByHwMode, the remaining usecase
for PointerLikeRegClass are the common codegen pseudoinstructions.
Every target maintains its own copy of the generic pseudo operand
definitions anyway, so we can stub out the register operands with
an appropriate class instead of waiting for runtime resolution.

In the future we could probably take this a bit further. For example,
there is a similar problem for ADJCALLSTACKUP/DOWN since they depend
on target register definitions for the stack pointer register.
DeltaFile
+101-0llvm/test/TableGen/target-specialized-pseudos.td
+93-0llvm/include/llvm/Target/Target.td
+37-0llvm/utils/TableGen/InstrInfoEmitter.cpp
+11-1llvm/utils/TableGen/Common/CodeGenTarget.cpp
+242-14 files

LLVM/project 9fecebfllvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp AMDGPUISelDAGToDAG.h, llvm/test/CodeGen/AMDGPU llvm.amdgcn.wqm.demote.ll llvm.amdgcn.intersect_ray.ll

AMDGPU: Consider isVGPRImm when forming constant from build_vector (#168168)

This probably should have turned into a regular integer constant
earlier. This is to defend against future regressions.
DeltaFile
+18-18llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.demote.ll
+18-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+2-15llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
+6-6llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+44-394 files

LLVM/project 93256f5llvm/test/CodeGen/AMDGPU amdgcn.bitcast.512bit.ll amdgcn.bitcast.960bit.ll

test regressions
DeltaFile
+10,029-9,396llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+3,820-3,075llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+3,688-2,998llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+3,337-2,705llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+3,149-2,620llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
+3,126-2,561llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+27,149-23,35535 files not shown
+37,631-32,43841 files

LLVM/project 4a014dbllvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll mfma-loop.ll

AMDGPU: Select vector reg class for divergent build_vector

The main improvement is to the mfma tests. There are some
mild regressions scattered around, and a few major ones.
The worst regressions are in some of the bitcast tests;
these are cases where the SGPR argument list runs out
and uses VGPRs, and the copies-from-VGPR are misidentified
as divergent. Most of the shufflevector tests are also
regressions. These end up with cleaner MIR, but then get poor
regalloc decisions.
DeltaFile
+26,057-27,245llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+750-934llvm/test/CodeGen/AMDGPU/mfma-loop.ll
+342-342llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
+149-157llvm/test/CodeGen/AMDGPU/mfma-no-register-aliasing.ll
+139-136llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands-non-ptr-intrinsics.ll
+75-162llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
+27,512-28,97668 files not shown
+28,339-30,49074 files

LLVM/project f3c3a66llvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp AMDGPUISelDAGToDAG.h, llvm/test/CodeGen/AMDGPU llvm.amdgcn.wqm.demote.ll llvm.amdgcn.intersect_ray.ll

AMDGPU: Consider isVGPRImm when forming constant from build_vector

This probably should have turned into a regular integer constant
earlier. This is to defend against future regressions.
DeltaFile
+18-18llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.demote.ll
+18-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+2-15llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
+6-6llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+44-394 files

LLVM/project d8f6e10llvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU rem_i128.ll wwm-reserved.ll

AMDGPU: Use vgpr to implement divergent i32->i64 anyext (#168167)

Handle this for consistency with the zext case.
DeltaFile
+10-20llvm/test/CodeGen/AMDGPU/rem_i128.ll
+6-1llvm/lib/Target/AMDGPU/SIInstructions.td
+2-4llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
+1-2llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
+19-274 files

LLVM/project f8d65fdllvm/test/CodeGen/AArch64 fptoi.ll fpclamptosat_vec.ll, llvm/test/CodeGen/AArch64/GlobalISel legalize-fpext.mir

[AArch64][GlobalISel] Improve lowering of vector fp16 fpext (#165554)

This PR improves the lowering of vectors of fp16 when using fpext.

Previously vectors of fp16 were scalarized leading to lots of extra
instructions. Now, vectors of fp16 will be lowered when extended to fp64
via the preexisting lowering logic for extends. To make use of the
existing logic, we need to add elements until we reach the next power of
2.
DeltaFile
+84-194llvm/test/CodeGen/AArch64/fptoi.ll
+72-114llvm/test/CodeGen/AArch64/fpclamptosat_vec.ll
+130-0llvm/test/CodeGen/AArch64/GlobalISel/legalize-fpext.mir
+21-64llvm/test/CodeGen/AArch64/fptosi-sat-vector.ll
+21-64llvm/test/CodeGen/AArch64/fptoui-sat-vector.ll
+12-38llvm/test/CodeGen/AArch64/fp16-v8-instructions.ll
+340-4746 files not shown
+407-55212 files

LLVM/project e7b41dfllvm/lib/CodeGen/SelectionDAG SelectionDAGBuilder.cpp DAGCombiner.cpp, llvm/test/CodeGen/PowerPC recipest.ll

[SelectionDAGBuilder] Propagate fast-math flags to fpext (#167574)

As in title. Without this, fpext behaves in selectionDAG as always
having no fast-math flags.
DeltaFile
+4-1llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
+3-1llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
+1-1llvm/test/CodeGen/PowerPC/recipest.ll
+8-33 files

LLVM/project c6529a8llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll mfma-loop.ll

AMDGPU: Select vector reg class for divergent build_vector

The main improvement is to the mfma tests. There are some
mild regressions scattered around, and a few major ones.
The worst regressions are in some of the bitcast tests;
these are cases where the SGPR argument list runs out
and uses VGPRs, and the copies-from-VGPR are misidentified
as divergent. Most of the shufflevector tests are also
regressions. These end up with cleaner MIR, but then get poor
regalloc decisions.
DeltaFile
+26,057-27,245llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+750-934llvm/test/CodeGen/AMDGPU/mfma-loop.ll
+342-342llvm/test/CodeGen/AMDGPU/llvm.amdgcn.sched.group.barrier.ll
+149-157llvm/test/CodeGen/AMDGPU/mfma-no-register-aliasing.ll
+139-136llvm/test/CodeGen/AMDGPU/mubuf-legalize-operands-non-ptr-intrinsics.ll
+75-162llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
+27,512-28,97668 files not shown
+28,339-30,49074 files

LLVM/project 6a0fc72llvm/test/CodeGen/AMDGPU amdgcn.bitcast.512bit.ll amdgcn.bitcast.960bit.ll

test regressions
DeltaFile
+10,029-9,396llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+3,820-3,075llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.960bit.ll
+3,688-2,998llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.896bit.ll
+3,337-2,705llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.832bit.ll
+3,149-2,620llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.704bit.ll
+3,126-2,561llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.768bit.ll
+27,149-23,35535 files not shown
+37,631-32,43841 files

LLVM/project 9a8a0ecllvm/lib/Target/AMDGPU AMDGPUISelDAGToDAG.cpp AMDGPUISelDAGToDAG.h, llvm/test/CodeGen/AMDGPU llvm.amdgcn.wqm.demote.ll llvm.amdgcn.intersect_ray.ll

AMDGPU: Consider isVGPRImm when forming constant from build_vector

This probably should have turned into a regular integer constant
earlier. This is to defend against future regressions.
DeltaFile
+18-18llvm/test/CodeGen/AMDGPU/llvm.amdgcn.wqm.demote.ll
+18-0llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
+2-15llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.h
+6-6llvm/test/CodeGen/AMDGPU/llvm.amdgcn.intersect_ray.ll
+44-394 files

LLVM/project d5be7f1llvm/lib/Target/AMDGPU SIInstructions.td, llvm/test/CodeGen/AMDGPU rem_i128.ll wwm-reserved.ll

AMDGPU: Use vgpr to implement divergent i32->i64 anyext

Handle this for consistency with the zext case.
DeltaFile
+10-20llvm/test/CodeGen/AMDGPU/rem_i128.ll
+6-1llvm/lib/Target/AMDGPU/SIInstructions.td
+2-4llvm/test/CodeGen/AMDGPU/wwm-reserved.ll
+1-2llvm/test/CodeGen/AMDGPU/wwm-reserved-spill.ll
+19-274 files

LLVM/project 45a83f5clang-tools-extra/clang-doc JSONGenerator.cpp, clang-tools-extra/clang-doc/assets comment-template.mustache

[clang-doc] add throws comments to comment template

Serialize throw Doxygen comments for exceptions. Accepts both \throw and
\throws.
DeltaFile
+8-0clang-tools-extra/clang-doc/assets/comment-template.mustache
+7-0clang-tools-extra/clang-doc/JSONGenerator.cpp
+4-1clang-tools-extra/test/clang-doc/basic-project.mustache.test
+19-13 files

LLVM/project 0fa6a67llvm/test/CodeGen/AMDGPU rem_i128.ll div_i128.ll

AMDGPU: Use v_mov_b32 to implement divergent zext i32->i64 (#168166)

Some cases are relying on SIFixSGPRCopies to force VALU
reg_sequence inputs with SGPR inputs to use all VGPR inputs,
but this doesn't always happen if the reg_sequence isn't
invalid. Make sure we use a vgpr up-front here so we don't
rely on something later.
DeltaFile
+634-659llvm/test/CodeGen/AMDGPU/rem_i128.ll
+324-335llvm/test/CodeGen/AMDGPU/div_i128.ll
+75-74llvm/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
+45-22llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.ptr.atomic.buffer.load.ll
+45-22llvm/test/CodeGen/AMDGPU/llvm.amdgcn.struct.atomic.buffer.load.ll
+39-19llvm/test/CodeGen/AMDGPU/llvm.amdgcn.raw.ptr.atomic.buffer.load.ll
+1,162-1,13115 files not shown
+1,246-1,25821 files

LLVM/project 321a97ellvm/lib/Target/AMDGPU GCNRegPressure.cpp GCNRegPressure.h

[AMDGPU] Delete some dead code (NFC) (#167891)

`getLanesWithProperty()` is called with virtual registers only.
DeltaFile
+14-22llvm/lib/Target/AMDGPU/GCNRegPressure.cpp
+1-1llvm/lib/Target/AMDGPU/GCNRegPressure.h
+15-232 files

LLVM/project c06c57ellvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/MC/AArch64 arm-poe2.s

rebase

Created using spr 1.3.7
DeltaFile
+13,141-11,946llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,719-5,242llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
+4,062-3,678llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+2,042-2,017llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
+3,263-0llvm/test/MC/AArch64/arm-poe2.s
+1,555-1,504llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+28,782-24,3873,686 files not shown
+137,989-88,5313,692 files

LLVM/project 43b170allvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/MC/AArch64 arm-poe2.s

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+13,141-11,946llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,719-5,242llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
+4,062-3,678llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+2,042-2,017llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
+3,263-0llvm/test/MC/AArch64/arm-poe2.s
+1,555-1,504llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+28,782-24,3873,686 files not shown
+137,989-88,5313,692 files

LLVM/project 351a451llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/MC/AArch64 arm-poe2.s

rebase

Created using spr 1.3.7
DeltaFile
+13,141-11,946llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,719-5,242llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
+4,062-3,678llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+2,042-2,017llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
+3,263-0llvm/test/MC/AArch64/arm-poe2.s
+1,555-1,504llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+28,782-24,3873,686 files not shown
+137,989-88,5313,692 files

LLVM/project 6d8f054llvm/test/CodeGen/AMDGPU amdgcn.bitcast.1024bit.ll amdgcn.bitcast.512bit.ll, llvm/test/MC/AArch64 arm-poe2.s

[𝘀𝗽𝗿] changes introduced through rebase

Created using spr 1.3.7

[skip ci]
DeltaFile
+13,141-11,946llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.1024bit.ll
+4,719-5,242llvm/test/MC/Disassembler/AMDGPU/gfx11_dasm_vop3_dpp16.txt
+4,062-3,678llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.512bit.ll
+2,042-2,017llvm/test/CodeGen/AMDGPU/a-v-flat-atomicrmw.ll
+3,263-0llvm/test/MC/AArch64/arm-poe2.s
+1,555-1,504llvm/test/CodeGen/AMDGPU/amdgcn.bitcast.256bit.ll
+28,782-24,3873,686 files not shown
+137,989-88,5313,692 files

LLVM/project 7016d43llvm/lib/Support SpecialCaseList.cpp

[NFC][SpecialCaseList] Convert `preprocess` into `LazyInit` (#167281)

Currently SpecialCaseList created at least twice,
one on by `Driver`, for diagnostics only, and then
the real one by the `ASTContext`.

Also, deppending on enabled sanitizers, not all
sections will be used.

In both cases there is unnecessary RadixTree
construction.

This patch changes `GlobMatcher` to do initialization
lazily only when needed.

And remove empty one from `RegexMatcher`.

This saves saves 0.5% of clang time building large project.
DeltaFile
+18-27llvm/lib/Support/SpecialCaseList.cpp
+18-271 files