{"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":"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"}},{"before":"be540923c89af1bc08b738fab7f6454ae0556535","after":"c2cceb1c914cd7db4d0546960abd8957514cf52f","ref":"refs/heads/main","pushedAt":"2024-04-17T12:04:28.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":"Limit store traversal\n\nStore traversal is quadratic in the worst case with respect to\nthe number of stores. Place a limit on the number of iterations.","shortMessageHtmlLink":"Limit store traversal"}},{"before":"6e2351025978db7a321e08cd6044751690826be1","after":"be540923c89af1bc08b738fab7f6454ae0556535","ref":"refs/heads/main","pushedAt":"2024-04-17T12:02:27.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 for extra UB before retval and memory\n\nWe checked for incorrectly introduced UB last, as an extra UB that\ndoes not change the result (such as a signed integer overflow\nintroduced during vectorization) generally has a lower priority\nto fix compared to issues that do change the result. However,\nrecent changes to DCE may affect the solver results for all\nincorrectly introduced UB, even when the code generated by GCC\ndoes not. This leads to confusing reports of a retval/memory\ndifference when the issue is actually an extra UB.\n\nFix this by performing the UB check first.","shortMessageHtmlLink":"Check for extra UB before retval and memory"}},{"before":"8dcfc40fa80ffe71cbc06478ece49e9367cbf90c","after":"6e2351025978db7a321e08cd6044751690826be1","ref":"refs/heads/main","pushedAt":"2024-04-15T00:11:41.000Z","pushType":"push","commitsCount":10,"pusher":{"login":"kristerw","name":"Krister Walfridsson","path":"/kristerw","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3127667?s=80&v=4"},"commit":{"message":"Propagate \"always UB\" from predecessors","shortMessageHtmlLink":"Propagate \"always UB\" from predecessors"}},{"before":"364e4b09ebdad2b322b90f01e940d0897e2844a2","after":"8dcfc40fa80ffe71cbc06478ece49e9367cbf90c","ref":"refs/heads/main","pushedAt":"2024-04-04T09:52:34.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":"process_cfn_mask_load: consistency with process_load\n\nCall constrain_src_value and from_mem_repr in the same way as\nfor process_load.","shortMessageHtmlLink":"process_cfn_mask_load: consistency with process_load"}},{"before":"79db3abd527663bbbf4b387f4bc872161fd6b714","after":"364e4b09ebdad2b322b90f01e940d0897e2844a2","ref":"refs/heads/main","pushedAt":"2024-04-02T11:30:33.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":"Disable checking of CFN_LOOP_VECTORIZED\n\nIntroduce a global variable to control whether we should verify\nthat `tgt` is a refinement of `src` for both possible values of\nCFN_LOOP_VECTORIZED, defaulting to false.\n\nSetting this to true makes us check that tgt is a refinement of\nsrc for both possible values of CFN_LOOP_VECTORIZED. This slows\ndown the checking and reports issues for cases that are arguably\ncorrect (such as in gcc.c-torture/execute/pr94734.c where the\ntrue case has been changed from\n if (x == (i & 0x25))\n arr[y] = i;\nto\n _25 = &arr[y_12(D)];\n .MASK_STORE (_25, 32B, _2, i_17);\nwhich may result in invalid indexing for cases where\n x == (i & 0x25)\nis false, but would not be a problem after vectorization.","shortMessageHtmlLink":"Disable checking of CFN_LOOP_VECTORIZED"}},{"before":"1275947ba0f0775b6b020d72ae72ea853ca30a3d","after":"79db3abd527663bbbf4b387f4bc872161fd6b714","ref":"refs/heads/main","pushedAt":"2024-03-30T11:07:20.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":"constrain_src_value: remove undef handling","shortMessageHtmlLink":"constrain_src_value: remove undef handling"}},{"before":"895baf28bff506a583be7b058ebe395247dca114","after":"1275947ba0f0775b6b020d72ae72ea853ca30a3d","ref":"refs/heads/main","pushedAt":"2024-03-19T18:50:27.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":"Accessing through VAR_DECL is UB if the variable is not in scope","shortMessageHtmlLink":"Accessing through VAR_DECL is UB if the variable is not in scope"}},{"before":"9fcaed0c1af6fe594fee8caed9e79e320cbf0ca5","after":"895baf28bff506a583be7b058ebe395247dca114","ref":"refs/heads/main","pushedAt":"2024-03-13T12:21:22.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":"Report \"not implemented\" for vector types in clz, etc.\n\nReport \"not implemented\" instead of crashing or calculating an\nincorrect result for the process_cfn_ functions where we have\nnot implemented support for vectors.","shortMessageHtmlLink":"Report \"not implemented\" for vector types in clz, etc."}},{"before":"782b7de846f97deb35c6859a14e2c75827d9e9f1","after":"9fcaed0c1af6fe594fee8caed9e79e320cbf0ca5","ref":"refs/heads/main","pushedAt":"2024-03-07T19:47:42.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 constraining of initial state\n\nWe must constrain the initial values of variables and function\narguments for some types. For example, the initial value of\npointers cannot point to local memory.\n\nThis patch cleans up/improves the implementation:\n* Merges the handling of pointers, floating points, and Booleans into\n one function\n* We do not need to add the constraints to the target function\n* Booleans do not need to be constrained unless we care about ABI (that\n is, for smtgcc-tv) as GIMPLE only looks at one bit.","shortMessageHtmlLink":"Improve constraining of initial state"}},{"before":"a8922dc0ec2f9fd018b6959ff4e0a4f9419cf096","after":"782b7de846f97deb35c6859a14e2c75827d9e9f1","ref":"refs/heads/main","pushedAt":"2024-02-27T13:29:41.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":"Add missing includes","shortMessageHtmlLink":"Add missing includes"}},{"before":"9d319e9b22efed3bb3bf73e8cc94a5d5767a0c4e","after":"a8922dc0ec2f9fd018b6959ff4e0a4f9419cf096","ref":"refs/heads/main","pushedAt":"2024-02-27T10:13: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":"Add three recently reported bugs","shortMessageHtmlLink":"Add three recently reported bugs"}},{"before":"7acf1203f7163a5cf79aa2d5b3861a79c082c7a4","after":"9d319e9b22efed3bb3bf73e8cc94a5d5767a0c4e","ref":"refs/heads/main","pushedAt":"2024-02-20T20:43:27.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":"Improve memory address generation\n\nGenerate successive addresses as\n ptr + 1, ptr + 2, ptr + 3, ...\ninstead of\n ptr + 1, ptr + 1 + 1, ptr + 1 + 1 + 1, ...","shortMessageHtmlLink":"Improve memory address generation"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEhDjuTQA","startCursor":null,"endCursor":null}},"title":"Activity ยท kristerw/smtgcc"}