-
Notifications
You must be signed in to change notification settings - Fork 820
Implement MethodImplOptions.AggressiveInlining
flag - fixes #1637
#3154
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
Conversation
@dsyme @KevinRansom @kbattocchi I tried to find all places that were touched by NoInline but it's not working yet. Any ideas? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I put some comments above. I think we don't need to change the TAST - just use Never
as mentioned above in the case where the attribute is present on a method/function
src/fsharp/tast.fs
Outdated
@@ -123,6 +125,7 @@ type ValFlags(flags:int64) = | |||
(match inlineInfo with | |||
| ValInline.PseudoVal -> 0b0000000000000000000L | |||
| ValInline.Always -> 0b0000000000000010000L | |||
| ValInline.Aggressive -> 0b0100L |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is not right - 0b0100L is already used by NormalVal
above
src/fsharp/tast.fs
Outdated
@@ -62,6 +62,8 @@ type ValInline = | |||
| PseudoVal | |||
/// Indicates the value is inlined but the .NET IL code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined | |||
| Always | |||
/// Indicates the value will be inlined be inlined by the .NET runtime | |||
| Aggressive |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not convinced we need to change the TAST (or Pickle) at all?
MethodImplOptions.AggressiveInlining
flag - fixes #1637MethodImplOptions.AggressiveInlining
flag - fixes #1637
@forki This is now ready but needs a test. Adding a code generation baseline test would make sense. Would you like to do that? thanks! |
Sorry in foreseeable future I won't have time to work on it. Cutting all F# OSS work down to minimum. Only stuff that is directly related to work blockers will survive.
|
Ok, I can add this one |
OK, test added, this is ready once green |
MethodImplOptions.AggressiveInlining
flag #1637