{"action":"created","issue":{"url":"https://api.github.com/repos/erlang/otp/issues/577","labels_url":"https://api.github.com/repos/erlang/otp/issues/577/labels{/name}","comments_url":"https://api.github.com/repos/erlang/otp/issues/577/comments","events_url":"https://api.github.com/repos/erlang/otp/issues/577/events","html_url":"https://github.com/erlang/otp/pull/577","id":53336161,"number":577,"title":"Fix liveness analysis to cope with convoluted blocks","user":{"login":"nox","id":123095,"avatar_url":"https://avatars.githubusercontent.com/u/123095?v=3","gravatar_id":"","url":"https://api.github.com/users/nox","html_url":"https://github.com/nox","followers_url":"https://api.github.com/users/nox/followers","following_url":"https://api.github.com/users/nox/following{/other_user}","gists_url":"https://api.github.com/users/nox/gists{/gist_id}","starred_url":"https://api.github.com/users/nox/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nox/subscriptions","organizations_url":"https://api.github.com/users/nox/orgs","repos_url":"https://api.github.com/users/nox/repos","events_url":"https://api.github.com/users/nox/events{/privacy}","received_events_url":"https://api.github.com/users/nox/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-01-04T13:19:12Z","updated_at":"2015-01-13T07:10:03Z","closed_at":"2015-01-13T07:10:03Z","pull_request":{"url":"https://api.github.com/repos/erlang/otp/pulls/577","html_url":"https://github.com/erlang/otp/pull/577","diff_url":"https://github.com/erlang/otp/pull/577.diff","patch_url":"https://github.com/erlang/otp/pull/577.patch"},"body":"It seems that sometimes, the liveness analysis is wrong and alloc instructions should be kept as is, like in that code:\r\n\r\n``` erlang\r\nf1(X, [_]) when {{X}}, -X ->\r\n    ok.\r\n```\r\n\r\nI have no idea where to put tests for this, nor whether this fix is really the fix that should be done.\r\n\r\nBook-keeping: nox#3\r\n\r\n@UlfNorell"},"comment":{"url":"https://api.github.com/repos/erlang/otp/issues/comments/69703975","html_url":"https://github.com/erlang/otp/pull/577#issuecomment-69703975","issue_url":"https://api.github.com/repos/erlang/otp/issues/577","id":69703975,"user":{"login":"bjorng","id":74840,"avatar_url":"https://avatars.githubusercontent.com/u/74840?v=3","gravatar_id":"","url":"https://api.github.com/users/bjorng","html_url":"https://github.com/bjorng","followers_url":"https://api.github.com/users/bjorng/followers","following_url":"https://api.github.com/users/bjorng/following{/other_user}","gists_url":"https://api.github.com/users/bjorng/gists{/gist_id}","starred_url":"https://api.github.com/users/bjorng/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjorng/subscriptions","organizations_url":"https://api.github.com/users/bjorng/orgs","repos_url":"https://api.github.com/users/bjorng/repos","events_url":"https://api.github.com/users/bjorng/events{/privacy}","received_events_url":"https://api.github.com/users/bjorng/received_events","type":"User","site_admin":false},"created_at":"2015-01-13T07:10:03Z","updated_at":"2015-01-13T07:10:03Z","body":"I haven't tested your fix or looked closely at it, but I see that it removes the assertion that used to be there. That means that it may hide bugs introduced by other optimisation passes. I don't like that.\r\n\r\nSince the bug is in the beam_bool pass, I think that the bug should be fixed there. My correction branch can be found here:\r\n\r\nhttps://github.com/bjorng/otp/compare/bjorn/compiler/beam_bool?expand=1\r\n\r\nWe will test if for a few days and then merge it if no issues are found."}}