-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Do not build LLVM bitcast
instructions for opaque pointer casts
#13171
Do not build LLVM bitcast
instructions for opaque pointer casts
#13171
Conversation
Moment of truth:
Maximum memory load is not as bad as I thought, despite the addition of
I will be doing a few more runs of |
Here are the stats of
Plus 1 run in release mode (only the stages beyond Crystal's control are shown because the other times are unaffected):
|
Part of #12743. When opaque pointers are available, casts between pointers (in the same address space) are always no-ops in LLVM, but this alone doesn't prevent Crystal from computing the pointee type. This PR does that by not evaluating the type argument at all for LLVM 15+. Note that all uses of
bitcast
in Crystal are for pointer casts.