{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":357725653,"defaultBranch":"main","name":"regalloc2","ownerLogin":"bytecodealliance","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2021-04-14T00:30:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54038801?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1714502924.0","currentOid":""},"activityList":{"items":[{"before":"9c9157b3ca463f572ec113a93f34112f02c66a22","after":null,"ref":"refs/heads/revert-156-pub-moves","pushedAt":"2024-04-30T18:48:44.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"}},{"before":"29fc924e04a84b071af3b57a4b81f0b58269fe6f","after":"b13cda1498cb001ff0cbb831e8b1d37137ad18e4","ref":"refs/heads/main","pushedAt":"2024-04-30T18:48:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Revert \"Make parallel-moves resolver available publicly\" (#175)\n\nReverts bytecodealliance/regalloc2#156\r\n\r\nWe never used this functionality in Cranelift. When we tried, we\r\ndiscovered that's it's pretty tricky to use correctly outside of the\r\nspecific context it was written for in RA2, and then we found out that\r\nwe didn't need it at all. So let's revert making it public.","shortMessageHtmlLink":"Revert \"Make parallel-moves resolver available publicly\" (#175)"}},{"before":"35af05ca487d7f268bb6e08ce3c7e3c3ffd1d736","after":"9c9157b3ca463f572ec113a93f34112f02c66a22","ref":"refs/heads/revert-156-pub-moves","pushedAt":"2024-04-30T18:45:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Revert \"Make parallel-moves resolver available publicly (#156)\"\n\nThis reverts commit 69dba4a8b04c044b5c23aeea3be7648dc7d7d980.\n\nWe never used this functionality in Cranelift. When we tried, we\ndiscovered that's it's pretty tricky to use correctly outside of the\nspecific context it was written for in RA2, and then we found out that\nwe didn't need it at all. So let's revert making it public.","shortMessageHtmlLink":"Revert \"Make parallel-moves resolver available publicly (#156)\""}},{"before":"dee88472d20141a52deb58af9a29ce8e98343d51","after":"35af05ca487d7f268bb6e08ce3c7e3c3ffd1d736","ref":"refs/heads/revert-156-pub-moves","pushedAt":"2024-04-30T18:44:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Revert \"Make parallel-moves resolver available publicly (#156)\"\n\nThis reverts commit 69dba4a8b04c044b5c23aeea3be7648dc7d7d980.","shortMessageHtmlLink":"Revert \"Make parallel-moves resolver available publicly (#156)\""}},{"before":"05ebc67d46c480463446393656493bd141f59d05","after":null,"ref":"refs/heads/update-cargo-deny","pushedAt":"2024-04-30T18:27:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"}},{"before":"1628818aed380bff57d19f85f8b86d4df19ab46e","after":"29fc924e04a84b071af3b57a4b81f0b58269fe6f","ref":"refs/heads/main","pushedAt":"2024-04-30T18:27:15.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Upgrade cargo-deny to 0.14.22 (#176)\n\nI think we need at least version 0.13.9, which includes\r\nhttps://github.com/EmbarkStudios/cargo-deny/pull/513 to fix checking for\r\nyanked crates with the new sparse crates.io index format. I'm upgrading\r\nto the newest release just in case there's anything else we might want.","shortMessageHtmlLink":"Upgrade cargo-deny to 0.14.22 (#176)"}},{"before":null,"after":"05ebc67d46c480463446393656493bd141f59d05","ref":"refs/heads/update-cargo-deny","pushedAt":"2024-04-30T18:20:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Upgrade cargo-deny to 0.14.22\n\nI think we need at least version 0.13.9, which includes\nhttps://github.com/EmbarkStudios/cargo-deny/pull/513 to fix checking for\nyanked crates with the new sparse crates.io index format. I'm upgrading\nto the newest release just in case there's anything else we might want.","shortMessageHtmlLink":"Upgrade cargo-deny to 0.14.22"}},{"before":null,"after":"dee88472d20141a52deb58af9a29ce8e98343d51","ref":"refs/heads/revert-156-pub-moves","pushedAt":"2024-04-30T01:47:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Revert \"Make parallel-moves resolver available publicly (#156)\"\n\nThis reverts commit 69dba4a8b04c044b5c23aeea3be7648dc7d7d980.","shortMessageHtmlLink":"Revert \"Make parallel-moves resolver available publicly (#156)\""}},{"before":"ea86b8740f427a4e20f71e80727ff18985ae8f11","after":"1628818aed380bff57d19f85f8b86d4df19ab46e","ref":"refs/heads/main","pushedAt":"2024-03-10T23:53:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"early break in cfg.rs (#174)","shortMessageHtmlLink":"early break in cfg.rs (#174)"}},{"before":"98fbea5bac712a955ed478d5527f6896b65a7d18","after":"ea86b8740f427a4e20f71e80727ff18985ae8f11","ref":"refs/heads/main","pushedAt":"2023-12-06T23:09:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Allow fixed-early-def and fixed-late-use constraints (#168)\n\nThese are useful to model fixed registers which should not be reused for\r\nother uses/defs. These were disallowed in #54, but this was too\r\nconservative.\r\n\r\nFundamentally, the only situation where a preg can be used in multiple\r\nfixed constraints within a single instruction is with an early-use and a\r\nlate-def. Anything else is a user error because the live ranges will\r\noverlap.\r\n\r\nAs such this PR relaxes the operand rewrite from #54 to only apply in\r\nthis specific situation. Fixed-late-use and fixed-early-def operands are\r\nleft unchanged.","shortMessageHtmlLink":"Allow fixed-early-def and fixed-late-use constraints (#168)"}},{"before":"8eae90153534af19cff7416365f06b42838a490e","after":"98fbea5bac712a955ed478d5527f6896b65a7d18","ref":"refs/heads/main","pushedAt":"2023-12-05T16:43:30.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Remove support for backwards `InstRange` (#169)\n\nThese are not needed except for one place in live range calculation\r\nwhere we can use a reversed iterator instead.","shortMessageHtmlLink":"Remove support for backwards InstRange (#169)"}},{"before":"d0e5ccacb5d6ecb4433341fbde121ba612530d66","after":"8eae90153534af19cff7416365f06b42838a490e","ref":"refs/heads/main","pushedAt":"2023-12-05T16:41:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"fix typo (#167)","shortMessageHtmlLink":"fix typo (#167)"}},{"before":"5d79e12d0a93b10fc181f4da409b4671dd365228","after":"d0e5ccacb5d6ecb4433341fbde121ba612530d66","ref":"refs/heads/main","pushedAt":"2023-12-05T16:40:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Correct a typo in serialize.rs (#162)","shortMessageHtmlLink":"Correct a typo in serialize.rs (#162)"}},{"before":"00dc3320eaa94bd3f37ad0ab55ffbb2919e25475","after":"5d79e12d0a93b10fc181f4da409b4671dd365228","ref":"refs/heads/main","pushedAt":"2023-10-16T16:12:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Update hashbrown to 0.14 (#164)","shortMessageHtmlLink":"Update hashbrown to 0.14 (#164)"}},{"before":"4777ec92df3b4e6f5f354af462f254630b70641e","after":"00dc3320eaa94bd3f37ad0ab55ffbb2919e25475","ref":"refs/heads/main","pushedAt":"2023-10-06T16:34:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Move the split point to the first fixed use (#165)\n\nAddress https://github.com/bytecodealliance/wasmtime/issues/7147 by\r\nmoving the bundle split point to the first fixed use found after the\r\nsuggested split point. This implementation only considers the first\r\nliverange that contains the split point, so there's room for\r\nimprovement.\r\n\r\nThe intent with this change is to not artificially constrain the bundle\r\nproduced after the split point by leaving unconstrained uses that could\r\nbe kept above the split point. Splitting at the first fixed use after\r\nthe suggested split point should produce a less constrained upper\r\nbundle, which will be easier to allocate.\r\n\r\nOne interesting effect from the example in the issue linked above is\r\nthat the change of split point alone does not fix the problem, as we\r\nalso trim the space around the split point into the spill bundle. Doing\r\nthis creates the same splits that we would have arrived at before, as\r\nthe second load doesn't use `v1` all and thus that region is trimmed to\r\nthe spill bundle. I addressed that by disabling trimming when the split\r\npoint is advanced, under the assumption that the point moving means that\r\nyou probably want to give the allocator another chance with both\r\nbundles.\r\n\r\nI'm not sure that this implementation is the right path forward\r\ncurrently, as it might be better to perform the heuristic outside of the\r\ncall to `split_and_requeue_bundle`, allowing us the flexibility to make\r\nthe decision about trimming at that point.","shortMessageHtmlLink":"Move the split point to the first fixed use (#165)"}},{"before":"7d90ca9396832ee9efe56180e1b27ca5f7072d8e","after":"4777ec92df3b4e6f5f354af462f254630b70641e","ref":"refs/heads/main","pushedAt":"2023-10-05T00:51:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Bump to version 0.9.3 (#166)\n\nThe current change set has been baking for a while, and it removes a lot\r\nof moves in the cranelift test suite.","shortMessageHtmlLink":"Bump to version 0.9.3 (#166)"}},{"before":null,"after":"0ed8c1bab7c618b00bed114ee128ba6a638fa9b8","ref":"refs/heads/trevor/remove-rme","pushedAt":"2023-09-08T03:02:59.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Avoid moves to spilled liveranges by writing the spill slot at defs","shortMessageHtmlLink":"Avoid moves to spilled liveranges by writing the spill slot at defs"}},{"before":"6ba8cab08e903cd2134a6b7d8cf874af7bb42df2","after":"7d90ca9396832ee9efe56180e1b27ca5f7072d8e","ref":"refs/heads/main","pushedAt":"2023-08-14T18:24:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Remove unused function generator options (#163)\n\n* Remove unused function generation options\r\n\r\n* Avoid uses of `Vec::last_mut`","shortMessageHtmlLink":"Remove unused function generator options (#163)"}},{"before":"bcaaf390971f5a0b2fff355e13186ef357101a77","after":"6ba8cab08e903cd2134a6b7d8cf874af7bb42df2","ref":"refs/heads/main","pushedAt":"2023-08-10T04:43:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Propagate the cached fixed-def flag when merging bundles (#161)\n\n* Propagate the cached fixed-def flag when merging bundles\r\n\r\nThis was missed in #155, and previously wasn't an issue since such\r\nbundles were never merged.\r\n\r\n* Revert \"Revert \"Allow merging bundles that have a fixed-reg def (#155)\" (#160)\"\r\n\r\nThis reverts commit 783ba476ab786f7a79241bd19c660e8536c2a9d0.","shortMessageHtmlLink":"Propagate the cached fixed-def flag when merging bundles (#161)"}},{"before":"17d621bf89a2b019cd00f0c5178018e49c005e56","after":"bcaaf390971f5a0b2fff355e13186ef357101a77","ref":"refs/heads/main","pushedAt":"2023-08-09T16:17:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Simplify stack-to-stack moves (#159)\n\n* Simplify parallel stack-to-stack moves\r\n\r\nMost of the changes here are simply refactoring.\r\n\r\nResolving stack-to-stack moves first fills in the scratch register for\r\nthe parallel moves, if one is needed. So we can split that into two\r\nphases, inlining the `stack_to_stack` function which was not used\r\nanywhere else. That lets us establish the invariant that we only\r\ncontinue into the second phase if there is at least one stack-to-stack\r\nmove.\r\n\r\nBecause `compute` consumes `self`, we know that the lazily-allocated\r\nstack-to-stack scratch register has not been allocated yet at entry to\r\nthe loop, but because the loop only runs if there are stack-to-stack\r\nmoves, we know the scratch register will definitely be allocated. So we\r\ncan remove the corresponding state from the `MoveVecWithScratch` struct\r\nand keep it in locals with shorter names instead, eagerly initialized\r\nbefore the start of the loop.\r\n\r\nThe above changes should have no effect on the output. However I then\r\nadded state tracking for whether the scratch register or the save slot\r\nalready contain the right value and therefore don't need to be the\r\ntarget of another move. This should remove the need for the\r\nredundant-move eliminator to clean up after parallel moves.\r\n\r\nMy first approach assumed the correct value was in exactly one of these\r\nplaces, but both allocations can be correct, and we can save more copies\r\nby acknowledging that.\r\n\r\n* Remove MoveAndScratchResolver::new\r\n\r\nThis struct now contains exactly the fields whose values are passed to\r\n`new`. I feel it's better API design in this case to use the named\r\nfields than to expect callers to keep track of the positional arguments\r\nto the `new` method.\r\n\r\n* Clarify relationship between save_slot/scratch_dirty\r\n\r\n* Review comments: factor out is_stack_to_stack_move\r\n\r\n* Remove \"victim\" terminology from public API\r\n\r\nAlso update more comments I missed.","shortMessageHtmlLink":"Simplify stack-to-stack moves (#159)"}},{"before":"783ba476ab786f7a79241bd19c660e8536c2a9d0","after":"17d621bf89a2b019cd00f0c5178018e49c005e56","ref":"refs/heads/main","pushedAt":"2023-08-08T22:21:01.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"jameysharp","name":"Jamey Sharp","path":"/jameysharp","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/865272?s=80&v=4"},"commit":{"message":"Only sort parallel-moves list once (#157)\n\n* Only sort parallel-moves list once\r\n\r\nChecking whether sources and dests overlap can use the same sort order\r\nthat's needed later, as long as the check is updated to match.\r\n\r\n* Review comments, and defer overlap check\r\n\r\nNow that we're sorting by `dst` from the start, the overlap check can\r\nwait until after we remove self-moves. If the only overlaps are\r\nself-moves we don't need the full cycle-resolution machinery.","shortMessageHtmlLink":"Only sort parallel-moves list once (#157)"}},{"before":"52bf322832b57b6103a06df6d4df5c6d59f1540a","after":"783ba476ab786f7a79241bd19c660e8536c2a9d0","ref":"refs/heads/main","pushedAt":"2023-08-08T00:55:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Revert \"Allow merging bundles that have a fixed-reg def (#155)\" (#160)\n\nThis reverts commit 1f083421e64eada3e35ae21a276f0df02efd1aaf.","shortMessageHtmlLink":"Revert \"Allow merging bundles that have a fixed-reg def (#155)\" (#160)"}},{"before":null,"after":"5cf771ab6f3456511178944fac69046a90af4665","ref":"refs/heads/revert-155-adjust-ramge-start","pushedAt":"2023-08-08T00:21:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"elliottt","name":"Trevor Elliott","path":"/elliottt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22708?s=80&v=4"},"commit":{"message":"Revert \"Allow merging bundles that have a fixed-reg def (#155)\"\n\nThis reverts commit 1f083421e64eada3e35ae21a276f0df02efd1aaf.","shortMessageHtmlLink":"Revert \"Allow merging bundles that have a fixed-reg def (#155)\""}},{"before":"69dba4a8b04c044b5c23aeea3be7648dc7d7d980","after":"52bf322832b57b6103a06df6d4df5c6d59f1540a","ref":"refs/heads/main","pushedAt":"2023-08-07T20:29:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Simplify parallel-moves state machine (#158)\n\n* Simplify parallel-moves state machine\r\n\r\nUsing a three-state enum instead of visited/onstack bools makes the\r\nstate transitions easier to reason about.\r\n\r\nAlso note that the behavior was the same for two cases (\"there is no\r\nnext move\", and \"the next move has already been emitted\"), so I merged\r\nthem.\r\n\r\nThis commit also cuts memory usage in half for the must_come_before\r\narray and for the visited/onstack arrays.\r\n\r\n* Simplify cycle-handling in parallel moves\r\n\r\nThe loop as previously written was guaranteed to run at least once and\r\nthe first iteration was quite different than later iterations, so peel\r\noff the first iteration.\r\n\r\nThat in turn made it clear that scratch_src is always set, which allowed\r\nsimplifying emitting the final scratch-register move.\r\n\r\nOne thing which was tricky is that if the existing implementation was\r\nhanded a move of an allocation into itself, then it would previously\r\nemit a move from that allocation to the scratch register followed by a\r\nmove from the scratch register back to the allocation. Peeling the first\r\niteration out of the loop made it a little trickier to ensure that the\r\nloop didn't run at all in that case, but also emitting any moves is a\r\nsilly result.\r\n\r\nSo instead I've filtered out self-moves before starting the depth-first\r\ntraversal. Ideally we'd do this before checking whether the sources\r\noverlap the destinations, since if the only overlaps are self-moves then\r\nwe can just return the original move list. However it should happen\r\nafter the debug assertion that there is at most one writer to each\r\nallocation, since the input is malformed if there's both a self-move and\r\nanother move to the same allocation. After #157 lands this can be\r\nre-ordered.\r\n\r\nBecause I'm filtering out self-moves and then running the depth-first\r\ntraversal, if all of the moves were self-moves then we may try to\r\ntraverse an empty graph. This was easily fixed by not blindly pushing\r\nindices onto the stack, and instead letting the existing check for\r\nun-visited moves fire because the stack is empty.\r\n\r\n* Use more idiomatic while-let loops","shortMessageHtmlLink":"Simplify parallel-moves state machine (#158)"}},{"before":"1f083421e64eada3e35ae21a276f0df02efd1aaf","after":"69dba4a8b04c044b5c23aeea3be7648dc7d7d980","ref":"refs/heads/main","pushedAt":"2023-08-01T23:16:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Make parallel-moves resolver available publicly (#156)\n\nWe want to also use this functionality in ABI glue in Cranelift.","shortMessageHtmlLink":"Make parallel-moves resolver available publicly (#156)"}},{"before":"bf1423b22cf9a000b6e0d0e0fb184ef035e6608a","after":"1f083421e64eada3e35ae21a276f0df02efd1aaf","ref":"refs/heads/main","pushedAt":"2023-07-16T00:28:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Allow merging bundles that have a fixed-reg def (#155)\n\nThe previous check was overly conservative: we only need to reject\r\nbundles that have multiple uses in the same instruction.\r\n\r\nThis can only happen with an early use and a late def, so we round\r\nthe start of each range containing a fixed def up to the start of\r\nits instruction to detect overlaps.","shortMessageHtmlLink":"Allow merging bundles that have a fixed-reg def (#155)"}},{"before":"09371f0b7b5a51e7846b8a3f53969330b4aa1f60","after":"bf1423b22cf9a000b6e0d0e0fb184ef035e6608a","ref":"refs/heads/main","pushedAt":"2023-07-14T00:06:28.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Version bump to 0.9.2. (#153)","shortMessageHtmlLink":"Version bump to 0.9.2. (#153)"}},{"before":"21644c57b3146550e205709e659b0c57ea184c50","after":"09371f0b7b5a51e7846b8a3f53969330b4aa1f60","ref":"refs/heads/main","pushedAt":"2023-07-13T22:53:09.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Run the fuzzer with all register classes (#152)\n\n* Run the fuzzer with all register classes\r\n\r\n* Don't share spill slots between register classes\r\n\r\nThe parallel move resolvers runs separately for each register class and\r\ncan't handle parallel moves involving a single stack slot used by two\r\nregister classes.","shortMessageHtmlLink":"Run the fuzzer with all register classes (#152)"}},{"before":"b89f441641ce57d47ff00d62f679799b54e30d7e","after":"21644c57b3146550e205709e659b0c57ea184c50","ref":"refs/heads/main","pushedAt":"2023-07-12T23:40:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Avoid generating the state in the check if logging is disabled (#151)\n\nThis significantly improves the performance of the checker when trace\r\nlogging is not enabled.","shortMessageHtmlLink":"Avoid generating the state in the check if logging is disabled (#151)"}},{"before":"4b136d622f72164cf77858f9cbb461aa867a79f3","after":"b89f441641ce57d47ff00d62f679799b54e30d7e","ref":"refs/heads/main","pushedAt":"2023-07-12T20:40:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Check constraints for Def operands in the checker (#150)\n\nThis was previously skipped: only Use operands were checked to ensure\r\nthey had a valid allocation for their constraint.\r\n\r\nNo new fuzzbugs found, I just noticed this while looking over the\r\nchecker.","shortMessageHtmlLink":"Check constraints for Def operands in the checker (#150)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEPlRbFAA","startCursor":null,"endCursor":null}},"title":"Activity ยท bytecodealliance/regalloc2"}