fix(llvm): Correctly cache pointers to intrinsic memory operations #5549
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes the high CPU usage when using LLVM for modules that use atomics.
We were saving pointers to VM functions that operate on memory (for example,
memory_notify
andmemory_wait
) in the same cache. This led, then, to IR being generated like this:where
%xyz
is a local variable the holds the value of the same function pointer resolved from cache, depending which betweenmemory_notify
andmemory_wait
, in this case, is added to the cache first.