LLVM/project 3938a37clang/lib/Serialization ASTReader.cpp, clang/test/ClangScanDeps build-session-validation-relocated-modules.c

[clang][Modules] Use strict comparison at build-session validation boundary (#197203)

The relocation check used `IFVT >= session` while input validation used
`IFVT > session`, silently skipping the relocation check when both
landed in the same truncated second. Share a single helper with the
strict comparison. This was noticed when the accompanying test was flaky
on green dragon macOS bot.

Also:

* Drop the test's `sleep 1` timing dependency by future-dating the
session timestamp directly.
* Remove the dead `touch %t/session.timestamp` lines in the
ClangScanDeps test (the scanner ignores the file's mtime).

hopefully resolves: rdar://173816745
DeltaFile
+21-9clang/lib/Serialization/ASTReader.cpp
+3-5clang/test/Modules/build-session-validation-relocated-modules.c
+2-2clang/test/ClangScanDeps/build-session-validation-relocated-modules.c
+26-163 files

LLVM/project dc41adeclang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6833 files not shown
+202-15239 files

LLVM/project 4a3429eclang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp ItaniumMangle.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+176-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+88-11clang/include/clang/AST/ASTContext.h
+1,642-43570 files not shown
+2,397-78876 files

LLVM/project 05afc9aclang/lib/CIR/CodeGen CIRGenExprAggregate.cpp CIRGenExprCXX.cpp, clang/test/CIR/CodeGen three-way-compare-cleanup.cpp initializer-list-size-cleanup.cpp

[CIR] Fix problems with stale insert locations (#197296)

This change fixes three places where we were copying the builder rather
than getting a reference to it, leading to potential problems with
incorrect state, including insert locations. Two of these cases were
causing observable problems, and I'm adding regression tests for those.
The third doesn't seem to have caused any actual problems, but I'm
changing it to avoid potential problems in the future.

Assisted-by: Cursor / claude-opus-4.7-thinking-xhigh
DeltaFile
+47-0clang/test/CIR/CodeGen/three-way-compare-cleanup.cpp
+32-0clang/test/CIR/CodeGen/initializer-list-size-cleanup.cpp
+2-2clang/lib/CIR/CodeGen/CIRGenExprAggregate.cpp
+1-1clang/lib/CIR/CodeGen/CIRGenExprCXX.cpp
+82-34 files

LLVM/project 7d05664libc/src/__support/CPP bit.h, libc/src/__support/macros attributes.h

[libc][NFC] Increase minimum GCC version for `LIBC_CONSTEXPR`
DeltaFile
+8-8libc/src/__support/CPP/bit.h
+1-1libc/src/__support/macros/attributes.h
+9-92 files

LLVM/project 7565c83clang/include/clang/Parse Parser.h, clang/include/clang/Sema DeclSpec.h

[BoundsSafety][NFC] Introduce LateParsedTypeAttribute for late-parsed type attributes (#192799)

Preparatory refactoring for llvm/llvm-project#179612. The new late
parsing approach needs a distinct data structure to carry
type-attribute-specific information through the late parsing pipeline,
separate from declaration-level late-parsed attributes.
- Add LateParsedTypeAttribute subtyping LateParsedAttribute
- Add ParseLexedTypeAttribute and LateTypeAttrParserCallback to Parser
- Extract the shared token setup, parsing, and cleanup logic from
ParseLexedCAttribute and ParseLexedTypeAttribute into a common
ParseLexedCAttributeTokens helper.
DeltaFile
+60-3clang/include/clang/Parse/Parser.h
+39-13clang/lib/Parse/ParseDecl.cpp
+10-4clang/include/clang/Sema/DeclSpec.h
+2-0clang/lib/Parse/ParseCXXInlineMethods.cpp
+111-204 files

LLVM/project b239b5cllvm/include/llvm/MC DXContainerInfo.h, llvm/lib/MC DXContainerInfo.cpp

[DirectX][ObjectYAML] Add ILDN part support (#194508)

Add support for DXContainer ILDN part in the ObjectYAML pipeline so it
can be represented in structured YAML and round-tripped through
yaml2obj/obj2yaml.

ILDN part is meant to store the name of PDB file that contains shader
debug info.
DeltaFile
+64-0llvm/test/tools/obj2yaml/DXContainer/ILDNPart.yaml
+46-2llvm/lib/Object/DXContainer.cpp
+41-0llvm/lib/MC/DXContainerInfo.cpp
+36-0llvm/unittests/Object/DXContainerTest.cpp
+33-0llvm/unittests/ObjectYAML/DXContainerYAMLTest.cpp
+32-0llvm/include/llvm/MC/DXContainerInfo.h
+252-211 files not shown
+393-217 files

LLVM/project 2ac7c0cclang/test/Instrumentor UnreachableRT.cpp InstrumentorUnreachable.cpp, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add unreachable support; unreachable stack trace printing

Allow to instrument unreachable and provide a use case to identify an
unreachable was reached.
DeltaFile
+22-0clang/test/Instrumentor/UnreachableRT.cpp
+21-0llvm/include/llvm/Transforms/IPO/Instrumentor.h
+20-0clang/test/Instrumentor/InstrumentorUnreachable.cpp
+15-0clang/test/Instrumentor/UnreachableRT.json
+12-0llvm/lib/Transforms/IPO/Instrumentor.cpp
+5-1clang/test/Instrumentor/lit.local.cfg
+95-11 files not shown
+100-17 files

LLVM/project d63cf8bclang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project 63c0b52llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project a776a5allvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project 0a6ca80clang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project acb7c44libc/src/__support/macros attributes.h

[libc][NFC] Add `is_constant_evaluated` support for GCC9 (#197327)
DeltaFile
+7-1libc/src/__support/macros/attributes.h
+7-11 files

LLVM/project 0edfd11libc/shared math.h, libc/test/shared shared_math_constexpr_test.cpp shared_math_test.cpp

[libc] Temporarily disable iscanonical, isnan, issignaling in shared/math.h (#197328)

These clashes with same-name macros defined in <math.h>.
DeltaFile
+6-3libc/shared/math.h
+6-3libc/test/shared/shared_math_constexpr_test.cpp
+6-3libc/test/shared/shared_math_test.cpp
+18-93 files

LLVM/project 27dc281libc/src/__support/CPP/type_traits is_constant_evaluated.h, libc/src/__support/macros attributes.h

modify compiler version
DeltaFile
+7-1libc/src/__support/macros/attributes.h
+1-3libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+8-42 files

LLVM/project d3831efcompiler-rt/lib/scudo/standalone/fuzz allocator_fuzzer.cpp CMakeLists.txt

[scudo] Add a generic allocation fuzzer. (#197317)

The fuzzer disabled memory tagging if supported since there is an
unknown problem with trying to create an allocator instance and doing
raw allocate/deallocate calls.
DeltaFile
+95-0compiler-rt/lib/scudo/standalone/fuzz/allocator_fuzzer.cpp
+11-0compiler-rt/lib/scudo/standalone/fuzz/CMakeLists.txt
+106-02 files

LLVM/project 9ee0527clang/test/Instrumentor StackUsageRT.cpp StackUsageRT.json, llvm/include/llvm/Transforms/IPO Instrumentor.h

[Instrumentor] Add Alloca and Function support; stack usage example

This adds support for alloca instrumentation and function pre/post
instrumentation. Alloca support follows load/store support directly.
Functions require special care to determine the insertion points.

Together, we can showcase how the stack high watermark can be profiled,
see InstrumentorStackUsage.cpp.
DeltaFile
+294-7llvm/lib/Transforms/IPO/Instrumentor.cpp
+120-8llvm/include/llvm/Transforms/IPO/Instrumentor.h
+60-0clang/test/Instrumentor/StackUsageRT.cpp
+59-0llvm/test/Instrumentation/Instrumentor/default_config.json
+57-0llvm/test/Instrumentation/Instrumentor/alloca_and_function.ll
+54-0clang/test/Instrumentor/StackUsageRT.json
+644-152 files not shown
+683-158 files

LLVM/project a10efc9llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorConfigFile.h, llvm/lib/Passes PassBuilderPipelines.cpp

[Instrumentor] Use the pass builder's FileSystem for reading files

In the IO sandbox, the old read calls caused the CI to fail. This
changes uses the PassBuilder's FileSystem the same way other passes
read files from disk (during CI).
DeltaFile
+16-5llvm/lib/Transforms/IPO/InstrumentorConfigFile.cpp
+12-1llvm/lib/Transforms/IPO/Instrumentor.cpp
+7-3llvm/include/llvm/Transforms/IPO/Instrumentor.h
+2-2llvm/lib/Passes/PassBuilderPipelines.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorConfigFile.h
+38-125 files

LLVM/project 2bfc660bolt/test/AArch64 plt-mold-func-symbols.s, llvm/lib/Support APFloat.cpp

Merge branch 'main' into users/jdoerfert/instrumentor_alloca_and_function
DeltaFile
+58-0llvm/unittests/ADT/APFloatTest.cpp
+36-0bolt/test/AArch64/plt-mold-func-symbols.s
+31-0llvm/lib/Support/APFloat.cpp
+15-11llvm/test/MC/AArch64/LFI/reserved.s
+20-0llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
+10-6llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
+170-1711 files not shown
+204-3217 files

LLVM/project 537470elibc/src/__support/CPP/type_traits is_constant_evaluated.h

add Clang9 support
DeltaFile
+2-1libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+2-11 files

LLVM/project e45e228libc/src/__support/CPP/type_traits is_constant_evaluated.h

[libc][NFC] Add `is_constant_evaluated` support for GCC9
DeltaFile
+2-1libc/src/__support/CPP/type_traits/is_constant_evaluated.h
+2-11 files

LLVM/project 84edb83llvm/lib/Target/DirectX/DXILWriter DXILBitcodeWriter.cpp, llvm/lib/Target/DirectX/DirectXIRPasses DXILDebugInfo.cpp

[DirectX][NFC] Move DICompileUnit conversion into DXILDebugInfo (#196451)

In #192574, I added logic for changing versioned language names to
unversioned language names, but did so directly in DXILBitcodeWriter.
This is better done in DXILDebugInfo instead so that, in a future
change, we can check the result of DXILDebugInfo in tests.
DeltaFile
+20-0llvm/lib/Target/DirectX/DirectXIRPasses/DXILDebugInfo.cpp
+1-7llvm/lib/Target/DirectX/DXILWriter/DXILBitcodeWriter.cpp
+21-72 files

LLVM/project 8be53d4llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add a global function regexp to limit the instrumentation

Only functions that match the "function_regex" will be instrumented,
or if they have the instrumentation attribute.
DeltaFile
+55-0llvm/test/Instrumentation/Instrumentor/function_regex.ll
+27-12llvm/lib/Transforms/IPO/Instrumentor.cpp
+26-0llvm/test/Instrumentation/Instrumentor/bad_function_regex.json
+26-0llvm/test/Instrumentation/Instrumentor/function_regex.json
+11-0llvm/test/Instrumentation/Instrumentor/bad_function_regexp.ll
+7-1llvm/include/llvm/Transforms/IPO/Instrumentor.h
+152-131 files not shown
+155-147 files

LLVM/project 7c48e49lldb/test/API/functionalities/breakpoint/scripted_bkpt/overrides_resolver TestOverridesResolver.py

[lldb][windows] mark test_overrides_resolver_resolver_cmd as XFAIL (#197285)

Follow up to https://github.com/llvm/llvm-project/pull/195392 to mark
`test_overrides_resolver_resolver_cmd` as XFAIL on Windows, like
`test_overrides_resolver_resolver_python`.
DeltaFile
+1-0lldb/test/API/functionalities/breakpoint/scripted_bkpt/overrides_resolver/TestOverridesResolver.py
+1-01 files

LLVM/project 2b2a638llvm CMakeLists.txt, llvm/include/llvm/ADT APFloat.h

[APFloat] Add exp functions for single and double using exp/expf implementations from LLVM libc. (#190667)

This reapplies #143959 with some changes:
- Only support default rounding modes for now. Other rounding modes will
wait for proper static rounding implementations in LLVM libc.
- Add both single and double precision exp.
DeltaFile
+58-0llvm/unittests/ADT/APFloatTest.cpp
+31-0llvm/lib/Support/APFloat.cpp
+5-0llvm/lib/Support/CMakeLists.txt
+4-0llvm/CMakeLists.txt
+4-0llvm/include/llvm/ADT/APFloat.h
+1-1llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
+103-16 files

LLVM/project 3471515bolt/lib/Rewrite RewriteInstance.cpp, bolt/test/AArch64 plt-mold-func-symbols.s

[BOLT] Account for stubs with symbols in plt (#192716)

LLD and bfd do not generate functions symbols for stubs in PLT. However,
mold does and trips the object discovery to create two functions (BF
then PLTFunc). This can cause symbol to be resoved with BF with
incorrect ADRP immediate field in AArch64.

The issue is described in more detail here:
https://github.com/llvm/llvm-project/issues/192552
DeltaFile
+36-0bolt/test/AArch64/plt-mold-func-symbols.s
+5-2bolt/lib/Rewrite/RewriteInstance.cpp
+1-1bolt/test/X86/plt-mold.test
+42-33 files

LLVM/project e7ae7b5llvm/include/llvm/Transforms/IPO Instrumentor.h, llvm/lib/Transforms/IPO Instrumentor.cpp

[Instrumentor] Add a global function regexp to limit the instrumentation

Only functions that match the "function_regex" will be instrumented,
or if they have the instrumentation attribute.
DeltaFile
+55-0llvm/test/Instrumentation/Instrumentor/function_regex.ll
+27-12llvm/lib/Transforms/IPO/Instrumentor.cpp
+26-0llvm/test/Instrumentation/Instrumentor/function_regex.json
+26-0llvm/test/Instrumentation/Instrumentor/bad_function_regex.json
+11-0llvm/test/Instrumentation/Instrumentor/bad_function_regexp.ll
+7-1llvm/include/llvm/Transforms/IPO/Instrumentor.h
+152-131 files not shown
+155-147 files

LLVM/project a9c655dllvm/include/llvm/MC MCLFIRewriter.h, llvm/lib/MC MCLFIRewriter.cpp

[LFI] Report reserved register modification in error message (#195160)

Reports the name of the modified reserved register in the error message.
Updates the MCLFIRewriter error infrastructure to take a Twine for this.
Also adds a warning function, which will be useful in future cases where
the rewriter sees an unknown instruction/addressing mode, but will pass
it through anyway.

Fixes #192027.
DeltaFile
+15-11llvm/test/MC/AArch64/LFI/reserved.s
+10-6llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.cpp
+6-1llvm/lib/MC/MCLFIRewriter.cpp
+3-2llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCLFIRewriter.h
+3-1llvm/include/llvm/MC/MCLFIRewriter.h
+37-215 files

LLVM/project 85826d8llvm/lib/Target/WebAssembly WebAssemblyGISel.td, llvm/lib/Target/WebAssembly/GISel WebAssemblyLegalizerInfo.cpp

Implement saturating fp to int
DeltaFile
+424-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fptoui_sat.ll
+418-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fptosi_sat.ll
+6-12llvm/lib/Target/WebAssembly/GISel/WebAssemblyLegalizerInfo.cpp
+13-0llvm/lib/Target/WebAssembly/WebAssemblyGISel.td
+861-124 files

LLVM/project 9b89890llvm/lib/Target/WebAssembly/GISel WebAssemblyLegalizerInfo.cpp, llvm/test/CodeGen/WebAssembly/GlobalISel/instructions is_fpclass.ll fcmp.ll

Implement floating-point comparisons
DeltaFile
+490-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/is_fpclass.ll
+436-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fcmp.ll
+308-0llvm/lib/Target/WebAssembly/GISel/WebAssemblyLegalizerInfo.cpp
+225-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fminimumnum.ll
+219-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fmaximumnum.ll
+55-0llvm/test/CodeGen/WebAssembly/GlobalISel/instructions/fminnum.ll
+1,733-03 files not shown
+1,852-09 files