LLVM/project 1432be4llvm/lib/Transforms/InstCombine InstCombineLoadStoreAlloca.cpp

[InstCombine] Use DenseMap instead of MapVector (NFC) (#214536)

WorkMap is accessed only via MapVector::operator[] and lookup.

This patch changes its type to DenseMap to avoid populating the vector
portion of MapVector.
DeltaFile
+1-1llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
+1-11 files

LLVM/project 3dc9228llvm/lib/CodeGen/SelectionDAG LegalizeTypes.h LegalizeFloatTypes.cpp, llvm/test/CodeGen/X86 xrint-no-libcall-error.ll

DAG: Gracefully diagnose missing lrint/lround float-operand libcalls

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+32-36llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
+12-0llvm/test/CodeGen/X86/xrint-no-libcall-error.ll
+1-0llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h
+45-363 files

LLVM/project 48214d5llvm/lib/CodeGen/SelectionDAG LegalizeIntegerTypes.cpp, llvm/test/CodeGen/X86 xrint-no-libcall-error.ll

DAG: Gracefully diagnose missing lrint/llrint/lround/llround libcall

Avoid hitting the fatal error in makeLibCall by emitting a diagnostic
if the library call is unsupported.

Co-authored-by: Claude (Claude-Opus-4.8) <noreply at anthropic.com>
DeltaFile
+28-0llvm/test/CodeGen/X86/xrint-no-libcall-error.ll
+13-3llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
+41-32 files

LLVM/project dfe7be5libc/test/src/sched CMakeLists.txt, libc/test/src/signal CMakeLists.txt

[libc] Enable most tests in hermetic mode (#213852)

This is mostly a straightforward search&replace, as I've addressed the
blockers in previous patches. The nontrivial parts are:
- adding a SUITE to a single (FP) test which doesn't have it (turns out
hermetic tests require a SUITE argument)
- using APPEND_LIBC_TESTS in a couple of tests creating files (to avoid
races between unit and hermetic versions)
- renaming add_libc_unittest to _add_libc_unittest to prevent accidental
creations of non-hermetic tests (one can still use the UNIT_TEST_ONLY
arg to add_libc_test to achieve this effect)
DeltaFile
+39-39libc/test/src/unistd/CMakeLists.txt
+14-14libc/test/src/sys/socket/linux/CMakeLists.txt
+13-13libc/test/src/sched/CMakeLists.txt
+10-10libc/test/src/time/CMakeLists.txt
+10-10libc/test/src/signal/CMakeLists.txt
+8-8libc/test/src/sys/stat/CMakeLists.txt
+94-9445 files not shown
+191-18751 files

LLVM/project f16941bclang/include/clang/Sema Sema.h DynamicAllocationArgumentsCXX.h, clang/lib/Sema SemaExprCXX.cpp

[clang] Simplify the overload resolution logic for operator new and new[]

This PR replaces the current spec-equivalent argument list mutation with
direct iteration of the correctly ordered set of argument lists for a
given allocation.

This adds a bit of architectural work around the argument list construction
but the overall effect is substantially simplified search of the overload
candidates.

* We now simply enumerate correctly ordered candidates for the implicit
  arguments. This means no more re-entrant modification of the argument
  list to handle addition and removal of type-identity or alignment
  parameters.
* We no longer mutate the primary LookupResult when attempting the MSVC
  array fallback. This also lays the groundwork for correct diagnostics
  of such cases. For now we have a minor improvement of correctly
  reporting the operator we were trying to resolve originally, and tell
  the user that we have attempted the MSVC fallback if applicable.

    [16 lines not shown]
DeltaFile
+296-206clang/lib/Sema/SemaExprCXX.cpp
+68-0clang/include/clang/Sema/DynamicAllocationArgumentsCXX.h
+31-6clang/test/SemaCXX/type-aware-new-invalid-type-identity.cpp
+32-0clang/test/SemaCXX/type-aware-new-invalid-alignvalt-cache.cpp
+22-4clang/include/clang/Sema/Sema.h
+16-0clang/test/SemaCXX/microsoft-new-array-fallback.cpp
+465-2162 files not shown
+477-2208 files

LLVM/project bb3419blibc/src/__support/math atan2f128.h, libc/test/src/math/smoke atan2f_test.cpp atan2_test.cpp

[libc] Fix Atan2f128 and add tests for all versions (#215023)

It fixes the THREE_PI_OVER_4 value in atan2f128 and adds a small smoke
test against the failure.
The result or comparison value is directly taken from the failure while
comparing with core math :
```CPP
FAIL x=inf y=-inf ref=0x1.2d97c7f3321d234f272993d1414ap+1 z=0x1.2d97c7f3321d234f272993d1414ap-1
```

Additionally it adds some more smoke tests for all atan2 versions.
DeltaFile
+20-3libc/test/src/math/smoke/atan2f128_test.cpp
+23-0libc/test/src/math/smoke/atan2f16_test.cpp
+18-0libc/test/src/math/smoke/atan2f_test.cpp
+18-0libc/test/src/math/smoke/atan2_test.cpp
+1-1libc/src/__support/math/atan2f128.h
+80-45 files

LLVM/project 5525c50libc/src/__support/builtins CMakeLists.txt

fix conflict
DeltaFile
+2-0libc/src/__support/builtins/CMakeLists.txt
+2-01 files

LLVM/project 980f4f6libc/test/shared shared_builtins_test.cpp

fix conflicts
DeltaFile
+2-5libc/test/shared/shared_builtins_test.cpp
+2-51 files

LLVM/project e7b7fd1compiler-rt/lib/builtins comparetf2.cpp, libc/shared/builtins letf2.h getf2.h

[compiler-rt][builtins] libc-backed quad-float comparison builtins
DeltaFile
+49-0compiler-rt/lib/builtins/comparetf2.cpp
+36-0libc/src/__support/builtins/getf2.h
+36-0libc/src/__support/builtins/unordtf2.h
+36-0libc/src/__support/builtins/letf2.h
+35-0libc/shared/builtins/letf2.h
+35-0libc/shared/builtins/getf2.h
+227-06 files not shown
+321-012 files

LLVM/project 2d3fd86compiler-rt/lib/builtins comparedf2.cpp, libc/shared/builtins ledf2.h gedf2.h

[compiler-rt][builtins] libc-backed double-float comparison builtins
DeltaFile
+54-0compiler-rt/lib/builtins/comparedf2.cpp
+30-0libc/src/__support/builtins/gedf2.h
+30-0libc/src/__support/builtins/ledf2.h
+30-0libc/src/__support/builtins/unorddf2.h
+29-0libc/shared/builtins/ledf2.h
+29-0libc/shared/builtins/gedf2.h
+202-06 files not shown
+280-012 files

LLVM/project 6a5c1belibc/src/__support/builtins CMakeLists.txt

conflict
DeltaFile
+3-0libc/src/__support/builtins/CMakeLists.txt
+3-01 files

LLVM/project 04faf14compiler-rt/lib/builtins comparesf2.cpp, libc/shared/builtins unordsf2.h lesf2.h

[compiler-rt][builtins] libc-backed single-float comparison builtins
DeltaFile
+54-0compiler-rt/lib/builtins/comparesf2.cpp
+30-0libc/src/__support/builtins/unordsf2.h
+30-0libc/src/__support/builtins/lesf2.h
+30-0libc/src/__support/builtins/gesf2.h
+29-0libc/shared/builtins/unordsf2.h
+29-0libc/shared/builtins/lesf2.h
+202-06 files not shown
+270-012 files

LLVM/project 9d500a9libc/src/__support/builtins cmp_helper.h

fix format
DeltaFile
+2-2libc/src/__support/builtins/cmp_helper.h
+2-21 files

LLVM/project 3d665d8libc/src/__support/builtins CMakeLists.txt cmp_helper.h

[libc][builtins] add cmp_helper for compiler-rt soft-float comparisons
DeltaFile
+63-0libc/src/__support/builtins/cmp_helper.h
+7-0libc/src/__support/builtins/CMakeLists.txt
+70-02 files

LLVM/project 4084a4acompiler-rt/lib/builtins comparedf2.cpp, libc/shared/builtins ledf2.h unorddf2.h

[compiler-rt][builtins] libc-backed double-float comparison builtins
DeltaFile
+54-0compiler-rt/lib/builtins/comparedf2.cpp
+30-0libc/src/__support/builtins/unorddf2.h
+30-0libc/src/__support/builtins/ledf2.h
+30-0libc/src/__support/builtins/gedf2.h
+29-0libc/shared/builtins/ledf2.h
+29-0libc/shared/builtins/unorddf2.h
+202-06 files not shown
+280-012 files

LLVM/project 53813adcompiler-rt/lib/builtins comparesf2.cpp, libc/shared/builtins unordsf2.h lesf2.h

[compiler-rt][builtins] libc-backed single-float comparison builtins
DeltaFile
+54-0compiler-rt/lib/builtins/comparesf2.cpp
+30-0libc/src/__support/builtins/gesf2.h
+30-0libc/src/__support/builtins/unordsf2.h
+30-0libc/src/__support/builtins/lesf2.h
+29-0libc/shared/builtins/unordsf2.h
+29-0libc/shared/builtins/lesf2.h
+202-06 files not shown
+270-012 files

LLVM/project 1725b1elibc/src/__support/builtins cmp_helper.h

fix format
DeltaFile
+2-2libc/src/__support/builtins/cmp_helper.h
+2-21 files

LLVM/project d2d2264libc/src/__support/builtins CMakeLists.txt cmp_helper.h

[libc][builtins] add cmp_helper for compiler-rt soft-float comparisons
DeltaFile
+63-0libc/src/__support/builtins/cmp_helper.h
+7-0libc/src/__support/builtins/CMakeLists.txt
+70-02 files

LLVM/project ad90712libc/src/__support/builtins CMakeLists.txt cmp_helper.h

[libc][builtins] add cmp_helper for compiler-rt soft-float comparisons
DeltaFile
+63-0libc/src/__support/builtins/cmp_helper.h
+7-0libc/src/__support/builtins/CMakeLists.txt
+70-02 files

LLVM/project b2d7400libc/src/__support/builtins cmp_helper.h

fix format
DeltaFile
+2-2libc/src/__support/builtins/cmp_helper.h
+2-21 files

LLVM/project 0aeb516clang/lib/Analysis/LifetimeSafety LoanPropagation.cpp

[LifetimeSafety] Use ImmutableList for buildOriginFlowChain DFS nodes (#208890)

This commit mainly address the suggestion in
https://github.com/llvm/llvm-project/pull/204592#discussion_r3523582077
to use `ImmutableList` for the DFS nodes in `buildOriginFlowChain`, and
also updates the `llvm_unreachable` messages.

---------

Signed-off-by: Yuan Suo <suoyuan666 at s5n.xyz>
Co-authored-by: Utkarsh Saxena <usx at google.com>
DeltaFile
+17-7clang/lib/Analysis/LifetimeSafety/LoanPropagation.cpp
+17-71 files

LLVM/project d9b672bllvm/include/llvm/CodeGen CommandFlags.h

[CodeGen] Remove dead declarations (#215013)

The corresponding function definitions were removed on Jan 12, 2022 in
commit 6a605b97a2006bd391f129a606483656b7c6fb28.
DeltaFile
+0-7llvm/include/llvm/CodeGen/CommandFlags.h
+0-71 files

LLVM/project 17a487elibc/src/__support/builtins cmp_helper.h

fix format
DeltaFile
+2-2libc/src/__support/builtins/cmp_helper.h
+2-21 files

LLVM/project f7f9530libc/src/__support/builtins CMakeLists.txt cmp_helper.h

[libc][builtins] add cmp_helper for compiler-rt soft-float comparisons
DeltaFile
+63-0libc/src/__support/builtins/cmp_helper.h
+7-0libc/src/__support/builtins/CMakeLists.txt
+70-02 files

LLVM/project 1932bd2clang/lib/CIR/Dialect/Transforms CallConvLoweringPass.cpp, clang/test/CIR/CodeGen call-conv-lowering-x86_64.c

[CIR] Accept _Complex and all float formats in x86_64 callconv lowering

The CallConvLowering bridge accepted only float and double, so a function taking
a _Complex, or a float in any other format, failed the pass instead of being
classified.  An all-float aggregate failed for a different reason: its SSE
eightbyte coerces to a vector, and the bridge had no way to represent one, so it
reported the coercion NYI rather than emitting a wrong signature.

Mapping every CIR floating-point type through FPTypeInterface covers all of them
at once.  A _Complex maps to the library's complex type and a vector coercion
now converts back to a CIR vector.

Accepting a long double also makes a union holding one classifiable.  That
exposes the ABI-compatibility flags, which the pass left at the library
defaults.  They now come from the triple and the compatibility version, which is
what lets a long double union reach registers on Darwin instead of memory.

updateArgAttrs appended argument attributes instead of setting them, so a name
already present landed in the dictionary twice.  CIRGen marks a _Complex long

    [8 lines not shown]
DeltaFile
+187-0clang/test/CIR/CodeGen/call-conv-lowering-x86_64.c
+65-34clang/lib/CIR/Dialect/Transforms/CallConvLoweringPass.cpp
+75-0clang/test/CIR/Transforms/abi-lowering/x86_64-complex.cir
+75-0clang/test/CIR/Transforms/abi-lowering/x86_64-wide-floats.cir
+62-0clang/test/CIR/Transforms/abi-lowering/x86_64-vector.cir
+0-51clang/test/CIR/Transforms/abi-lowering/x86_64-aggregate-nyi.cir
+464-857 files not shown
+553-13513 files

LLVM/project bebff2allvm/docs SourceLevelDebugging.md GitHub.md

[docs] Prefer colon fences to delineate blocks containing markup (#214921)

Myst has an extension,
[colon_fence](https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#syntax-colon-fence),
that we enable in our docs. There are many Markdown-aware tools out
there that know to interpret triple backtick as a code block fence, so
they highlight them as pre-formatted text. Colon fences are an
unrecognized Myst extension, and if the Sphinx directive contains a
block of markdown formatted text, that's the desired behavior.
Therefore, at some point during the migration, I started using them.
However, I didn't document this guideline, and I didn't apply it
consistently to the early docs. This PR does that: documents the
guideline, and applies it to our docs.

After this change:
```
❯ rg '```\{(option|note|todo|admonition|warning)\}' | cut -d / -f 1 | sort | uniq -c
     72 clang-tools-extra
```

    [6 lines not shown]
DeltaFile
+34-34llvm/docs/Remarks.md
+22-22llvm/docs/LangRef.md
+16-16llvm/docs/InstrProfileFormat.md
+14-14llvm/docs/CodeGenerator.md
+12-12llvm/docs/SourceLevelDebugging.md
+12-12llvm/docs/GitHub.md
+110-11041 files not shown
+303-27847 files

LLVM/project f9b0ba3libc/src/__support/builtins floatuntisf.h floatuntidf.h

[compiler-rt][builtins] libc-backed int-to-double/float builtins (#209900)

Add libc-backed integer to double/float conversion builtins

Part of #197824
DeltaFile
+136-0libc/src/__support/builtins/CMakeLists.txt
+59-0libc/src/__support/builtins/floatint_helper.h
+38-0libc/src/__support/builtins/floatuntisf.h
+38-0libc/src/__support/builtins/floatuntidf.h
+38-0libc/src/__support/builtins/floattisf.h
+38-0libc/src/__support/builtins/floattidf.h
+347-035 files not shown
+1,315-041 files

LLVM/project 031a67fllvm/lib/Transforms/Vectorize LoopVectorize.cpp

[llvm][LoopVectorize] Avoid nondeterministic iteration (#214886)

The Transforms/LoopVectorize/AArch64/cmp_cost.ll test fails under
LLVM_RERERSE_ITERATION, because iterating over a SmallPtrSet is
nondeterministic. Addresses part of #214872.
DeltaFile
+1-1llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+1-11 files

LLVM/project 2abc0e5libc/src/__support/builtins fixunssfti.h fixunsdfti.h

[compiler-rt][builtins] add libc-backed double/float-to-int builtins (#207543)

Add libc-backed double/float to integer conversion builtins 

Part of #197824
DeltaFile
+128-1libc/src/__support/builtins/CMakeLists.txt
+84-0libc/src/__support/builtins/fixint_helper.h
+39-0libc/src/__support/builtins/fixunssfti.h
+39-0libc/src/__support/builtins/fixunsdfti.h
+39-0libc/src/__support/builtins/fixsfti.h
+39-0libc/src/__support/builtins/fixdfti.h
+368-136 files not shown
+1,340-142 files

LLVM/project cb27401.github/workflows release-binaries.yml

workflows/release-binaries: Always dump Wix log on Windows (#212056)

Dumping it only on successful builds isn't useful.
DeltaFile
+1-1.github/workflows/release-binaries.yml
+1-11 files