{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/18453","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/18453/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/18453/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/18453/events","html_url":"https://github.com/dotnet/coreclr/issues/18453","id":331891798,"node_id":"MDU6SXNzdWUzMzE4OTE3OTg=","number":18453,"title":"JIT: don't track arg and local and temp ref classes in minopts or debug mode","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},"labels":[{"id":451595438,"node_id":"MDU6TGFiZWw0NTE1OTU0Mzg=","url":"https://api.github.com/repos/dotnet/coreclr/labels/JitThroughput","name":"JitThroughput","color":"fbca04","default":false},{"id":196940911,"node_id":"MDU6TGFiZWwxOTY5NDA5MTE=","url":"https://api.github.com/repos/dotnet/coreclr/labels/area-CodeGen","name":"area-CodeGen","color":"d4c5f9","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/dotnet/coreclr/milestones/5","html_url":"https://github.com/dotnet/coreclr/milestone/5","labels_url":"https://api.github.com/repos/dotnet/coreclr/milestones/5/labels","id":1328081,"node_id":"MDk6TWlsZXN0b25lMTMyODA4MQ==","number":5,"title":"Future","description":"Milestone tracking issues not triaged to a planned release. Work in this milestone may happen, or may not: it is not committed.","creator":{"login":"joshfree","id":1302850,"node_id":"MDQ6VXNlcjEzMDI4NTA=","avatar_url":"https://avatars1.githubusercontent.com/u/1302850?v=4","gravatar_id":"","url":"https://api.github.com/users/joshfree","html_url":"https://github.com/joshfree","followers_url":"https://api.github.com/users/joshfree/followers","following_url":"https://api.github.com/users/joshfree/following{/other_user}","gists_url":"https://api.github.com/users/joshfree/gists{/gist_id}","starred_url":"https://api.github.com/users/joshfree/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joshfree/subscriptions","organizations_url":"https://api.github.com/users/joshfree/orgs","repos_url":"https://api.github.com/users/joshfree/repos","events_url":"https://api.github.com/users/joshfree/events{/privacy}","received_events_url":"https://api.github.com/users/joshfree/received_events","type":"User","site_admin":false},"open_issues":1372,"closed_issues":1305,"state":"open","created_at":"2015-09-29T00:26:07Z","updated_at":"2018-08-06T22:16:35Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2018-06-13T08:26:59Z","updated_at":"2018-08-06T22:28:38Z","closed_at":null,"author_association":"MEMBER","body":"If the jit is not optimizing it doesn't need to ask the runtime for the declared types for ref class arguments and locals. Just knowing they are of `TYP_REF` is sufficient. Removing this call back into the runtime may improve minopts/debug throughput by around 1% or so (hard to be sure because it may just shift the runtime cost from one place to another).\r\n\r\nCurrently ref class information is read in before the jit makes a determination as to whether or not it is in minopts mode (as minopts determination depends in part on the count of args and locals) -- so to conditionally read this info will require a bit of reworking.\r\n\r\nAlso `lvaSetClass` and `lvaUpdateClass` can become no-ops in minopts and debug modes."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/410872917","html_url":"https://github.com/dotnet/coreclr/issues/18453#issuecomment-410872917","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/18453","id":410872917,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMDg3MjkxNw==","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-08-06T22:28:38Z","updated_at":"2018-08-06T22:28:38Z","author_association":"MEMBER","body":"The differences in `getArgClass` are likely from the type tracking code and is what prompted me to open this issue."}}
{"actor":{"display_login":"AndyAyersMS"}}