{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/8106","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/8106/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/8106/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/8106/events","html_url":"https://github.com/dotnet/coreclr/pull/8106","id":188960559,"number":8106,"title":"[WIP] Move magic division optimization from morph to lowering","user":{"login":"mikedn","id":9973420,"avatar_url":"https://avatars.githubusercontent.com/u/9973420?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedn","html_url":"https://github.com/mikedn","followers_url":"https://api.github.com/users/mikedn/followers","following_url":"https://api.github.com/users/mikedn/following{/other_user}","gists_url":"https://api.github.com/users/mikedn/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedn/subscriptions","organizations_url":"https://api.github.com/users/mikedn/orgs","repos_url":"https://api.github.com/users/mikedn/repos","events_url":"https://api.github.com/users/mikedn/events{/privacy}","received_events_url":"https://api.github.com/users/mikedn/received_events","type":"User","site_admin":false},"labels":[{"id":197462704,"url":"https://api.github.com/repos/dotnet/coreclr/labels/cla-already-signed","name":"cla-already-signed","color":"009800","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-13T09:19:17Z","updated_at":"2016-11-15T16:27:51Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/dotnet/coreclr/pulls/8106","html_url":"https://github.com/dotnet/coreclr/pull/8106","diff_url":"https://github.com/dotnet/coreclr/pull/8106.diff","patch_url":"https://github.com/dotnet/coreclr/pull/8106.patch"},"body":"Fixes #2183"},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/260690468","html_url":"https://github.com/dotnet/coreclr/pull/8106#issuecomment-260690468","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/8106","id":260690468,"user":{"login":"mikedn","id":9973420,"avatar_url":"https://avatars.githubusercontent.com/u/9973420?v=3","gravatar_id":"","url":"https://api.github.com/users/mikedn","html_url":"https://github.com/mikedn","followers_url":"https://api.github.com/users/mikedn/followers","following_url":"https://api.github.com/users/mikedn/following{/other_user}","gists_url":"https://api.github.com/users/mikedn/gists{/gist_id}","starred_url":"https://api.github.com/users/mikedn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mikedn/subscriptions","organizations_url":"https://api.github.com/users/mikedn/orgs","repos_url":"https://api.github.com/users/mikedn/repos","events_url":"https://api.github.com/users/mikedn/events{/privacy}","received_events_url":"https://api.github.com/users/mikedn/received_events","type":"User","site_admin":false},"created_at":"2016-11-15T16:27:51Z","updated_at":"2016-11-15T16:27:51Z","body":"jit-diff summary:\r\n```\r\nTotal bytes of diff: -722 (-0.01 % of base)\r\n    diff is an improvement.\r\nTotal byte diff includes 0 bytes from reconciling methods\r\n        Base had    0 unique methods,        0 unique bytes\r\n        Diff had    0 unique methods,        0 unique bytes\r\nTop file regressions by size (bytes):\r\n          17 : System.Runtime.Numerics.dasm (0.03 % of base)\r\nTop file improvements by size (bytes):\r\n        -618 : System.Private.CoreLib.dasm (-0.02 % of base)\r\n         -51 : System.Xml.ReaderWriter.dasm (-0.01 % of base)\r\n         -19 : System.Reflection.Metadata.dasm (-0.01 % of base)\r\n         -15 : System.Collections.Concurrent.dasm (-0.03 % of base)\r\n          -9 : System.Runtime.InteropServices.dasm (-0.28 % of base)\r\n11 total files with size differences.\r\nTop method regessions by size (bytes):\r\n          22 : System.Private.CoreLib.dasm - System.Threading.ManualResetEventSlim:Wait(int,struct):bool:this\r\n          19 : System.Private.CoreLib.dasm - System.Globalization.Calendar:GetWeekOfYearOfMinSupportedDateTime(int,int):int:this\r\n          19 : System.Runtime.Numerics.dasm - System.Numerics.Complex:GetHashCode():int:this\r\n           9 : System.Private.CoreLib.dasm - System.Globalization.Calendar:GetWeekOfYearFullDays(struct,int,int):int:this\r\n           4 : System.Private.CoreLib.dasm - System.Globalization.HijriCalendar:IsLeapYear(int,int):bool:this\r\nTop method improvements by size (bytes):\r\n         -96 : System.Private.CoreLib.dasm - System.Globalization.TimeSpanFormat:FormatCustomized(struct,ref,ref):ref\r\n         -80 : System.Private.CoreLib.dasm - System.Globalization.TimeSpanFormat:FormatStandard(struct,bool,ref,int):ref\r\n         -30 : System.Private.CoreLib.dasm - System.DateTimeFormat:FormatCustomized(struct,ref,ref,struct):ref\r\n         -22 : System.Private.CoreLib.dasm - System.DateTimeFormat:AppendNumber(ref,long,int)\r\n         -17 : System.Private.CoreLib.dasm - System.Globalization.JulianCalendar:AddMonths(struct,int):struct:this\r\n121 total methods with size differences.\r\n```\r\nElimination of useless `mov` instructions is responsible for most improvements. Improved elimination of redundant div code also helps here and there.\r\n\r\n`ManualResetEventSlim:Wait` and `Complex:GetHashCode` regressed because they're now using magic division. `GetWeekOfYearOfMinSupportedDateTime` regressed due to not so fortunate register allocation (for example we end up using a larger `lea` instead of smaller `add`)."}}
{"actor":{"display_login":"mikedn"}}