{"action":"created","issue":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/3597","repository_url":"https://api.github.com/repos/dotnet/coreclr","labels_url":"https://api.github.com/repos/dotnet/coreclr/issues/3597/labels{/name}","comments_url":"https://api.github.com/repos/dotnet/coreclr/issues/3597/comments","events_url":"https://api.github.com/repos/dotnet/coreclr/issues/3597/events","html_url":"https://github.com/dotnet/coreclr/issues/3597","id":139433254,"number":3597,"title":"RyuJIT x86: GC encoding expects EITHER lvRegister OR lvOnFrame","user":{"login":"CarolEidt","id":2973870,"avatar_url":"https://avatars.githubusercontent.com/u/2973870?v=3","gravatar_id":"","url":"https://api.github.com/users/CarolEidt","html_url":"https://github.com/CarolEidt","followers_url":"https://api.github.com/users/CarolEidt/followers","following_url":"https://api.github.com/users/CarolEidt/following{/other_user}","gists_url":"https://api.github.com/users/CarolEidt/gists{/gist_id}","starred_url":"https://api.github.com/users/CarolEidt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CarolEidt/subscriptions","organizations_url":"https://api.github.com/users/CarolEidt/orgs","repos_url":"https://api.github.com/users/CarolEidt/repos","events_url":"https://api.github.com/users/CarolEidt/events{/privacy}","received_events_url":"https://api.github.com/users/CarolEidt/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dotnet/coreclr/labels/bug","name":"bug","color":"fc2929"},{"url":"https://api.github.com/repos/dotnet/coreclr/labels/CodeGen","name":"CodeGen","color":"d4c5f9"},{"url":"https://api.github.com/repos/dotnet/coreclr/labels/x86","name":"x86","color":"fbca04"}],"state":"open","locked":false,"assignee":{"login":"BruceForstall","id":10901265,"avatar_url":"https://avatars.githubusercontent.com/u/10901265?v=3","gravatar_id":"","url":"https://api.github.com/users/BruceForstall","html_url":"https://github.com/BruceForstall","followers_url":"https://api.github.com/users/BruceForstall/followers","following_url":"https://api.github.com/users/BruceForstall/following{/other_user}","gists_url":"https://api.github.com/users/BruceForstall/gists{/gist_id}","starred_url":"https://api.github.com/users/BruceForstall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BruceForstall/subscriptions","organizations_url":"https://api.github.com/users/BruceForstall/orgs","repos_url":"https://api.github.com/users/BruceForstall/repos","events_url":"https://api.github.com/users/BruceForstall/events{/privacy}","received_events_url":"https://api.github.com/users/BruceForstall/received_events","type":"User","site_admin":false},"assignees":[{"login":"BruceForstall","id":10901265,"avatar_url":"https://avatars.githubusercontent.com/u/10901265?v=3","gravatar_id":"","url":"https://api.github.com/users/BruceForstall","html_url":"https://github.com/BruceForstall","followers_url":"https://api.github.com/users/BruceForstall/followers","following_url":"https://api.github.com/users/BruceForstall/following{/other_user}","gists_url":"https://api.github.com/users/BruceForstall/gists{/gist_id}","starred_url":"https://api.github.com/users/BruceForstall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BruceForstall/subscriptions","organizations_url":"https://api.github.com/users/BruceForstall/orgs","repos_url":"https://api.github.com/users/BruceForstall/repos","events_url":"https://api.github.com/users/BruceForstall/events{/privacy}","received_events_url":"https://api.github.com/users/BruceForstall/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/dotnet/coreclr/milestones/9","html_url":"https://github.com/dotnet/coreclr/milestones/1.2.0","labels_url":"https://api.github.com/repos/dotnet/coreclr/milestones/9/labels","id":1876930,"number":9,"title":"1.2.0","description":".NET Core 1.2 Placeholder.  No date is set. https://github.com/dotnet/core/blob/master/roadmap.md","creator":{"login":"joshfree","id":1302850,"avatar_url":"https://avatars.githubusercontent.com/u/1302850?v=3","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":34,"closed_issues":20,"state":"open","created_at":"2016-07-11T20:32:48Z","updated_at":"2016-08-30T21:33:34Z","due_on":"2017-04-30T07:00:00Z","closed_at":null},"comments":2,"created_at":"2016-03-09T00:13:47Z","updated_at":"2016-08-31T00:27:49Z","closed_at":null,"body":"This assert:\r\nAssert failure(PID 9500 [0x0000251c], Thread: 15184 [0x3b50]): Assertion failed 'varDsc->lvRefCnt == 0'\r\nFile: d:\\git\\coreclr\\src\\jit\\gcencode.cpp Line: 1788\r\n\r\nIs hit by this test:\r\nJIT\\Performance\\CodeQuality\\Serialization\\Serialize\\Serialize.cmd\r\nin 'System.Xml.XmlUTF8NodeWriter:SetOutput(ref,bool,ref):this' (IL size 42)\r\n\r\nThis is happening in this code from `GCInfo::gcMakeRegPtrTable()`\r\n```C++\r\n/* Has this argument been enregistered? */\r\nif  (varDsc->lvRegister)\r\n{\r\n    /* if a CEE_JMP has been used, then we need to report all the arguments\r\n       even if they are enregistered, since we will be using this value\r\n       in JMP call.  Note that this is subtle as we require that\r\n       argument offsets are always fixed up properly even if lvRegister\r\n       is set */\r\n    if (!compiler->compJmpOpUsed)\r\n        continue;\r\n}\r\nelse\r\n{\r\n    if  (!varDsc->lvOnFrame)\r\n    {\r\n        /* If this non-enregistered pointer arg is never\r\n         * used, we don't need to report it\r\n         */\r\n        assert(varDsc->lvRefCnt == 0);\r\n        continue;\r\n    }\r\n```\r\nThe issue arises because with RyuJIT we only set `lvRegister` if a lclVar is in the SAME register throughout the method - but `lvOnFrame` may not be true if it has never been spilled (e.g. it may have multiple disjoint lifetimes that reside in different registers)."},"comment":{"url":"https://api.github.com/repos/dotnet/coreclr/issues/comments/243623354","html_url":"https://github.com/dotnet/coreclr/issues/3597#issuecomment-243623354","issue_url":"https://api.github.com/repos/dotnet/coreclr/issues/3597","id":243623354,"user":{"login":"BruceForstall","id":10901265,"avatar_url":"https://avatars.githubusercontent.com/u/10901265?v=3","gravatar_id":"","url":"https://api.github.com/users/BruceForstall","html_url":"https://github.com/BruceForstall","followers_url":"https://api.github.com/users/BruceForstall/followers","following_url":"https://api.github.com/users/BruceForstall/following{/other_user}","gists_url":"https://api.github.com/users/BruceForstall/gists{/gist_id}","starred_url":"https://api.github.com/users/BruceForstall/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BruceForstall/subscriptions","organizations_url":"https://api.github.com/users/BruceForstall/orgs","repos_url":"https://api.github.com/users/BruceForstall/repos","events_url":"https://api.github.com/users/BruceForstall/events{/privacy}","received_events_url":"https://api.github.com/users/BruceForstall/received_events","type":"User","site_admin":false},"created_at":"2016-08-31T00:27:49Z","updated_at":"2016-08-31T00:27:49Z","body":"@adiaaida there's a problem with that test job: it's reporting the assert **at the line number it used to exist at**. The assert no longer is at that line number, due to my changes. So it hasn't picked up my change, but apparently did pick up the issues.targets that no longer excludes the test. How does that happen?"}}
{"actor":{"display_login":"BruceForstall"}}