LLVM/project 2108342clang/docs ReleaseNotes.md, clang/lib/Sema SemaDecl.cpp

[clang] fix redeclarations of the injected class name (#207301)

The declaration used to represent an injected class name should never be
part of any redeclaration chain.

Fixes #202320
DeltaFile
+14-11clang/lib/Sema/SemaDecl.cpp
+7-0clang/test/SemaCXX/injected-class-name-crash.cpp
+1-0clang/docs/ReleaseNotes.md
+22-113 files

LLVM/project 14d9808compiler-rt/lib/hwasan hwasan_checks.h

[compiler-rt][hwasan] Remove internal linkage from check templates (NFC) (#207430)

`SigTrap`, `CheckAddress`, and `CheckAddressSized` are static function
templates in `hwasan_checks.h`, so any TU that includes the header
without instantiating them trips -Wunused-template. Dropping static
clears the warning.
Part of #202945
DeltaFile
+5-5compiler-rt/lib/hwasan/hwasan_checks.h
+5-51 files

LLVM/project 695c4ddllvm/lib/Target/PowerPC PPCSchedule440.td PPCScheduleE5500.td

[PowerPC] Remove itinerary IIC_LdStDCBA

The itinerary IIC_LdStDCBA is defined and used in scheduling models, but no instruction is assigned to it. However, since the instruction is basically retired (not part of the portable Power ISA), and all scheduling models model it similar to IIC_LdStDCBF, the itinerary can be removed.
DeltaFile
+0-7llvm/lib/Target/PowerPC/PPCSchedule440.td
+0-4llvm/lib/Target/PowerPC/PPCScheduleE5500.td
+0-4llvm/lib/Target/PowerPC/PPCScheduleE500.td
+0-4llvm/lib/Target/PowerPC/PPCScheduleE500mc.td
+0-2llvm/lib/Target/PowerPC/PPCScheduleA2.td
+0-1llvm/lib/Target/PowerPC/PPCSchedule.td
+0-221 files not shown
+0-237 files

LLVM/project 4f64218llvm/lib/Transforms/Vectorize VPlanUtils.cpp VPlanPatternMatch.h

[VPlan] Add m_VScale() pattern matcher. (NFC) (#207394)

Add a dedicated m_VScale() matcher for VPInstruction::VScale, in line
with other VPInstruction matchers.
DeltaFile
+4-7llvm/lib/Transforms/Vectorize/VPlanUtils.cpp
+4-0llvm/lib/Transforms/Vectorize/VPlanPatternMatch.h
+8-72 files

LLVM/project 80f2ae4llvm/test/CodeGen/X86 zero_extend_vector_inreg.ll

[X86] zero_extend_vector_inreg.ll - regenerate checks to reduce diff in a future patch (#207424)
DeltaFile
+0-3llvm/test/CodeGen/X86/zero_extend_vector_inreg.ll
+0-31 files

LLVM/project 11d2e98llvm/test/CodeGen/X86 known-pow2.ll

[X86] known-pow2.ll - regenerate checks to reduce diff in a future patch (#207425)
DeltaFile
+9-9llvm/test/CodeGen/X86/known-pow2.ll
+9-91 files

LLVM/project d24f20allvm/include/llvm/Support X86DisassemblerDecoderCommon.h, llvm/lib/Target/X86/Disassembler X86Disassembler.cpp

[X86] Pool sparse disassembler opcode rows (#202666)

The XOP, 3DNow, and VEX/EVEX map 4-7 decoder tables contain 1,760
context rows but only 266 distinct values. Keep the four common opcode
maps as direct tables and intern rows only for these eight sparse maps.

This reduces fully stripped arm64 llvm-mc from 8,333,344 to 6,797,728
bytes, saving 1,535,616 bytes (18.43%). X86Disassembler.cpp.o decreases
by 1,525,328 bytes (52.36%); constant data falls by 1,526,328 bytes
while text grows by 848 bytes. The stripped all-tools multicall binary
decreases from 145,103,200 to 143,567,584 bytes, saving 1,535,616 bytes
(1.058%).

Work towards #202616

AI tool disclosure: Co-authored with OpenAI Codex.
DeltaFile
+35-90llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp
+85-15llvm/utils/TableGen/X86DisassemblerTables.cpp
+6-16llvm/include/llvm/Support/X86DisassemblerDecoderCommon.h
+7-6llvm/utils/TableGen/DisassemblerEmitter.cpp
+2-2llvm/utils/TableGen/X86DisassemblerTables.h
+135-1295 files

LLVM/project 554e323compiler-rt/lib/sanitizer_common sanitizer_flag_parser.h

[compiler-rt][sanitizer_common] Remove internal linkage from RegisterFlag (NFC) (#206308)

RegisterFlag is a static function template in a header, so every TU that
includes it without calling it trips `-Wunused-template`. Dropping
static gives it normal external linkage and clears the warning.

NFC. Part of #202945.
DeltaFile
+2-2compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h
+2-21 files

LLVM/project 627b164llvm/test/CodeGen/AMDGPU vgpr-spill-placement-issue61083.ll

[AMDGPU] Remove obsolet __keep_alive declare in test (#207418)

__keep_alive doesn't exist anymore since
https://reviews.llvm.org/D151324
DeltaFile
+0-1llvm/test/CodeGen/AMDGPU/vgpr-spill-placement-issue61083.ll
+0-11 files

LLVM/project 764e84bclang/docs ReleaseNotes.md, clang/lib/Sema SemaDecl.cpp

[clang] fix redeclarations of the injected class name

The declaration used to represent an injected class name should never
be part of any redeclaration chain.

Fixes #202320
DeltaFile
+14-11clang/lib/Sema/SemaDecl.cpp
+7-0clang/test/SemaCXX/injected-class-name-crash.cpp
+1-0clang/docs/ReleaseNotes.md
+22-113 files

LLVM/project 0fd9b71llvm/lib/IR Verifier.cpp

[NFC][LLVM][Verifier] Use auto when assigning result of `dyn_cast` (#207343)
DeltaFile
+56-56llvm/lib/IR/Verifier.cpp
+56-561 files

LLVM/project 95d39cfclang/include/clang/Options Options.td, clang/lib/Driver/ToolChains Clang.cpp

address comments
DeltaFile
+3-3clang/include/clang/Options/Options.td
+1-1clang/lib/Driver/ToolChains/Clang.cpp
+4-42 files

LLVM/project ef269efclang/docs LanguageExtensions.md, clang/include/clang/Options Options.td

Enable driver changes for fexec-charset
DeltaFile
+14-6clang/lib/Driver/ToolChains/Clang.cpp
+14-4clang/include/clang/Options/Options.td
+11-3clang/test/Driver/clang_f_opts.c
+10-0llvm/lib/Support/TextEncoding.cpp
+4-3clang/test/Driver/cl-options.c
+3-3clang/docs/LanguageExtensions.md
+56-193 files not shown
+60-199 files

LLVM/project 2056cb2clang/lib/AST ASTContext.cpp, clang/lib/Lex TextEncoding.cpp

Convert the key before cache lookup to prevent encoding differences
DeltaFile
+9-9clang/lib/AST/ASTContext.cpp
+2-2clang/lib/Lex/TextEncoding.cpp
+11-112 files

LLVM/project 22cf62aclang/include/clang/Basic TargetInfo.h, clang/lib/AST ASTContext.cpp

convert to exec-charset inside getPredefinedStringLiteralFromCache, test __builtin_FILE()
DeltaFile
+10-0clang/lib/AST/ASTContext.cpp
+4-0clang/test/CodeGen/systemz-charset.cpp
+3-0clang/lib/Basic/TargetInfo.cpp
+2-1clang/lib/Lex/TextEncoding.cpp
+2-0clang/include/clang/Basic/TargetInfo.h
+21-15 files

LLVM/project 6c2dfdcclang/lib/Lex TextEncoding.cpp, clang/lib/Sema SemaChecking.cpp

do not convert character by character
DeltaFile
+6-4clang/lib/Sema/SemaChecking.cpp
+1-1clang/lib/Lex/TextEncoding.cpp
+7-52 files

LLVM/project 685da0fclang/lib/AST PrintfFormatString.cpp FormatString.cpp, clang/lib/Sema SemaChecking.cpp

Add format string handling
DeltaFile
+58-31clang/lib/AST/PrintfFormatString.cpp
+46-40clang/lib/AST/FormatString.cpp
+33-21clang/lib/Sema/SemaChecking.cpp
+25-11clang/lib/AST/FormatStringParsing.h
+15-8clang/lib/AST/ScanfFormatString.cpp
+19-0llvm/lib/Support/TextEncoding.cpp
+196-1117 files not shown
+233-12013 files

LLVM/project bc5be68clang/include/clang/Lex TextEncoding.h, clang/lib/Lex TextEncoding.cpp

fix CI
DeltaFile
+2-2clang/lib/Lex/TextEncoding.cpp
+1-0clang/include/clang/Lex/TextEncoding.h
+3-22 files

LLVM/project b195e37clang/include/clang/Sema Sema.h

Fix build failure
DeltaFile
+1-0clang/include/clang/Sema/Sema.h
+1-01 files

LLVM/project ba04fb8clang/test/CodeGen systemz-charset.c

fix CI
DeltaFile
+2-0clang/test/CodeGen/systemz-charset.c
+2-01 files

LLVM/project 325eaf0clang/include/clang/Sema Sema.h, clang/lib/Parse Parser.cpp ParseDeclCXX.cpp

fix CI
DeltaFile
+0-7clang/test/CodeGen/systemz-charset.c
+2-2clang/lib/Sema/SemaExpr.cpp
+2-2clang/include/clang/Sema/Sema.h
+1-1clang/lib/Parse/Parser.cpp
+0-2clang/lib/Parse/ParseDeclCXX.cpp
+0-1clang/lib/Parse/ParseDecl.cpp
+5-156 files

LLVM/project 04ec584clang/include/clang/Sema Sema.h

Remove old include
DeltaFile
+0-1clang/include/clang/Sema/Sema.h
+0-11 files

LLVM/project 62b2ec5clang/lib/Parse ParseDecl.cpp ParseExpr.cpp, clang/lib/Sema SemaExpr.cpp

add ParserConversionAction, do not translate unevaluated strings
DeltaFile
+6-6clang/lib/Sema/SemaExpr.cpp
+10-0clang/lib/Parse/ParseDecl.cpp
+8-0clang/test/CodeGen/systemz-charset-diag.cpp
+3-3clang/lib/Parse/ParseExpr.cpp
+5-0clang/test/CodeGen/systemz-charset.c
+4-0clang/lib/Parse/Parser.cpp
+36-93 files not shown
+42-109 files

LLVM/project e561875llvm/include/llvm/ADT ArrayRef.h, llvm/unittests/ADT ArrayRefTest.cpp

[ArrayRef] Make iterator_range constructor const-agnostic (#205183)

Make the enable_if guard const-agnostic to help some use-cases.
DeltaFile
+26-5llvm/unittests/ADT/ArrayRefTest.cpp
+2-2llvm/include/llvm/ADT/ArrayRef.h
+28-72 files

LLVM/project 77cc884llvm/lib/Target/SPIRV SPIRVISelLowering.cpp SPIRVISelLowering.h, llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics atomic_bfloat16_load_store_xchg.ll atomic_int16_load_store_xchg_cmpxchg.ll

[SPIRV] Preserve FP types in atomic load/store instead of casting to integer (#194583)

The default
`TargetLowering::shouldCastAtomicLoadInIR`/`shouldCastAtomicStoreInIR`
cast all FP atomics to integer, producing unnecessary bitcasts in SPIR-V
output. Override both to return None, matching the existing
`shouldCastAtomicRMWIInIR` behavior and letting
`OpAtomicLoad`/`OpAtomicStore` operate on FP types directly.

Also updated 16-bit atomics tests from #184312 to use native load/store
atomic instructions now that the SPIRV backend supports them (landed in
#185696).

AI-assisted: Claude Sonnet 4.6 (commercial SaaS)
DeltaFile
+15-0llvm/lib/Target/SPIRV/SPIRVISelLowering.cpp
+4-11llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_bfloat16_load_store_xchg.ll
+4-10llvm/test/CodeGen/SPIRV/extensions/SPV_INTEL_16bit_atomics/atomic_int16_load_store_xchg_cmpxchg.ll
+1-2llvm/test/CodeGen/SPIRV/transcoding/load-atomic.ll
+1-2llvm/test/CodeGen/SPIRV/transcoding/store-atomic.ll
+2-0llvm/lib/Target/SPIRV/SPIRVISelLowering.h
+27-256 files

LLVM/project e6cef24clang/lib/Format NumericLiteralInfo.cpp, clang/unittests/Format NumericLiteralInfoTest.cpp

[clang-format] Fix crash on numeric literals with an incomplete exponent (#206594)

NumericLiteralInfo could read into tokens out of bounds due to the token
processing assuming well-formed numeric literals and incrementing
pointers to read past them. The fix properly bounds the searches to the
token size via std::min and accounts for the new trimmed string size.

Fixes #206593

Used Claude Code for help with identifying the source of the bug and
checking correctness with fuzzing, wrote the solution myself
DeltaFile
+9-5clang/lib/Format/NumericLiteralInfo.cpp
+8-0clang/unittests/Format/NumericLiteralInfoTest.cpp
+17-52 files

LLVM/project d2b5a1fclang/lib/Format TokenAnnotator.cpp, clang/unittests/Format TokenAnnotatorTest.cpp

[clang-format] Fix annotating paren after in (#206810)

The y.in(foo) was considered a cast, and thus the following - annotated
as unary operator.

Fixes #206339
DeltaFile
+5-0clang/unittests/Format/TokenAnnotatorTest.cpp
+1-1clang/lib/Format/TokenAnnotator.cpp
+6-12 files

LLVM/project 3e55061llvm/test/CodeGen/AMDGPU llvm.exp10.f64.ll llvm.exp.f64.ll, llvm/test/CodeGen/AMDGPU/GlobalISel legalize-llvm.amdgcn.image.sample.a16.ll legalize-store-global.mir

AMDGPU/GlobalISel: Switch to extended LLTs

IRtranslator now translates bfloat. Switch tablegen to use extendedLLTs.
Around 300 regression tests fail to inst-select because GIM_SwitchType
does not accept LLT::scalar. Around 100 mir inst select tests had input
updated to i32/f32 and selects successfully. Then there are 24 various
crashes, mostly combiner or machine-verifier, those tests are disabled.

Most problems come from mixing s32 with i32/f32 and the way
operator== works with extendedLLTs compared to GIM_SwitchType.
In general, for inst-select fixes, think it would be best to try and avoid
explicit use of LLT::scalar in lowering to avoid mixing it with i32/f32
See inst-select-extendedLLTs.mir and inst-select-extendedLLTs-err.mir.
DeltaFile
+5,524-11,062llvm/test/CodeGen/AMDGPU/llvm.exp10.f64.ll
+5,056-10,126llvm/test/CodeGen/AMDGPU/llvm.exp.f64.ll
+4,877-9,819llvm/test/CodeGen/AMDGPU/llvm.exp2.f64.ll
+5,052-5,052llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-llvm.amdgcn.image.sample.a16.ll
+4,710-4,710llvm/test/CodeGen/AMDGPU/GlobalISel/legalize-store-global.mir
+3,095-5,582llvm/test/CodeGen/AMDGPU/GlobalISel/fshr.ll
+28,314-46,351685 files not shown
+170,788-238,703691 files

LLVM/project 9d195ccllvm/test/CodeGen/AMDGPU vgpr-spill-placement-issue61083.ll

[AMDGPU] Remove obsolet __keep_alive declare in test

__keep_alive doesn't exist anymore since
https://reviews.llvm.org/D151324
DeltaFile
+0-1llvm/test/CodeGen/AMDGPU/vgpr-spill-placement-issue61083.ll
+0-11 files

LLVM/project 780298cllvm/lib/IR Verifier.cpp, llvm/test/CodeGen/NVPTX tcgen05-mma-invalid.ll tcgen05-mma-block-scale-invalid.ll

[NFC][LLVM] Define range attribute for `llvm.prefetch` args (#207300)

Define valid range for `llvm.prefetch` immarg values and eliminate C++
verification code.

Additionally, change the range verification failure message to include
the argument number and simplify formatting using `formatv`.
DeltaFile
+15-15llvm/test/Verifier/AMDGPU/test-cvt-fp4f6f8-immarg-ranges.ll
+11-15llvm/test/CodeGen/NVPTX/tcgen05-mma-invalid.ll
+8-11llvm/test/CodeGen/NVPTX/tcgen05-mma-block-scale-invalid.ll
+8-10llvm/test/CodeGen/NVPTX/tcgen05-mma-scale-d-invalid.ll
+3-11llvm/lib/IR/Verifier.cpp
+12-0llvm/test/Verifier/intrinsic-immarg.ll
+57-627 files not shown
+74-7913 files