[DomTree] Remove redundant getNodeForBlock. NFC (#215045)
Semi-NCA has given every node a dominator with a smaller DFS number,
whose node already exists.
[libc] Disable hermetic version of printf_core.parser_test (#215037)
It fails on amdgpu:
https://lab.llvm.org/buildbot/#/builders/10/builds/33548
ld.lld: error: undefined symbol: operator delete(void*, unsigned long,
std::align_val_t)
This effectively reverts a part of #213852.
[clang] Simplify the overload resolution logic for operator new and new[] (#211482)
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
LLM usage: Claude found align_val_t caching bug, and found and created a
test for reentrant `getTypeIdentityArgument`+`tryBuildStdTypeIdentity`
[flang] To fix LIT test that AIX does not emit comdat. (#214950)
PR #213890 added this new LIT test.
However, AIX uses XCOFF and does not emit COFF COMDAT.
[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.
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>
[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)
[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]
[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.