Skip to content
Discussion options

You must be logged in to vote

Indeed, RyuJit doesn't implement general LLVM-style alias analysis. It does have a scoped version as part of the value numbering.

It does mean we don't dead-store writes to non-local memory. In a sense, the more general analysis is important in LLVM because it represents local memory modification via stores to allocas, while in RyuJit both enregisterable values and things like structs are LCL_VARs. And, of course, LLVM has a very complex pointer aliasing model that is intended to take advantage of the optimization opportunities presented by liberal UB rules in C/C++, something that does not exist in IL.

Replies: 2 comments

Comment options

You must be logged in to vote
0 replies
Answer selected by filipnavara
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
2 participants