{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":698204658,"defaultBranch":"main","name":"smtgcc","ownerLogin":"kristerw","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2023-09-29T11:50:03.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/3127667?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1695988203.0","currentOid":""},"activityList":{"items":[{"before":"5bf0173b877b5f6bf969a528ee0b58cd8f818d4b","after":"053e2eaff35954bee47ba3b63f21efb771754bf9","ref":"refs/heads/main","pushedAt":"2024-09-05T19:47:50.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"padding_at_offset: prevent infinite recursion","shortMessageHtmlLink":"padding_at_offset: prevent infinite recursion"}},{"before":"f4b6f560b81490e34a7e01e76ddaa97bf6e85fe2","after":"5bf0173b877b5f6bf969a528ee0b58cd8f818d4b","ref":"refs/heads/main","pushedAt":"2024-09-03T22:10:41.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"sub x, x -> 0","shortMessageHtmlLink":"sub x, x -> 0"}},{"before":"71afaf078c1523cc6a33268a4736f8407ae19bb7","after":"f4b6f560b81490e34a7e01e76ddaa97bf6e85fe2","ref":"refs/heads/main","pushedAt":"2024-08-30T16:53:14.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":".CLZ/.CTZ: the two arguments may have different types","shortMessageHtmlLink":".CLZ/.CTZ: the two arguments may have different types"}},{"before":"3a3e56b97101c7116f0a621bb1ff96652935c84c","after":"71afaf078c1523cc6a33268a4736f8407ae19bb7","ref":"refs/heads/main","pushedAt":"2024-08-29T09:46:01.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Overlapping load/store in gimple_assign is UB\n\nIt is UB if the objects in a gimple_assign doing both a load and\nstore overlap (unless the load/store addresses are identical).","shortMessageHtmlLink":"Overlapping load/store in gimple_assign is UB"}},{"before":"d943b84479a44976c189d04645fd7ddd03ceb7b4","after":"3a3e56b97101c7116f0a621bb1ff96652935c84c","ref":"refs/heads/main","pushedAt":"2024-08-29T09:26:34.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"riscv: handle functions passing args on the stack","shortMessageHtmlLink":"riscv: handle functions passing args on the stack"}},{"before":"514652c51b43d5b0468942c292b33387ac53da5d","after":"d943b84479a44976c189d04645fd7ddd03ceb7b4","ref":"refs/heads/main","pushedAt":"2024-08-24T17:12:33.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Generate multiple BB for CFN_MASK_STORE","shortMessageHtmlLink":"Generate multiple BB for CFN_MASK_STORE"}},{"before":"d4f2ace16e473e4d853da52d11cc7d7a799b1076","after":"514652c51b43d5b0468942c292b33387ac53da5d","ref":"refs/heads/main","pushedAt":"2024-08-22T18:23:54.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"simplify_insts: remove dead phi nodes","shortMessageHtmlLink":"simplify_insts: remove dead phi nodes"}},{"before":"f912edcf2fd792a3748e83344f3880233d628558","after":"d4f2ace16e473e4d853da52d11cc7d7a799b1076","ref":"refs/heads/main","pushedAt":"2024-08-17T21:25:03.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Canonicalize clearing the least significant bits\n\nCanonicalize different ways of clearing the least significant bits as\n\"shl (lshr x, c), c\".","shortMessageHtmlLink":"Canonicalize clearing the least significant bits"}},{"before":"6f2fd43a769675fd074bdbf27ab89e147c62e0c9","after":"f912edcf2fd792a3748e83344f3880233d628558","ref":"refs/heads/main","pushedAt":"2024-08-13T21:19:55.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Add one additional reported bug (PR 116355)","shortMessageHtmlLink":"Add one additional reported bug (PR 116355)"}},{"before":"e6ee3a7b3d882dc4954e9edfb3bf5d64a52cc897","after":"6f2fd43a769675fd074bdbf27ab89e147c62e0c9","ref":"refs/heads/main","pushedAt":"2024-08-10T10:13:20.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Add one additional reported bug (PR 116120)","shortMessageHtmlLink":"Add one additional reported bug (PR 116120)"}},{"before":"f64973501d32d7ca2008ea2abb73b457941d6ec8","after":"e6ee3a7b3d882dc4954e9edfb3bf5d64a52cc897","ref":"refs/heads/main","pushedAt":"2024-08-04T06:34:26.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Only generate mem ID extraction once for each inst\n\nThe current provenance checking only handles binary operations\nwhere there is at most one memory ID. Re-using the extraction\nallows us to handle more cases where we previously threw a\n\"two different provenance\" exception.","shortMessageHtmlLink":"Only generate mem ID extraction once for each inst"}},{"before":"d54ed6f46aadf25149145e2db5b9ebe0da3bde45","after":"f64973501d32d7ca2008ea2abb73b457941d6ec8","ref":"refs/heads/main","pushedAt":"2024-07-27T22:24:33.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Limit the number of BBs and instructions in a function\n\nThrow \"too many BB/instructions\" when the function has more\nthan 50,000 BBs or more than 1,000,000 instructions.\n\nThe intention of this change is to prevent running out of\nmemory after unrolling for some of the large tests that\nhave very big loop nests. The limits are meant to be big\nenough that it should not prevent us from checking any\nfunction the SMT solver can handle (they can handle\nsurprisingly large functions if there are only minor\nchanges -- I often see cases with more than 200,000\ninstructions being successfully analyzed without timing\nout).","shortMessageHtmlLink":"Limit the number of BBs and instructions in a function"}},{"before":"7e1c49760fe8b5b4c7b1ced5e007a78adb03f34d","after":"d54ed6f46aadf25149145e2db5b9ebe0da3bde45","ref":"refs/heads/main","pushedAt":"2024-07-19T19:26:41.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Eliminate trivial UB checks\n\nThe checking of GCC range information often gives us trivially\nfalse UB checks of the form (where %21 is an 8-bit value):\n\n %23 = sext %21, 32\n %35 = sgt 0xffffff80, %23\n %36 = sgt %23, 127\n %37 = or %35, %36\n ub %37\n\nor\n\n %23 = zext %21, 32\n %24 = ugt %24, 255\n ub %23","shortMessageHtmlLink":"Eliminate trivial UB checks"}},{"before":"43b54b2c84fd462534f2c0f782147b82ce47115a","after":"7e1c49760fe8b5b4c7b1ced5e007a78adb03f34d","ref":"refs/heads/main","pushedAt":"2024-07-15T11:05:35.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"store_load_forwarding: prevent out of memory for large objects","shortMessageHtmlLink":"store_load_forwarding: prevent out of memory for large objects"}},{"before":"c7a2d61d585559b2ad82309159ba2eb6b1eb002d","after":"43b54b2c84fd462534f2c0f782147b82ce47115a","ref":"refs/heads/main","pushedAt":"2024-07-12T21:50:04.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Improve IR canonical representation\n\nRISC-V assembly likes to mix shifts with a constant offset and\narithmetic instructions to implement arithmetic on values less\nthan the register width, and we were not that good at simplifying\nthat.\n\nAnother related problem has to do with UB checks for the GCC ranges.\nWe often have code of the form \"((x * 4) & 3) == 0\" that we were not\ngood at eliminating.\n\nThis change is a first step in fixing this. We now canonicalize most\ninstructions that introduce 0-valued bits at the top and the bottom\nof a value as \"concat x, 0,\" which makes it much easier to track\nboth which bits are used and which are zero.","shortMessageHtmlLink":"Improve IR canonical representation"}},{"before":"ee6d6be27efb0b18eb3cb8fd147922b1b22dd00d","after":"c7a2d61d585559b2ad82309159ba2eb6b1eb002d","ref":"refs/heads/main","pushedAt":"2024-06-27T21:49:33.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"riscv: implement more of FP ABI","shortMessageHtmlLink":"riscv: implement more of FP ABI"}},{"before":"ef9f1f6f461fb208a9120eb44fa8f43d70972663","after":"ee6d6be27efb0b18eb3cb8fd147922b1b22dd00d","ref":"refs/heads/main","pushedAt":"2024-06-16T08:17:05.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"riscv: Improve ABI handling\n\nRefactor and clean up the code a bit (still much to do). This\nalso enables floating point function arguments and fixes some\ncases where complex arguments were not handled correctly.","shortMessageHtmlLink":"riscv: Improve ABI handling"}},{"before":"29011652cbe2e7a0550db93e195c68645cbe29a1","after":"ef9f1f6f461fb208a9120eb44fa8f43d70972663","ref":"refs/heads/main","pushedAt":"2024-06-14T19:46:09.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"riscv: parse .rodata* and .srodata* sections","shortMessageHtmlLink":"riscv: parse .rodata* and .srodata* sections"}},{"before":"f9adeb5e4f781c9fb1593bbd994103ce192c19f8","after":"29011652cbe2e7a0550db93e195c68645cbe29a1","ref":"refs/heads/main","pushedAt":"2024-06-04T18:57:15.000Z","pushType":"push","commitsCount":7,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Update includes","shortMessageHtmlLink":"Update includes"}},{"before":"d8ec4b9b0be08e5912c4eb2d72a349821326f37e","after":"f9adeb5e4f781c9fb1593bbd994103ce192c19f8","ref":"refs/heads/main","pushedAt":"2024-06-02T18:22:27.000Z","pushType":"push","commitsCount":6,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Add check for too large types\n\nWe cannot represent types larger than (1< sext x if is boolean.\n* (concat (concat x, x), x) != 0 -> x != 0\n* Remove redundant and/or, such as\n - and x, (and y, (and x, z)) -> and y, (and x, z)\n - or x, (or y, (or x, z)) -> or y, (or x, z)","shortMessageHtmlLink":"Simplify patterns which are common in undef handling"}},{"before":"6860b9483aa2dfa75962da2346f7a40fa797e62b","after":"2c604bfa8158428ed9a64330707f997530744b4f","ref":"refs/heads/main","pushedAt":"2024-05-11T00:57:22.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"check_refine_z3: catch z3::exception\n\nSome large tests (such as gcc.dg/20020426-2.c) throw a z3::exception\nwhen building the solver because it runs out of memory (I have a 15GB\nmemory limit on my test machine). Report this as a normal resource\nexhaustion instead of terminating with an unhandled exception.","shortMessageHtmlLink":"check_refine_z3: catch z3::exception"}},{"before":"c2cceb1c914cd7db4d0546960abd8957514cf52f","after":"6860b9483aa2dfa75962da2346f7a40fa797e62b","ref":"refs/heads/main","pushedAt":"2024-05-11T00:56:45.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Change how uninit is handled\n\nUse of uninitialized bits is now generally allowed, but it is UB\nto load or store through a pointer with uninitialized bits, or to\nperform a conditional branch where the condition is uninitialized.","shortMessageHtmlLink":"Change how uninit is handled"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAErj0e4QA","startCursor":null,"endCursor":null}},"title":"Activity ยท kristerw/smtgcc"}