Skip to content

Inline thread access - #1863

Merged
Bike merged 18 commits into
mainfrom
my_thread
Sep 17, 2026
Merged

Bike merged 18 commits into
mainfrom
my_thread

Conversation

@Bike

@Bike Bike commented Sep 17, 2026

Copy link
Copy Markdown
Member

Moves most thread-local-storage access in compiled Lisp code out of intrinsics, which means fewer separate accesses to TLS, which hopefully means a bit more speed.

Bike added 18 commits September 17, 2026 10:40
next up is doing it for multiple values, etc.
I want to just use __tls_get_addr directly (or rather
llvm.threadlocal.address), but there may or may not be JIT issues.
doesn't really matter since LLVM pointers are opaque now, but I
appreciate more clarity
speed up type boundaries a little. all the intrinsic accomplished
was a type check, but we only use object-to-float conversion when
we know it's the right type (or don't care) so a type check is
unnecessary.
llvm.threadlocal.address also has memory(none), which will be
trickier to put together
it's still not enough to convince LLVM to merge calls, though.
that's about it for direct multiple values
@Bike
Bike merged commit d59c756 into main Sep 17, 2026
11 of 12 checks passed
@Bike
Bike deleted the my_thread branch September 17, 2026 23:47
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