[libc++][NFC] Use std::quoted in fs::path and remove the private __quoted (#181043)
We've provided `std::filesystem` before C++17 in the past, but we don't
anymore, so we can use `std::quoted`.
[clang][Builtins][ARM] NFC updates in ARM.cpp (#180966)
Updates the logic in `CodeGenFunction::EmitAArch64BuiltinExpr` so that
we always start with the general code and we only fall-back to
specialised cases (i.e. `switch` stmts) for intrinsics for which the
general code does no apply.
BEFORE (only high-level:
```cpp
Value *CodeGenFunction::EmitAArch64BuiltinExpr() {
(...)
/// 1. SWITCH STMT FOR NON-OVERLOADED INTRINSIS
switch (BuiltinID) {
default break:
case NEON::BI__builtin_neon_vabsh_f16:
(...)
}
/// 2. GENERAL CODE
[58 lines not shown]
[DAGCombiner] Fix subvector extraction index for big-endian STLF (#180795)
This PR fixes a big-endian regression in `ForwardStoreValueToDirectLoad`
where the wrong subvector was being extracted. In big-endian, memory
offset 0 corresponds to the high bits, so the extraction index needs to
be adjusted.
As suggested by @KennethHilmersson, calculate the extraction index as
the difference between the number of elements in the intermediate vector
and the load vector when in big-endian mode.
Special thanks to Kenneth Hilmersson for providing the fix logic and the
ARM regression test.
https://github.com/llvm/llvm-project/pull/172523#issuecomment-3878065191https://github.com/llvm/llvm-project/pull/172523#issuecomment-3879575092
[ValueTracking] Extend computeConstantRange for add/sub, sext/zext/trunc
Recursively compute operand ranges for add/sub and propagate ranges
through sext/zext/trunc.
For add/sub, the computed range is intersected with any existing range
from setLimitsForBinOp, and NSW/NUW flags are used via addWithNoWrap/
subWithNoWrap to tighten bounds.
The motivation is to enable further folding of reduce.add expressions
in comparisons, where the result range can be bounded by the input
element ranges.
Compile-time impact on llvm-test-suite is <0.1% mean.
[ValueTracking] Extend computeConstantRange for add/sub and sext/zext/trunc
Recursively compute operand ranges for add/sub and propagate ranges
through sext/zext/trunc.
For add/sub, the computed range is intersected with any existing range
from setLimitsForBinOp, and NSW/NUW flags are used via addWithNoWrap/
subWithNoWrap to tighten bounds.
The motivation is to enable further folding of reduce.add expressions
in comparisons, where the result range can be bounded by the input
element ranges.
Compile-time impact on llvm-test-suite is <0.1% mean.
[mlir][Math] Fix IPowIOp folding crash for i1 (#179684)
Fixes #179380: an assertion/crash in math.ipowi constant folding when the result type is i1.
`IPowIOp::fold` constructed `APInt(width=1, val=1, isSigned=true)`. Signed i1 cannot represent +1 (range [-1, 0]), so APInt asserts (isIntN).
This commit deactivates folding for `i1`.
---------
Co-authored-by: Jakub Kuderski <kubakuderski at gmail.com>
[clang-repl] Fix disambiguation of out-of-line member with private types (#178842)
This patch fixes a bug in clang-repl where out-of-line member function
definitions were incorrectly identified as statements when they involved
private type aliases.
The issue occurred because `isCXXDeclarationStatement` would trigger
immediate access checks during tentative parsing. Since the context of
an out-of-line definition isn't fully established during this phase,
Sema would incorrectly flag private members as inaccessible, causing
the parser to fail the declaration check and fall back to statement
parsing.
Changes:
- In `isCXXDeclarationStatement`, use `TentativeParsingAction` to
ensure the token stream is fully restored.
- Use `SuppressAccessChecks` during the tentative disambiguation phase
to prevent premature access errors.
- Ensure that formal access verification still occurs during the
[5 lines not shown]
[CIR][NFC] Consolidate AArch64 tests (#180919)
As initiated in #180597 (*), ensure that CIR tests reuse the default
Clang lowering tests. To this end, consolidate the AArch64 tests for
unconstrained -fullfp16 builtins into:
* clang/test/CodeGen/AArch64/neon/fullfp16.c
(*) See also https://github.com/llvm/llvm-project/issues/179952 for
more context.
[cross-project-tests] Fix lldb version regex (#180204)
The get_lldb_version_string function in the lit config used a greedy
regex that could, if using a lldb binary built with git revision output,
using a SHA that starts with a digit, result in the first digits of the
SHA being interpreted as the lldb version.
For example, if lldb emits:
$ lldb --version
lldb version 23.0.0git \
(https://github.com/dstenb/llvm-project.git revision \
7e565729e33d19d468520e7bfbb8b23a918adc9c)
the version would be interpreted as 7 rather than 23.0.0:
Marking some LLDB LLVM data-formatter tests as unsupported: using
version 7 whereas a version >= 1900 is required
[5 lines not shown]
databases/mongodb80: harden the port to external CONFIGURE_ARGS
CONFIGURE_ARGS is directly connected to CONFIGURE_SCRIPT and the script
only accepts 2 parameters. Exit 1 on incorrect number of parameters.
And don't allow to += on CONFIGURE_ARGS.
Not bumping PORTREVISION, no content change intended.
NB: This is the same change as 380338c53b75ef594b1faccc59bc111546809f31
for mongodb70.
PR: 291951
libclc: Stop building amdgpu targets all as tahiti
It is wrong to compile as tahiti, and then treat everything
else as an alias. The IR is tainted with "target-cpu"="tahiti".
Optimizations on the libclc build can break the program, even if
the target-cpu is ultimately overridden by -mlink-builtin-bitcode.
The main risk of doing this is if mesa is still relying on finding
the subtarget suffixed bc file. As far as I can tell clover has been
removed, and rusticl only uses the spirv versions.