[DebugInfo] Keep validating after register and entry-value ops (#214057)
isValid returned as soon as it saw a compact DW_OP_regN or DW_OP_bregN
operation, or a valid DW_OP_LLVM_entry_value. Operations after that
point skipped the remaining checks.
Let's keep walking the expression. DW_OP_regx and DW_OP_bregx already
leave the switch and continue validating the expression, so this makes
the compact forms validate their suffixes too. Entry-value suffixes are
also intentional here.
This adds no register-specific suffix rule. DWARF 5 requires a register
location to stand alone as an entire object or piece, while accepted
DWARF issue 230524.1 permits a register location followed by a
dereference in DWARF 6. Since isValid() does not know the emitted DWARF
version, we keep it limited to applying its existing checks to the
suffix.
Test each early-return path with a different invalid suffix: a stack
[8 lines not shown]
[SPIR-V] Implement SPV_KHR_untyped_pointers extension (#201233)
Add support for SPV_KHR_untyped_pointers, which replaces typed
OpTypePointer with OpTypeUntypedPointerKHR for ordinary data pointers.
An untyped pointer no longer carries its pointee, so the element type
that used to live in the pointer type is now supplied per instruction:
the Data Type of OpUntypedVariableKHR, the Base Type of the
OpUntyped*AccessChainKHR family, the element size for async copy and
prefetch, and so on. These are taken from the element types the backend
already deduces for the typed path.
Pointers whose pointee has to keep its type stay typed even with the
extension enabled: opaque builtin types (images, samplers, pipes,
events), function pointers, and byval/byref/sret aggregate arguments.
The implementation targets the compute path for now.
The Shader/Vulkan path is not covered. This includes
OpUntypedArrayLengthKHR.
Assisted-by: Claude Code Opus 4.8
[libc++] Disable -Werror when running historical benchmarks (#214761)
Older versions of the library trigger warnigns that were introduced in
newer versions of Clang. That's expected, and building with -Werror
simply causes the test suite to fail when it would run fine, with
warnings.
crush: Update to 0.88.1
Changelog
New!
* bdad0f1: feat(mcp): don't hold callback port open permanently (#3481) (@taciturnaxolotl)
Fixed
* cfad814: fix(dialog): add clear alias to summarize (#3464) (@joestump)
* 1134a5d: fix(dialog): raise permission-guard quiet period to survive natural typing pauses (#3393) (@albatrossflyon-coder)
* 768ffad: fix(hyper): keep working cache when provider cache can't be written (@meowgorithm)
* 9efc08c: fix(hyper): render error messages from back-end (#3513) (@andreynering)
* 42f3ce0: fix(lsp): handle window/workDoneProgress/create to prevent server crash (#3445) (@piakdev)
* 604a7e3: fix(providers): swap the provider cache instead of rewriting it (@meowgorithm)
* 85d83ce: fix(server): keep concurrent sessions from killing each other (@meowgorithm)
* ebd1857: fix(server): mcp auth in client-server mode (@meowgorithm)
* 71fa577: fix(server): release test DB before Windows temp-dir cleanup (@meowgorithm)
* 390ee36: fix(server): replace stale servers that predate shutdown_if_idle (@meowgorithm)
* 7cdef9e: fix(server): typing lag over TCP in client/server mode (@meowgorithm)
[19 lines not shown]
Reapply "[lldb] Remove ConstString from FileSpec" (#211927) (#214599)
This reverts commit 3af6879ba3d68d485e5e4e753223e4ed7a283df5.
I've re-run the tests on with ASAN and UBSAN to detect any potential
issues. On my M5 machine it does not introduce any new regressions in
the test suite.
[CAS] Add a plugin C API for providing ObjectStore/ActionCache implementations (#213331)
Add a C API that lets an external library provide a CAS implementation,
along
with an LLVM-side adapter that exposes such a plugin as an
ObjectStore/ActionCache pair.
The pieces are:
- llvm-c/CAS/PluginAPI_types.h and llvm-c/CAS/PluginAPI_functions.h: the
C API
that a plugin implements. Versioned via LLCAS_VERSION_{MAJOR,MINOR};
both the
client and the plugin exchange their versions so implementations can
stay
compatible across changes.
- lib/CAS/PluginAPI.h and lib/CAS/PluginAPI_functions.def: the table of
function pointers resolved from the loaded library. The .def file
[36 lines not shown]
[llvm][object][GOFF] refine Global flag conditions (#211632)
Currently when iterating across the symbol table with the object library (in tools like nm/ar), some symbols that we wouldn't expect to be Global to the binder get flagged as SF_Global. With GOFF, we should exclude ESD entries who's type or binding scope make them unavailable for binder to use at Global scope.
The implementation currently only filters the Section binding scopes when setting the Global flag, so this change adds filters for SD/ED type records and Module scope as well (which restricts the def to only the current module).
We also add a test that checks ESD records for various types and binding strengths to see that we get the expected values.
[GlobalISel] Fold bitcasts of constants in CSEMIRBuilder (#214588)
After moving to extended LLT, we've started seeing a pattern of
`G_BITCAST(G_CONSTANT ...)` and `G_BITCAST(G_FCONSTANT ...)` being
emitted due to float types now being distinct from integer types. This
prevented certain optimization from detecting constants and led to worse
results.
This patch folds this pattern in CSEMIRBuilder.
x11/rendercheck: Update to 1.6
In this version, the autotools build system has been removed.
Update WWW and pkg-descr.
Add LICENSE.
https://lists.x.org/archives/xorg-announce/2024-April/003511.html
PR: 287979
Approved by: x11 (arrowd)
Approved by: fluffy (mentor)