[CodeGen] Avoid register pressure limit underflow (#216372)
RegisterClassInfo::computePSetLimit() subtracts an estimated
reserved-register weight from the target-provided pressure-set limit. If
the weight exceeds the limit, the unsigned subtraction wraps to a very
large value, effectively disabling register-pressure checks. An equal
weight produces zero, which is the uncomputed-limit sentinel.
MachineSink and MachineLICM exposed this underflow after switching to
RegisterClassInfo limits.
Preserve the target-provided nonzero limit when the approximate
adjustment would exhaust it. Non-underflowing adjustments remain
unchanged. Add an AMDGPU regression test and update the affected checks.
[libc] Add support for wchar_t in StringConverter. (#211867)
This takes care of a TODO in LibcTest.cpp from #203355, allowing
`wstring_view` to be printed as UTF-8 in tests. It also enables updates
to __support/printf_core/ for implementing `swprintf`.
The change to `StringConverter` is enabled by extending the
`CharacterConverter` API when `wchar_t` is detected as being UTF-32.
The `StringConverter` unit test is updated so it no longer compiles to a
no-op on Windows.
Note: this change does not respect `-fwide-exec-charset`, which Clang still
does not support but GCC does. This is the existing libc behavior.
NAS-142099 / 27.0.0-BETA.1 / Remove unreferenced private methods from disk plugins (#19486)
Removes four `@private` methods in the `disk` namespace that have no
callers left in middleware, the test suites, or webui.
`disk.identifier_to_device` lost its last caller in June 2022 when
`disk.sync_all` was optimized
([NAS-116484](https://ixsystems.atlassian.net/browse/NAS-116484)); an
equivalent lookup lives in `disk_/sync.py` and is the one actually used.
The other three are older leftovers: `disk.get_partition_uuid_from_name`
maps FreeBSD partition-type names to GUIDs, `disk.get_efi_part_type`
returns a constant nothing reads, and
`disk.update_partition_table_quick` still documents itself as "Used by
'wipe'" although `wipe.py` no longer calls it.
Also drops the `label` identifier type from the
`disk.device_to_identifier` docstring.
[ASan] Correctly handle vectorized pointer sub/cmp for `invalid-pointer-pair` (#213546)
Before this PR, asan will treat vector operands just like pointer and
pass it to `__sanitizer_ptr_sub/__sanitizer_ptr_cmp(i64, i64)`,
which leads to assertion failure because it doesn't matches the needed
parameter type.
This PR extracts vector's elements and creates runtime call for each
pair of them.
Closes #212453 .
ui: sidebar fixes and rework
Fixes
* Upon loading, (window).height() and (window).width() are immediately checked – the same condition as in the resize handler (navHeight / 760px).
* If the viewport is too small → the sidebar is hidden, mouse events are disabled, and the toggle button is hidden.
* If the viewport is large enough → normal behavior as usual (including the localStorage preset).
* Viewport on Safari/iPad (correctly considers tab and address bars)
* iOS window.innerHeight instead of $(window).height()
* Add selectable horizontal dropdown menu themes >> #9891
Readability & Structure
* var consistently replaced with const/let
* Helpful functions like isSidebarLeft() and isSidebarHidden() extracted to avoid duplicate hasClass calls transition_duration → setTransitionDuration, mouse_events_off → offMouseEvents (clearer names)
Performance
* jQuery selectors are cached only once (e.g., toggle_btn, allLayers, aLayers, divLayers)
[8 lines not shown]
devel/py-simpleparse: Fix build with Python 3.12+
cc -fno-strict-overflow -Wsign-compare -Wunreachable-code -DNDEBUG -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -fPIC -DMX_BUILDING_MXTEXTTOOLS=1 -DPY_SSIZE_T_CLEAN=1 -DDEBUG=1 -Isimpleparse/stt/TextTools/mxTextTools -I/usr/local/include/python3.12 -c simpleparse/stt/TextTools/mxTextTools/mxTextTools.c -o build/temp.freebsd-15.0-RELEASE-p11-amd64-cpython-312/simpleparse/stt/TextTools/mxTextTools/mxTextTools.o
simpleparse/stt/TextTools/mxTextTools/mxTextTools.c:244:13: warning: call to undeclared function 'PyUnicode_GET_SIZE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
244 | return PyUnicode_GET_SIZE(so->match);
| ^
simpleparse/stt/TextTools/mxTextTools/mxTextTools.c:389:15: warning: 'PyObject_AsCharBuffer' is deprecated [-Wdeprecated-declarations]
389 | else if (PyObject_AsCharBuffer(so->match, &match, &match_len))
| ^
/usr/local/include/python3.12/abstract.h:351:1: note: 'PyObject_AsCharBuffer' has been explicitly marked deprecated here
351 | Py_DEPRECATED(3.0)
| ^
/usr/local/include/python3.12/pyport.h:317:54: note: expanded from macro 'Py_DEPRECATED'
317 | #define Py_DEPRECATED(VERSION_UNUSED) __attribute__((__deprecated__))
| ^
simpleparse/stt/TextTools/mxTextTools/mxTextTools.c:448:11: warning: call to undeclared function 'PyUnicode_AS_UNICODE'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
448 | match = PyUnicode_AS_UNICODE(so->match);
| ^
simpleparse/stt/TextTools/mxTextTools/mxTextTools.c:448:9: error: incompatible integer to pointer conversion assigning to 'Py_UNICODE *' (aka 'int *') from 'int' [-Wint-conversion]
[166 lines not shown]
[VPlan] Split handleEarlyExits into countable and uncountable passes. NFC (#206017)
This allows us to remove UncountableExitStyle::NoUncountableExit, and
isolate it to just the uncountable exit path. This should make it easier
to choose a style from within VPlan alone later on.
This also allows us to plug UncountableExitStyle into a TTI hook or CLI
flag eventually, as I don't think we want to expose NoUncountableExit.
[gn] Make GlobalISel depend on SelectionDAG (#217335)
This dependency has been present in the CMake build for many years.
Suddenly, a bunch of binaries (e.g. llvm-extract) stopped linking
without it, so add it to the GN build too.