You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Mar 15, 2022. It is now read-only.
Inlining is an important optimization. Getting it enabled in LLILC is going to take some work. While there are a number of different ways we could go about inlining, I'd recommend something like the following:
Ensure the reader can be re-invoked by the LLVM pass manager to read in inlinees.
Make sure we retain sufficient context in the LLVM IR (or perhaps via metadata) to do the appropriate legality checks outside of the reader.
Implement any special behavior needed in the reader when reading an inlinee.
Determine whether the right approach is to add inlinees as methods to the module we use for the root method, or do something else. The appeal of adding them to the module is that if there are multiple call sites that invoke a given method we may be able to easily reuse the IR. But if we do that we need to make sure to remove or mark these as not needing actual processing or code gen; only the root method can be emitted.
The text was updated successfully, but these errors were encountered:
Inlining is an important optimization. Getting it enabled in LLILC is going to take some work. While there are a number of different ways we could go about inlining, I'd recommend something like the following:
The text was updated successfully, but these errors were encountered: