{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/20009","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/20009/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/20009/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/20009/events","html_url":"https://github.com/dotnet/coreclr/pull/20009","id":361001342,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2MDgyNzk1","number":20009,"title":"Add MethodImplOptions.AggressiveOptimization and use it for tiering","user":{"login":"kouvel","id":13499639,"node_id":"MDQ6VXNlcjEzNDk5NjM5","avatar_url":"https://avatars1.githubusercontent.com/u/13499639?v=4","gravatar_id":"","url":"https://api.github.com/users/kouvel","html_url":"https://github.com/kouvel","followers_url":"https://api.github.com/users/kouvel/followers","following_url":"https://api.github.com/users/kouvel/following{/other_user}","gists_url":"https://api.github.com/users/kouvel/gists{/gist_id}","starred_url":"https://api.github.com/users/kouvel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kouvel/subscriptions","organizations_url":"https://api.github.com/users/kouvel/orgs","repos_url":"https://api.github.com/users/kouvel/repos","events_url":"https://api.github.com/users/kouvel/events{/privacy}","received_events_url":"https://api.github.com/users/kouvel/received_events","type":"User","site_admin":false},"labels":[{"id":390279535,"node_id":"MDU6TGFiZWwzOTAyNzk1MzU=","url":"https://api.github.com/repos/dotnet/coreclr/labels/*%20NO%20MERGE%20*","name":"* NO MERGE *","color":"e11d21","default":false},{"id":963839699,"node_id":"MDU6TGFiZWw5NjM4Mzk2OTk=","url":"https://api.github.com/repos/dotnet/coreclr/labels/area-CodeVersioning","name":"area-CodeVersioning","color":"d4c5f9","default":false},{"id":338507374,"node_id":"MDU6TGFiZWwzMzg1MDczNzQ=","url":"https://api.github.com/repos/dotnet/coreclr/labels/area-ReadyToRun","name":"area-ReadyToRun","color":"d4c5f9","default":false},{"id":517089971,"node_id":"MDU6TGFiZWw1MTcwODk5NzE=","url":"https://api.github.com/repos/dotnet/coreclr/labels/area-System.Runtime","name":"area-System.Runtime","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":{"login":"kouvel","id":13499639,"node_id":"MDQ6VXNlcjEzNDk5NjM5","avatar_url":"https://avatars1.githubusercontent.com/u/13499639?v=4","gravatar_id":"","url":"https://api.github.com/users/kouvel","html_url":"https://github.com/kouvel","followers_url":"https://api.github.com/users/kouvel/followers","following_url":"https://api.github.com/users/kouvel/following{/other_user}","gists_url":"https://api.github.com/users/kouvel/gists{/gist_id}","starred_url":"https://api.github.com/users/kouvel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kouvel/subscriptions","organizations_url":"https://api.github.com/users/kouvel/orgs","repos_url":"https://api.github.com/users/kouvel/repos","events_url":"https://api.github.com/users/kouvel/events{/privacy}","received_events_url":"https://api.github.com/users/kouvel/received_events","type":"User","site_admin":false},"assignees":[{"login":"kouvel","id":13499639,"node_id":"MDQ6VXNlcjEzNDk5NjM5","avatar_url":"https://avatars1.githubusercontent.com/u/13499639?v=4","gravatar_id":"","url":"https://api.github.com/users/kouvel","html_url":"https://github.com/kouvel","followers_url":"https://api.github.com/users/kouvel/followers","following_url":"https://api.github.com/users/kouvel/following{/other_user}","gists_url":"https://api.github.com/users/kouvel/gists{/gist_id}","starred_url":"https://api.github.com/users/kouvel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kouvel/subscriptions","organizations_url":"https://api.github.com/users/kouvel/orgs","repos_url":"https://api.github.com/users/kouvel/repos","events_url":"https://api.github.com/users/kouvel/events{/privacy}","received_events_url":"https://api.github.com/users/kouvel/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/coreclr/milestones/18","html_url":"https://github.com/dotnet/coreclr/milestone/18","labels_url":"https://api.github.com/repos/dotnet/coreclr/milestones/18/labels","id":3246413,"node_id":"MDk6TWlsZXN0b25lMzI0NjQxMw==","number":18,"title":"3.0","description":".NET Core 3.0, next major release after 2.1. See [official release dates](https://github.com/dotnet/core/blob/master/roadmap.md) for details.\r\n\r\nWe will move important issues from Future to 3.0 as the priorities and dates for next release become more clear.","creator":{"login":"karelz","id":5776068,"node_id":"MDQ6VXNlcjU3NzYwNjg=","avatar_url":"https://avatars2.githubusercontent.com/u/5776068?v=4","gravatar_id":"","url":"https://api.github.com/users/karelz","html_url":"https://github.com/karelz","followers_url":"https://api.github.com/users/karelz/followers","following_url":"https://api.github.com/users/karelz/following{/other_user}","gists_url":"https://api.github.com/users/karelz/gists{/gist_id}","starred_url":"https://api.github.com/users/karelz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/karelz/subscriptions","organizations_url":"https://api.github.com/users/karelz/orgs","repos_url":"https://api.github.com/users/karelz/repos","events_url":"https://api.github.com/users/karelz/events{/privacy}","received_events_url":"https://api.github.com/users/karelz/received_events","type":"User","site_admin":false},"open_issues":190,"closed_issues":227,"state":"open","created_at":"2018-04-05T22:09:22Z","updated_at":"2018-09-27T18:33:57Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2018-09-17T19:04:25Z","updated_at":"2018-09-27T21:30:19Z","closed_at":null,"author_association":"MEMBER","pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/20009","html_url":"https://github.com/dotnet/coreclr/pull/20009","diff_url":"https://github.com/dotnet/coreclr/pull/20009.diff","patch_url":"https://github.com/dotnet/coreclr/pull/20009.patch"},"body":"Part of fix for https://github.com/dotnet/corefx/issues/32235\r\nWorkaround for https://github.com/dotnet/coreclr/issues/19751\r\n- Added and set `CORJIT_FLAG_AGGRESSIVE_OPT` to indicate that a method is flagged with `AggressiveOptimization`\r\n- For a method flagged with `AggressiveOptimization`, tiering uses a foreground tier 1 JIT on first call to the method, skipping the tier 0 JIT and call counting\r\n- When tiering is disabled, a method flagged with `AggressiveOptimization` does not use r2r-pregenerated code\r\n- R2r crossgen does not generate code for a method flagged with `AggressiveOptimization`"},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/425249530","html_url":"https://github.com/dotnet/coreclr/pull/20009#issuecomment-425249530","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/20009","id":425249530,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNTI0OTUzMA==","user":{"login":"AndyAyersMS","id":10121823,"node_id":"MDQ6VXNlcjEwMTIxODIz","avatar_url":"https://avatars1.githubusercontent.com/u/10121823?v=4","gravatar_id":"","url":"https://api.github.com/users/AndyAyersMS","html_url":"https://github.com/AndyAyersMS","followers_url":"https://api.github.com/users/AndyAyersMS/followers","following_url":"https://api.github.com/users/AndyAyersMS/following{/other_user}","gists_url":"https://api.github.com/users/AndyAyersMS/gists{/gist_id}","starred_url":"https://api.github.com/users/AndyAyersMS/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndyAyersMS/subscriptions","organizations_url":"https://api.github.com/users/AndyAyersMS/orgs","repos_url":"https://api.github.com/users/AndyAyersMS/repos","events_url":"https://api.github.com/users/AndyAyersMS/events{/privacy}","received_events_url":"https://api.github.com/users/AndyAyersMS/received_events","type":"User","site_admin":false},"created_at":"2018-09-27T21:30:19Z","updated_at":"2018-09-27T21:30:19Z","author_association":"MEMBER","body":"If we inform the jit about `AggressiveOptimization` via jit flags, the jit can't see if potential inlinees have this attribute.\r\n\r\nAn alternative is to pass this information via the internal method attribs, via a new `CORINFO_FLG_` enumerant, then the jit can look for this attribute on inlinees."}}
{"actor":{"display_login":"AndyAyersMS"}}