[CIR] Use `-verify` on clang/test/CIR/CodeGen/nonzeroinit-struct.cpp (#183910)
Update clang/test/CIR/CodeGen/nonzeroinit-struct.cpp to use `-verify`
with expected CIR NYI diagnostics.
[OpenMP] Use CreatePtrDiff() (#184127)
This will use ptrtoaddr instead of ptrtoint in the pointer difference
calculation, avoiding unnecessary provenance exposure.
Add an IsNUW flag to allow specifying nuw on the subtraction.
[clang][test] Add missing FileCheck pipe in n1311.c (#183965)
The test had CHECK directives that were never executed because the RUN
line did not pipe the output to FileCheck.
[ARM] Format ARMLoadStoreOptimizer Pass classes. NFC
These will need modifications to support the NPM, pre-format the classes to
reduce the needed differences.
[libc] Fix GPU loader propagation to lit test infrastructure (#184105)
The lit-based test execution added in c776a52fa263 did not propagate the
GPU loader executable to the lit site configuration. When building for
GPU targets, the loader (amdhsa-loader, nvptx-loader, or a
user-specified LIBC_GPU_LOADER_EXECUTABLE) was resolved into the
libc.utils.gpu.loader target but never passed through to the generated
lit.site.cfg.py.
Fix this by resolving the executable path from the libc.utils.gpu.loader
target property and including it in configure_lit_site_cfg's PATHS list.
In lit.site.cfg.py.in, if no explicit LIBC_TEST_CMD is set but a GPU
loader is present, construct libc_test_cmd from the loader path,
mirroring the logic in add_libc_hermetic() in LLVMLibCTestRules.cmake.
Tested:
* GPU build with LIBC_GPU_LOADER_EXECUTABLE set to /bin/echo used to
fail (tried to run the binary), now it works.
* Native compiler check-libc-lit continues to work after this change.
[mlir][tosa] Fix crash in TosaInferShapes when while_loop carries sparse tensors (#183943)
TypeModificationState::commit() inserted a tensor.cast immediately after
the defining operation of the value whose type changed. For block
arguments (e.g., loop-carried variables in tosa.while_loop), there is no
defining operation, so getDefiningOp() returns nullptr, causing a
segmentation fault when the insertion point was set via
setInsertionPointAfter(nullptr).
Fix by checking whether the value is defined by an operation; if not
(i.e., it is a block argument), insert the cast at the start of the
block that owns the argument.
Fixes #181449
[mlir][tosa] Disallow inferable dim in reshape/slice validation (#182472)
This commit ensures that the validation pass checks for the presence of
inferable dimensions (represented by -1) in reshape and slice
operations. These are not compliant with the TOSA specification. If such
dimensions are found, an error message is emitted indicating that they
do not conform to the TOSA specification.
InstCombine: Support basic phis in SimplifyDemandedFPClass
Some complex function edge case epilogs are only handled under
some control flow paths (e.g. lgamma and erfcinv).
[clang][test] Add multi-dim-array diagnostic test for multi-dimensional array function passing (#183847)
Add test coverage for incompatible pointer type diagnostics when passing
multidimensional arrays to functions expecting flat pointers. Tests
covers 2D, 3D, 4D arrays, zero-sized dimensions, struct arrays, and type
mismatches.
Co-authored-by: Vladislav Aranov <vladislav.aranov at ericsson.com>
geography/proj: Update to 9.8.0
Require c++17 (belatedly; was in 9.6.0 NEWS).
Drop cmake patch to avoid gcc warning flag, fixed better upstream
which tests for the flag and conditionally includes it.
Upstream NEWS for 9.8.0:
* Database: update to EPSG v12.049 (#4671)
* Database: update ESRI records to ArcGIS Pro 3.6 (#4622)
* Support for Canadian vertical references MTM CGVD2013 epoch 1997, 2002, 2010 and
UTM CGVD28 epoch 1997, 2002, 2010 (#4623)
* `createOperationsCompoundToGeog()`: improvement to make "PNG94 / PNGMG94 zone 54 + Kumul
34 height" to "WGS 84 (G2139)" perform vertical transformation (#4624)
[30 lines not shown]
[IR] Return bool from replaceUsesWithIf() (#184107)
We regularly want to know whether replaceUsesWithIf() actually replaced
any uses for the purpose of change tracking. It's possible to do this by
maintaining a Changed flag inside the callback, but it's cleaner if the
method directly returns whether it modified anything.
[CMake] Add LLVM_ENABLE_WARNING_SUPPRESSIONS to toggle warning suppressions (#183439)
This PR introduces a new opt-in CMake option
`LLVM_ENABLE_WARNING_SUPPRESSIONS` (default `ON`) to toggle warning
suppressions
Previously, several compiler warnings were explicitly disabled using
`-wd` (for MSVC) or `-Wno-...` (for GCC/Clang) flags by default.
However, this causes validation failures with strict compliance scanners
like BinSkim, which require builds to run without any warning
suppressions to meet SDL compliance standards.
This change introduces an opt-in `LLVM_ENABLE_WARNING_SUPPRESSIONS`
option (default ON). When explicitly disabled (OFF), it selectively
filters out the `-wd` flags for MSVC and removes all `-Wno-...` flags
for GCC/Clang in HandleLLVMOptions.cmake. This ensures all compiler
warnings are exposed as intended for static analysis tools while
preserving the default noise-free build experience for regular users.
[3 lines not shown]