{"action":"created","issue":{"url":"https://api.github.com/repos/google/souper/issues/156","labels_url":"https://api.github.com/repos/google/souper/issues/156/labels{/name}","comments_url":"https://api.github.com/repos/google/souper/issues/156/comments","events_url":"https://api.github.com/repos/google/souper/issues/156/events","html_url":"https://github.com/google/souper/pull/156","id":54024603,"number":156,"title":"Added preconditions to the UBInstrs collected through blockpc","user":{"login":"chenyang78","id":757430,"avatar_url":"https://avatars.githubusercontent.com/u/757430?v=3","gravatar_id":"","url":"https://api.github.com/users/chenyang78","html_url":"https://github.com/chenyang78","followers_url":"https://api.github.com/users/chenyang78/followers","following_url":"https://api.github.com/users/chenyang78/following{/other_user}","gists_url":"https://api.github.com/users/chenyang78/gists{/gist_id}","starred_url":"https://api.github.com/users/chenyang78/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chenyang78/subscriptions","organizations_url":"https://api.github.com/users/chenyang78/orgs","repos_url":"https://api.github.com/users/chenyang78/repos","events_url":"https://api.github.com/users/chenyang78/events{/privacy}","received_events_url":"https://api.github.com/users/chenyang78/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-01-12T06:34:14Z","updated_at":"2015-01-12T19:49:45Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/google/souper/pulls/156","html_url":"https://github.com/google/souper/pull/156","diff_url":"https://github.com/google/souper/pull/156.diff","patch_url":"https://github.com/google/souper/pull/156.patch"},"body":"In the original blockpc commit, we actually didn't consider\r\nUB instructions on blockpc(s), because EB.getUBInstCondition was\r\ninvoked before blockpcs were processed. The problem was exposed\r\nby the commit 22989c0 (\"Handle instruction UB on the RHS correctly\"),\r\nwhere the order of getUBInstCondition and getBlockPCs were reversed.\r\n\r\nConsequently, souper incorrectly produced the following smt query (simplified)\r\nfor the bug-induction opt file:\r\n\r\n  (and (blockpcs ...) (and (ub-expr on \"subnsw 2147483647:i32, %1\")\r\n                           (ub-expr on \"subnsw 2147483648:i32, %1\")))\r\n\r\nThis is wrong because those two instructions are conditional: they can\r\nbe considered only if the relevant blockpcs are true. So, the correct\r\nform should be:\r\n\r\n  (and (blockpcs ...) (and (relevant blockpc => ub-expr on \"subnsw 2147483647:i32, %1\")\r\n                            ...))\r\n\r\nwhere \"=>\" stands for \"imply\".\r\n\r\nThis patch fixed this issue (issue #154)"},"comment":{"url":"https://api.github.com/repos/google/souper/issues/comments/69633259","html_url":"https://github.com/google/souper/pull/156#issuecomment-69633259","issue_url":"https://api.github.com/repos/google/souper/issues/156","id":69633259,"user":{"login":"chenyang78","id":757430,"avatar_url":"https://avatars.githubusercontent.com/u/757430?v=3","gravatar_id":"","url":"https://api.github.com/users/chenyang78","html_url":"https://github.com/chenyang78","followers_url":"https://api.github.com/users/chenyang78/followers","following_url":"https://api.github.com/users/chenyang78/following{/other_user}","gists_url":"https://api.github.com/users/chenyang78/gists{/gist_id}","starred_url":"https://api.github.com/users/chenyang78/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chenyang78/subscriptions","organizations_url":"https://api.github.com/users/chenyang78/orgs","repos_url":"https://api.github.com/users/chenyang78/repos","events_url":"https://api.github.com/users/chenyang78/events{/privacy}","received_events_url":"https://api.github.com/users/chenyang78/received_events","type":"User","site_admin":false},"created_at":"2015-01-12T19:49:45Z","updated_at":"2015-01-12T19:49:45Z","body":"Thanks for the review, John & Raimondas. I will update the request tonight based on your comments. "}}