Skip to content

Stop emitting aliasscope regions in @kernel - #785

Merged
vchuravy merged 1 commit into
mainfrom
vc/remove-aliasscope
Sep 15, 2026
Merged

vchuravy merged 1 commit into
mainfrom
vc/remove-aliasscope

Conversation

@vchuravy

Copy link
Copy Markdown
Member

transform_gpu! wrapped every kernel body in Expr(:aliasscope) / Expr(:popaliasscope). Those tokens only do something when a load inside the region is tied to them — i.e. Base's Const(::Array) lowering, which emits !alias.scope/!noalias against the enclosing scope. That consumer was the native-Julia CPU backend, replaced by POCL in #556.

No current backend takes that path:

  • POCL / CPU(): @Const goes through const_arrayref on CLDeviceArray, emitting !invariant.load.
  • CUDA / AMDGPU / oneAPI / Metal: their own device-array Const wrappers over ldg / !invariant.load.

So the region was inert, while still forcing the body into a scope that blocks some code motion and showing up in the lowered IR. docs/src/design.md was already updated to say !invariant.load on POCL when the CPU backend was swapped out; the macro just wasn't.

This also drops Adapt.adapt_storage(::ConstAdaptor, a::Array). constify runs inside the kernel, after arguments have been adapted to device arrays, so it was already unreachable — and without an enclosing aliasscope region the resulting Const wrapper lowered to ordinary loads anyway. ConstAdaptor itself stays; it's the dispatch tag backends register against.

Testing

Full suite on the POCL backend: 2481 passed, 0 failed, 2 errored. The 2 errors are ifelse on aggregate types (ComplexF32/ComplexF64, #760) failing to translate to SPIR-V; they reproduce identically on unmodified main, and the pass/error counts are unchanged from baseline.

🤖 Generated with Claude Code

`transform_gpu!` wrapped every kernel body in `Expr(:aliasscope)` /
`Expr(:popaliasscope)`. Those tokens only do something when a load inside
the region is tied to them, i.e. Base's `Const(::Array)` lowering, which
emits `!alias.scope`/`!noalias` against the enclosing scope. That was the
native-Julia CPU backend, replaced by POCL in #556.

No current backend takes that path: POCL's `@Const` goes through
`const_arrayref` on `CLDeviceArray` (`!invariant.load`), and the external
GPU backends use their own device-array `Const` wrappers over
`ldg`/`!invariant.load`. The region was therefore inert, while still
forcing the body into a scope that blocks some code motion and showing up
in the lowered IR.

Drop the `ConstAdaptor`/`Array` rule along with it. `constify` runs inside
the kernel, after arguments have been adapted to device arrays, so it was
already unreachable -- and without an enclosing aliasscope region the
resulting `Const` wrapper lowered to ordinary loads anyway.

Assisted-by: Claude Code (Opus 5)
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark Results

Show table
main 3770c71... main / 3770c71...
const/@Const/Float32/262144 0.363 ± 0.022 ms 0.365 ± 0.02 ms 0.995 ± 0.08
const/@Const/Float32/65536 0.137 ± 0.021 ms 0.137 ± 0.021 ms 0.998 ± 0.21
const/@Const/Float64/262144 0.448 ± 0.026 ms 0.452 ± 0.029 ms 0.992 ± 0.085
const/@Const/Float64/65536 0.158 ± 0.013 ms 0.156 ± 0.013 ms 1.01 ± 0.12
const/unmarked/Float32/262144 1.27 ± 0.026 ms 1.27 ± 0.024 ms 1 ± 0.028
const/unmarked/Float32/65536 0.359 ± 0.033 ms 0.353 ± 0.032 ms 1.02 ± 0.13
const/unmarked/Float64/262144 1.45 ± 0.041 ms 1.45 ± 0.04 ms 1 ± 0.039
const/unmarked/Float64/65536 0.417 ± 0.021 ms 0.418 ± 0.021 ms 0.998 ± 0.071
launch/3D static workgroup, dynamic ndrange 0.0494 ± 0.031 ms 0.0491 ± 0.032 ms 1.01 ± 0.91
launch/3D static workgroup, static ndrange 0.0483 ± 0.031 ms 0.0486 ± 0.033 ms 0.994 ± 0.93
launch/dynamic workgroup, dynamic ndrange 0.0501 ± 0.031 ms 0.0494 ± 0.032 ms 1.01 ± 0.91
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 0.0443 ± 0.03 ms 0.0463 ± 0.032 ms 0.956 ± 0.93
launch/static workgroup, dynamic ndrange 0.0473 ± 0.029 ms 0.0463 ± 0.031 ms 1.02 ± 0.94
launch/static workgroup, static ndrange 0.0425 ± 0.03 ms 0.0479 ± 0.031 ms 0.887 ± 0.84
partition/dynamic workgroup, dynamic ndrange 0.0743 ± 0.01 μs 0.0647 ± 0.011 μs 1.15 ± 0.26
partition/static workgroup, dynamic ndrange 0.0703 ± 0.014 μs 0.0714 ± 0.014 μs 0.985 ± 0.27
partition/static workgroup, static ndrange 1.74 ± 0.001 ns 1.74 ± 0.001 ns 1 ± 0.00081
saxpy/default/Float16/1024 0.0526 ± 0.031 ms 0.0562 ± 0.03 ms 0.936 ± 0.74
saxpy/default/Float16/1048576 0.864 ± 0.031 ms 0.866 ± 0.032 ms 0.997 ± 0.052
saxpy/default/Float16/16384 0.068 ± 0.03 ms 0.0735 ± 0.031 ms 0.925 ± 0.56
saxpy/default/Float16/2048 0.0557 ± 0.032 ms 0.0562 ± 0.033 ms 0.991 ± 0.81
saxpy/default/Float16/256 0.0497 ± 0.033 ms 0.0554 ± 0.033 ms 0.898 ± 0.81
saxpy/default/Float16/262144 0.256 ± 0.031 ms 0.259 ± 0.031 ms 0.987 ± 0.17
saxpy/default/Float16/32768 0.0655 ± 0.029 ms 0.0654 ± 0.03 ms 1 ± 0.64
saxpy/default/Float16/4096 0.057 ± 0.025 ms 0.056 ± 0.025 ms 1.02 ± 0.63
saxpy/default/Float16/512 0.0487 ± 0.034 ms 0.0598 ± 0.03 ms 0.815 ± 0.7
saxpy/default/Float16/64 0.0493 ± 0.033 ms 0.0548 ± 0.033 ms 0.899 ± 0.82
saxpy/default/Float16/65536 0.0929 ± 0.03 ms 0.0938 ± 0.031 ms 0.991 ± 0.46
saxpy/default/Float32/1024 0.0514 ± 0.033 ms 0.0556 ± 0.034 ms 0.924 ± 0.83
saxpy/default/Float32/1048576 0.498 ± 0.029 ms 0.499 ± 0.028 ms 0.998 ± 0.081
saxpy/default/Float32/16384 0.0473 ± 0.029 ms 0.0473 ± 0.03 ms 1 ± 0.88
saxpy/default/Float32/2048 0.0527 ± 0.027 ms 0.0532 ± 0.028 ms 0.991 ± 0.73
saxpy/default/Float32/256 0.0544 ± 0.033 ms 0.0541 ± 0.034 ms 1.01 ± 0.87
saxpy/default/Float32/262144 0.17 ± 0.025 ms 0.171 ± 0.024 ms 0.994 ± 0.2
saxpy/default/Float32/32768 0.0536 ± 0.029 ms 0.0554 ± 0.031 ms 0.967 ± 0.75
saxpy/default/Float32/4096 0.0559 ± 0.029 ms 0.0564 ± 0.029 ms 0.991 ± 0.72
saxpy/default/Float32/512 0.0526 ± 0.033 ms 0.0574 ± 0.03 ms 0.916 ± 0.76
saxpy/default/Float32/64 0.0528 ± 0.033 ms 0.0534 ± 0.033 ms 0.987 ± 0.86
saxpy/default/Float32/65536 0.071 ± 0.029 ms 0.0735 ± 0.03 ms 0.967 ± 0.56
saxpy/default/Float64/1024 0.0433 ± 0.033 ms 0.0514 ± 0.033 ms 0.842 ± 0.84
saxpy/default/Float64/1048576 0.561 ± 0.092 ms 0.551 ± 0.11 ms 1.02 ± 0.26
saxpy/default/Float64/16384 0.0491 ± 0.03 ms 0.0589 ± 0.03 ms 0.833 ± 0.66
saxpy/default/Float64/2048 0.0544 ± 0.028 ms 0.0553 ± 0.027 ms 0.984 ± 0.7
saxpy/default/Float64/256 0.0474 ± 0.034 ms 0.0512 ± 0.033 ms 0.925 ± 0.89
saxpy/default/Float64/262144 0.171 ± 0.018 ms 0.171 ± 0.018 ms 0.999 ± 0.15
saxpy/default/Float64/32768 0.0583 ± 0.03 ms 0.06 ± 0.03 ms 0.972 ± 0.69
saxpy/default/Float64/4096 0.0554 ± 0.028 ms 0.056 ± 0.029 ms 0.989 ± 0.72
saxpy/default/Float64/512 0.0485 ± 0.034 ms 0.0506 ± 0.034 ms 0.958 ± 0.92
saxpy/default/Float64/64 0.0505 ± 0.033 ms 0.0513 ± 0.032 ms 0.985 ± 0.9
saxpy/default/Float64/65536 0.0799 ± 0.027 ms 0.0814 ± 0.027 ms 0.981 ± 0.47
saxpy/static workgroup=(1024,)/Float16/1024 0.0502 ± 0.03 ms 0.0546 ± 0.029 ms 0.919 ± 0.73
saxpy/static workgroup=(1024,)/Float16/1048576 0.859 ± 0.031 ms 0.862 ± 0.031 ms 0.996 ± 0.051
saxpy/static workgroup=(1024,)/Float16/16384 0.069 ± 0.03 ms 0.0711 ± 0.03 ms 0.971 ± 0.59
saxpy/static workgroup=(1024,)/Float16/2048 0.0529 ± 0.031 ms 0.0547 ± 0.032 ms 0.967 ± 0.81
saxpy/static workgroup=(1024,)/Float16/256 0.0493 ± 0.032 ms 0.0543 ± 0.031 ms 0.908 ± 0.78
saxpy/static workgroup=(1024,)/Float16/262144 0.253 ± 0.03 ms 0.255 ± 0.031 ms 0.99 ± 0.17
saxpy/static workgroup=(1024,)/Float16/32768 0.0633 ± 0.028 ms 0.064 ± 0.029 ms 0.989 ± 0.63
saxpy/static workgroup=(1024,)/Float16/4096 0.0541 ± 0.024 ms 0.0545 ± 0.024 ms 0.992 ± 0.63
saxpy/static workgroup=(1024,)/Float16/512 0.0485 ± 0.033 ms 0.0511 ± 0.032 ms 0.949 ± 0.88
saxpy/static workgroup=(1024,)/Float16/64 0.0485 ± 0.033 ms 0.0493 ± 0.033 ms 0.984 ± 0.94
saxpy/static workgroup=(1024,)/Float16/65536 0.0904 ± 0.029 ms 0.0952 ± 0.03 ms 0.95 ± 0.43
saxpy/static workgroup=(1024,)/Float32/1024 0.0541 ± 0.03 ms 0.0523 ± 0.032 ms 1.03 ± 0.85
saxpy/static workgroup=(1024,)/Float32/1048576 0.494 ± 0.029 ms 0.5 ± 0.036 ms 0.988 ± 0.092
saxpy/static workgroup=(1024,)/Float32/16384 0.0457 ± 0.027 ms 0.0458 ± 0.027 ms 0.998 ± 0.84
saxpy/static workgroup=(1024,)/Float32/2048 0.0519 ± 0.027 ms 0.0526 ± 0.027 ms 0.988 ± 0.73
saxpy/static workgroup=(1024,)/Float32/256 0.0517 ± 0.03 ms 0.0521 ± 0.03 ms 0.991 ± 0.81
saxpy/static workgroup=(1024,)/Float32/262144 0.166 ± 0.025 ms 0.17 ± 0.024 ms 0.981 ± 0.2
saxpy/static workgroup=(1024,)/Float32/32768 0.0524 ± 0.028 ms 0.0535 ± 0.029 ms 0.98 ± 0.75
saxpy/static workgroup=(1024,)/Float32/4096 0.054 ± 0.028 ms 0.0547 ± 0.027 ms 0.987 ± 0.71
saxpy/static workgroup=(1024,)/Float32/512 0.0493 ± 0.032 ms 0.0558 ± 0.031 ms 0.884 ± 0.75
saxpy/static workgroup=(1024,)/Float32/64 0.0521 ± 0.029 ms 0.0539 ± 0.03 ms 0.966 ± 0.76
saxpy/static workgroup=(1024,)/Float32/65536 0.0701 ± 0.028 ms 0.0724 ± 0.028 ms 0.97 ± 0.55
saxpy/static workgroup=(1024,)/Float64/1024 0.0495 ± 0.031 ms 0.0503 ± 0.032 ms 0.985 ± 0.88
saxpy/static workgroup=(1024,)/Float64/1048576 0.525 ± 0.15 ms 0.531 ± 0.15 ms 0.988 ± 0.39
saxpy/static workgroup=(1024,)/Float64/16384 0.0472 ± 0.028 ms 0.0582 ± 0.028 ms 0.811 ± 0.61
saxpy/static workgroup=(1024,)/Float64/2048 0.0528 ± 0.028 ms 0.0546 ± 0.028 ms 0.969 ± 0.71
saxpy/static workgroup=(1024,)/Float64/256 0.0533 ± 0.029 ms 0.0519 ± 0.03 ms 1.03 ± 0.81
saxpy/static workgroup=(1024,)/Float64/262144 0.167 ± 0.019 ms 0.17 ± 0.019 ms 0.984 ± 0.16
saxpy/static workgroup=(1024,)/Float64/32768 0.0549 ± 0.029 ms 0.0584 ± 0.029 ms 0.94 ± 0.68
saxpy/static workgroup=(1024,)/Float64/4096 0.0537 ± 0.027 ms 0.0551 ± 0.027 ms 0.975 ± 0.68
saxpy/static workgroup=(1024,)/Float64/512 0.049 ± 0.033 ms 0.0523 ± 0.031 ms 0.936 ± 0.84
saxpy/static workgroup=(1024,)/Float64/64 0.051 ± 0.031 ms 0.0527 ± 0.029 ms 0.968 ± 0.79
saxpy/static workgroup=(1024,)/Float64/65536 0.0764 ± 0.027 ms 0.0796 ± 0.028 ms 0.96 ± 0.48
time_to_load 0.774 ± 0.0024 s 0.782 ± 0.0096 s 0.99 ± 0.013
main 3770c71... main / 3770c71...
const/@Const/Float32/262144 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/@Const/Float32/65536 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/@Const/Float64/262144 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/@Const/Float64/65536 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/unmarked/Float32/262144 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/unmarked/Float32/65536 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/unmarked/Float64/262144 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
const/unmarked/Float64/65536 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
launch/3D static workgroup, dynamic ndrange 5 allocs: 0.141 kB 7 allocs: 0.297 kB 0.474
launch/3D static workgroup, static ndrange 6 allocs: 0.172 kB 8 allocs: 0.328 kB 0.524
launch/dynamic workgroup, dynamic ndrange 15 allocs: 0.312 kB 17 allocs: 0.469 kB 0.667
launch/dynamic workgroup, dynamic ndrange, workgroupsize given 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
launch/static workgroup, dynamic ndrange 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
launch/static workgroup, static ndrange 2 allocs: 0.0469 kB 4 allocs: 0.203 kB 0.231
partition/dynamic workgroup, dynamic ndrange 2 allocs: 0.0625 kB 2 allocs: 0.0625 kB 1
partition/static workgroup, dynamic ndrange 2 allocs: 32 B 2 allocs: 32 B 1
partition/static workgroup, static ndrange 0 allocs: 0 B 0 allocs: 0 B
saxpy/default/Float16/1024 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/1048576 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/16384 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/2048 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/256 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float16/262144 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/32768 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/4096 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/512 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float16/64 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float16/65536 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/1024 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/1048576 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/16384 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/2048 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/256 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float32/262144 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/32768 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/4096 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/512 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float32/64 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float32/65536 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/1024 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/1048576 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/16384 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/2048 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/256 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float64/262144 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/32768 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/4096 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/512 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/default/Float64/64 16 allocs: 0.328 kB 18 allocs: 0.484 kB 0.677
saxpy/default/Float64/65536 24 allocs: 0.453 kB 26 allocs: 0.609 kB 0.744
saxpy/static workgroup=(1024,)/Float16/1024 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/1048576 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/16384 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/2048 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/256 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float16/262144 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/32768 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/4096 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/512 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float16/64 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float16/65536 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/1024 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/1048576 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/16384 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/2048 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/256 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float32/262144 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/32768 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/4096 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/512 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float32/64 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float32/65536 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/1024 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/1048576 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/16384 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/2048 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/256 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float64/262144 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/32768 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/4096 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/512 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
saxpy/static workgroup=(1024,)/Float64/64 1 allocs: 16 B 3 allocs: 0.172 kB 0.0909
saxpy/static workgroup=(1024,)/Float64/65536 4 allocs: 0.0625 kB 6 allocs: 0.219 kB 0.286
time_to_load 0.201 k allocs: 11.8 kB 0.201 k allocs: 11.8 kB 1

Benchmark Plots

A plot of the benchmark results have been uploaded as an artifact to the workflow run for this PR.
Go to "Actions"->"Benchmark a pull request"->[the most recent run]->"Artifacts" (at the bottom).

@vchuravy
vchuravy merged commit f558524 into main Sep 15, 2026
77 of 78 checks passed
@vchuravy
vchuravy deleted the vc/remove-aliasscope branch September 15, 2026 13:44
@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.91%. Comparing base (e6be186) to head (3770c71).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##            main     #785       +/-   ##
==========================================
+ Coverage   0.70%   65.91%   +65.20%     
==========================================
  Files         21       23        +2     
  Lines       1839     1998      +159     
==========================================
+ Hits          13     1317     +1304     
+ Misses      1826      681     -1145     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant