[LoopInterchange] Rename perserve-lcssa.ll and regenerate test checks (NFC) (#235476)
This patch fixes the followings:
- Fix typo in the filename (perserve -> preserve)
- Use UTC instead of hand written CHECKs
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
[analyzer][NFC] BugReporterVisitors.h should include MemRegion.h
BugReporterVisitors.h includes RangedConstraintManager.h but uses
nothing it declares: RangeSet, Range, ConstraintMap and
SimpleConstraintManager appear nowhere in the file. What the header
actually needs is MemRegion.h, which supplies SubRegion,
MemRegionManager and MemRegion completeness for an inline constructor;
today those arrive only by accident, transitively through
RangedConstraintManager.h -> ProgramState.h. Swapping the include for
the one that carries the used declarations makes the dependency honest
and adds a forward declaration of CallEvent in namespace clang::ento
for the one name that only needs to be incomplete.
One header needs a compensating include: Z3CrosscheckVisitor.h uses
ConstraintMap and was getting RangedConstraintManager.h through
BugReporterVisitors.h, so it now includes it directly. No translation
unit in clangStaticAnalyzerCore, clangStaticAnalyzerCheckers or
clangStaticAnalyzerFrontend required any other change.
[3 lines not shown]
[analyzer][NFC] Forward-declare Preprocessor in AnalysisManager.h
AnalysisManager.h includes clang/Lex/Preprocessor.h, and through that
one edge the whole Lex subtree -- roughly 34 headers, among them
Basic/Module.h, HeaderSearch.h and ModuleMap.h -- is parsed by 147 of
the 197 translation units in clangStaticAnalyzerCore,
clangStaticAnalyzerCheckers and clangStaticAnalyzerFrontend. The
mechanism is transitive inclusion: AnalysisManager.h sits under almost
every analyzer source, so almost every one of them pays for the
preprocessor without naming it.
Preprocessor is used here only as a reference member, a constructor
parameter and a reference-returning accessor; no member of it is ever
named, so a forward declaration in namespace clang suffices and the
generated code is identical. The include is replaced by
clang/Basic/SourceManager.h rather than simply dropped, because
isInCodeFile() calls SM.isInMainFile(), SM.getIncludeLoc(),
SM.getFileID() and SM.getFilename(), and SourceManager is otherwise
unreachable from this header once Preprocessor.h is gone. That swap is
[21 lines not shown]
[analyzer][NFC] Forward-declare Preprocessor in BugReporter.h (#235281)
BugReporter.h includes clang/Lex/Preprocessor.h, and that single edge
pulls the whole Lex subtree -- roughly 34 headers, among them
Basic/Module.h, HeaderSearch.h and ModuleMap.h -- into 161 of the 197
translation units that make up clangStaticAnalyzerCore,
clangStaticAnalyzerCheckers and clangStaticAnalyzerFrontend. The
mechanism is transitive inclusion, not any use of the preprocessor:
nearly every analyzer source reaches BugReporter.h, so nearly every one
of them parses Preprocessor.h and everything it brings with it.
The include is not needed. Preprocessor appears in this header only as a
reference return type in three declarations, and no member of it is ever
named, so a forward declaration in namespace clang suffices and the
generated code is identical. Eight .cpp files were relying on
SourceManager completeness arriving through Preprocessor.h and now
include clang/Basic/SourceManager.h directly; that is the only
compensating change, and no translation unit needed Preprocessor.h
added back.
[13 lines not shown]
[ELF] Resolve the CIE of each FDE when splitting .eh_frame. NFC (#235492)
EhFrameSection::addRecords and iterateFDEWithinLSDA look up each FDE's
CIE by input offset in a DenseMap/DenseSet. Simplify by recording the
CIE's index in the same section when splitting it.
Narrow inputOff to uint32_t and reject .eh_frame input sections larger
than 4GiB as for MergeInputSection.
[LLDB] Skip Undef Symbol when resolving ReExportedSymbol (#235387)
An undef symbol cannot be resolved. Skip it so that a symbol needs no
Resolve can pass. Without this, a symbol that needs no ReExport resolver
can choose the undef symbol incorrectly.
Assisted-by: Claude # Test
misc/claude-code: update 2.1.306 → 2.1.310
This update changes claude-code back to use NodeJS code
so that the Linux binary isn't involved any more.
It extracts the NodeJS code using the unhare extractor.
PR: 298047
textproc/py-enrich: update to 1.3.0
This release has been published to the upstream GitHub repo for more
than 2 years, but never yet got pushed to PyPI. Given the concerns
raised in PR 299923 which have been largely addressed in the GitHub
release, switch to USE_GITHUB rather than PyPI and update to 1.3.0.
* PEP 517 using setuptools as back-end
* Add pytest. All tests pass. Note that `pytest-cov` and
`pytest-xdist` test dependencies aren't actually used anywhere,
despite being listed in ${WRKSRC}/.config/requirements-test.in, so
I've omitted them from TEST_DEPENDS
* Drop the outdated setuptools_scm_git_archive build dependency in
favour of the native Git handling in more recent setuptools-scm.
* Update dependency version requirements for setuptools-scm and rich.
[3 lines not shown]
www/web2ldap: Fix with Python 3.13+
web2ldap imports four modules that Python 3.13 removed:
- cgi (parse_header and parse_multipart in web/forms.py) and imghdr
(JPEG/PNG syntax validation): depend on www/py-legacy-cgi and
devel/py-standard-imghdr with Python 3.13+.
- crypt (the 'crypt' userPassword scheme): make the import optional; the
scheme is not offered when crypt is missing, the hashlib schemes are
unaffected.
- sndhdr (Audio syntax validation): make the import optional and check
the .au magic number directly, which is the test sndhdr.test_au()
starts with.
files/patch-setup.py held a git diff that creates files/patch-setup.py
rather than the patch itself, so setup.py was never patched. Replace
it with the intended patch (python_requires '>=3.6.*' is not a valid
specifier; use '>=3.6') and document it.
[6 lines not shown]
[RISCV][P-ext] Test cleanup and improvements. NFC (#235322)
-Use script to generate pnclip tests in rvp-intrinsics.c
-Add missing pnclip tests to riscv_packed_simd.c
-Add missing tests to rvp-intrinsics.c
src: gettext() first, then sprintf() (#11081)
Firewall: Settings: Advanced passed the value to gettext() as a second
argument. PHP 8 rejects that with a fatal ArgumentCountError, so an
unknown syncookie or debug type ended the page instead of showing the
input error.
System: Settings: Administration formatted the certificate name into
the string before the lookup, so the message never reached the
translation template.
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>
py-blessed: updated to 1.52.0
1.52 (unreleased, on "master" branch only)
* bugfix: :meth:`~Terminal.wrap` discarded lines containing only spaces or tabs when
``drop_whitespace=False``, they are now wrapped and retained,
1.51
* introduced: :meth:`~Terminal.clip` to extract a "window" of displayed columns from a string, a
more precise version of :meth:`~Terminal.truncate`, retaining terminal sequences,
* improved: :meth:`~Terminal.length`, :meth:`~Terminal.ljust`, :meth:`~Terminal.rjust`,
:meth:`~Terminal.center`, :meth:`~Terminal.truncate`, and :meth:`~Terminal.wrap` with
terminal-specific Corrections_ by detecting the terminal software name at
class-initialization, :ghissue:`420`.
* change: East Asian ambiguous width is not measured at class-initialization. Call
:meth:`~Terminal.detect_ambiguous_width` to measure it, which assigns and caches
:attr:`~Terminal.ambiguous_width`, or set ``AMBIGUOUS_WIDE`` to ``1`` or ``2`` to supply the
value without measurement,
* introduced: :meth:`~Terminal.detect_term_program` to detect the terminal software name, or to
detect it again after initialization, as needed by a terminal attached later, such as a remote
[6 lines not shown]
py-bidi: updated to 0.6.12
0.6.12
* Added standard and free-threaded Python 3.15 wheel support.
* Bumped PyO3 to 0.30.0.
* Addressed security vulnerabilities in development dependencies; Python 3.9 support was dropped because the patched dependencies require Python 3.10+.
TableGen: Narrow instregex matching to leading literal alternatives
instregex ran the regex on every instruction if a pattern had no literal
prefix, even when it started with literal alternatives like ^(S|U)CVTF
or [SU]ABD. Search for each prefix those allow, here SCVTF and UCVTF,
and keep the original instruction order. Add a test for which patterns
get prefixes.
AArch64GenSubtargetInfo.inc tablegen run:
Gigainstructions Gigacycles CPU seconds
Before 43.1 17.8 5.4
After 29.0 (-32.6%) 12.0 (-32.5%) 3.7 (-31.4%)
All 366 tablegen runs in an LLVM build with all targets, together with
the previous change to keep the prefix for patterns with a top-level ?:
Gigainstructions Gigacycles CPU seconds
Before 2189 1380 489
[3 lines not shown]
TableGen: Keep the instregex prefix for patterns with a top-level ?
instregex discarded a pattern's literal prefix, and ran the regex on
every instruction, if the pattern had a ? outside parentheses, as in
LDPS?Wi. A ? only makes the atom before it optional, and an atom
directly before it is already dropped from the prefix. Only a top-level
| makes the prefix unusable.
AArch64GenSubtargetInfo.inc tablegen run:
Gigainstructions Gigacycles CPU seconds
Before 44.6 18.8 5.7
After 43.1 (-3.4%) 17.8 (-4.9%) 5.4 (-4.6%)
Co-authored-by: Claude Opus 5.5 <noreply at anthropic.com>