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

LLVM/project 1e11d91llvm/test/Transforms/LoopVectorize uniform_across_vf_induction2.ll vplan-based-stride-mv.ll, llvm/test/Transforms/LoopVectorize/AArch64 partial-reduce-dot-product.ll

[VPlan] Use i64 for constant lane indices in insertelement (NFC) (#214664)

Update code to generate insertelement instruction to use i64 as index
type, matching the canonical form instcombine produces.

This is in line with previous changes making sure LVs output is as
canonical as possible.

PR: https://github.com/llvm/llvm-project/pull/214664
DeltaFile
+1,036-238llvm/test/Transforms/LoopVectorize/vplan-based-stride-mv.ll
+372-372llvm/test/Transforms/LoopVectorize/X86/load-deref-pred.ll
+106-106llvm/test/Transforms/LoopVectorize/uniform_across_vf_induction2.ll
+91-91llvm/test/Transforms/LoopVectorize/AArch64/partial-reduce-dot-product.ll
+86-86llvm/test/Transforms/LoopVectorize/X86/cost-model.ll
+74-74llvm/test/Transforms/LoopVectorize/X86/strided_load_cost.ll
+1,765-967114 files not shown
+2,943-2,145120 files

LLVM/project 12a5b7bllvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/X86 reassoc-flattened-copyable-operand.ll

[SLP]Fix unscheduled-deps assert for copyable operands in reassociated nodes

For a non-commutative user in a reassociated (flattened) node, the
copyable operand may be modeled on a flattened operand column rather
than at the instruction's operand number, so the direct lookup misses
it and the def-use dependency is counted but never released. Scan the
flattened operand columns at the user's lane for the copyable data.

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/215016
DeltaFile
+99-0llvm/test/Transforms/SLPVectorizer/X86/reassoc-flattened-copyable-operand.ll
+21-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+120-12 files

LLVM/project 6824484offload/include/OpenMP/OMPT Callback.h Connector.h, offload/libomptarget/OpenMP/OMPT Callback.cpp

[Offload][OMPT][NFCI] Call ompt_libomp_connect instead of dlopen libomp (#214556)

connectLibrary() reached libomp's ompt_libomp_connect through
OmptLibraryConnectorTy, which dlopens "libomp.so" and resolves the
symbol at run time. That cannot do anything the linker has not already
done: libomptarget links libomp and imports seven __kmpc_* symbols from
it, so libomp.so is a DT_NEEDED entry, and libomp defines and exports
ompt_libomp_connect unconditionally -- as a stub in kmp_utility.cpp when
built without OMPT support. Declare it, call it, and delete Connector.h.

AI-assisted.
DeltaFile
+0-112offload/include/OpenMP/OMPT/Connector.h
+7-10offload/libomptarget/OpenMP/OMPT/Callback.cpp
+2-6offload/include/OpenMP/OMPT/Callback.h
+2-2openmp/runtime/src/ompt-general.cpp
+11-1304 files

LLVM/project f921aeallvm/lib/Target/RISCV RISCVISelLowering.cpp

fixup! Reject non-integer comparison
DeltaFile
+2-1llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+2-11 files