{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":518879987,"defaultBranch":"master","name":"Tinyrossa","ownerLogin":"janvrany","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2022-07-28T14:31:31.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/82951?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1725400039.0","currentOid":""},"activityList":{"items":[{"before":"acda43b41fc40006f1e800aa20e2384d7e13fbd0","after":null,"ref":"refs/heads/jv/devel","pushedAt":"2024-09-03T21:47:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"040251c864566930822d9b104d301ebb384eb640","after":"acda43b41fc40006f1e800aa20e2384d7e13fbd0","ref":"refs/heads/devel","pushedAt":"2024-09-03T21:46:43.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Add `TRSymbol >> size`\n\nSymbol's \"size\" is number of bytes the corresponding value occupies in\nthe memory - for example for function symbols this is the size of\nfunctions' code.","shortMessageHtmlLink":"Add TRSymbol >> size"}},{"before":null,"after":"acda43b41fc40006f1e800aa20e2384d7e13fbd0","ref":"refs/heads/jv/devel","pushedAt":"2024-09-03T21:46:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Add `TRSymbol >> size`\n\nSymbol's \"size\" is number of bytes the corresponding value occupies in\nthe memory - for example for function symbols this is the size of\nfunctions' code.","shortMessageHtmlLink":"Add TRSymbol >> size"}},{"before":"97bf98c6c91afdfc7419f8616dff2e3db0a83933","after":null,"ref":"refs/heads/pr/riscv-implement-a2x-idiv-and-ldiv-evaluators","pushedAt":"2024-09-03T20:12:35.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"f9b0872263fb6750c02aa6b67570470c03d63d36","after":"8f383b86d6b9825fe6eb18dcfa43b7b91e0e3c36","ref":"refs/heads/master","pushedAt":"2024-09-03T20:12:34.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #56 from janvrany/pr/riscv-implement-a2x-idiv-and-ldiv-evaluators\n\nRISC-V: implement `a2?`, `idiv` and `ldiv` evaluators","shortMessageHtmlLink":"Merge pull request #56 from janvrany/pr/riscv-implement-a2x-idiv-and-…"}},{"before":"471552c6e4c9a2b1456a84888a8c9f78e87a3151","after":null,"ref":"refs/heads/pr/randomize-qemu-debug-stub-port","pushedAt":"2024-09-03T20:09:01.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"12ff5eac82c0b398eecee31582b1aa27533db179","after":"f9b0872263fb6750c02aa6b67570470c03d63d36","ref":"refs/heads/master","pushedAt":"2024-09-03T20:09:00.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #55 from janvrany/pr/randomize-qemu-debug-stub-port\n\nRandomize port number for QEMU's debug stub","shortMessageHtmlLink":"Merge pull request #55 from janvrany/pr/randomize-qemu-debug-stub-port"}},{"before":null,"after":"97bf98c6c91afdfc7419f8616dff2e3db0a83933","ref":"refs/heads/pr/riscv-implement-a2x-idiv-and-ldiv-evaluators","pushedAt":"2024-09-03T20:04:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RISC-V: implement `idiv` and `ldiv` evaluators","shortMessageHtmlLink":"RISC-V: implement idiv and ldiv evaluators"}},{"before":null,"after":"471552c6e4c9a2b1456a84888a8c9f78e87a3151","ref":"refs/heads/pr/randomize-qemu-debug-stub-port","pushedAt":"2024-09-03T19:58:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Randomize port number for QEMU's debug stub\n\nThis commit makes TCP port to use for QEMU's debug stub random, using\ndisjoint ranges on Smalltalk/X and Pharo. This allows one to run tests\non both in parallel.","shortMessageHtmlLink":"Randomize port number for QEMU's debug stub"}},{"before":"111c438b8882e53205bbff5eb6d579e75abaae1a","after":null,"ref":"refs/heads/pr/misc-improvements-11","pushedAt":"2024-09-03T19:51:46.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"5562067cb246ff5c22397d2397312a0e997292fb","after":"12ff5eac82c0b398eecee31582b1aa27533db179","ref":"refs/heads/master","pushedAt":"2024-09-03T19:51:44.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #54 from janvrany/pr/misc-improvements-11\n\nMisc improvements 11","shortMessageHtmlLink":"Merge pull request #54 from janvrany/pr/misc-improvements-11"}},{"before":null,"after":"111c438b8882e53205bbff5eb6d579e75abaae1a","ref":"refs/heads/pr/misc-improvements-11","pushedAt":"2024-09-03T19:32:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Add `TRRegisterMappedSymbol >> asAcDSLOperand`","shortMessageHtmlLink":"Add TRRegisterMappedSymbol >> asAcDSLOperand"}},{"before":"a1b97f007a1b50d93ec802d5aeb23de01a9fd119","after":null,"ref":"refs/heads/pr/fix-rlsra-for-intervals-of-length-1","pushedAt":"2024-08-16T10:48:52.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":null,"after":"a1b97f007a1b50d93ec802d5aeb23de01a9fd119","ref":"refs/heads/pr/fix-rlsra-for-intervals-of-length-1","pushedAt":"2024-08-16T10:48:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RLSRA: fix edge case when (virtual) register is only defd but not used\n\nConsider following - somewhat pathological - TRIL fragment:\n\n N...\n N004 treetop\n N003 iadd\n N001 iload 'x'\n N002 iload 'y'\n N...\n\nsuch that the value of the `iadd` node (`N003`) is never used. The iadd\nnode is compiled to (say) something like:\n\n addi {vr003}, {vr001}, {vr002}\n\nThis instruction defines (assigns) a virtual register `{vr003}` but\nsince its value is never used, the interval for `{vr003}` of length 1\nand such interval was *not* created by interval splitting.\n\nNow consider even trickier example:\n\n N...\n N004 treetop\n N003 icall 'some_func'\n N...\n\nsuch that value of the icall node (`N003`) is never used just like in\nprevious example (in other words: the code calls a function `some_func`\nbut does not use its return value - an entirely valid, if not common,\nsituation).\nHere, the call instruction does define (say) virtual register `{vr003}`\nby having a dependency of linkage-defined return register on `{vr003}`.\nBut since value of `{vr003}` is never used, there's no need to generate\nregister move from linkage-defined return register to `{vr003}`.\n\nThis commit fixes RLSRA for cases like these.","shortMessageHtmlLink":"RLSRA: fix edge case when (virtual) register is only defd but not used"}},{"before":"a1b97f007a1b50d93ec802d5aeb23de01a9fd119","after":null,"ref":"refs/heads/pr/fix-rlsra-for-intervals-of-length-1","pushedAt":"2024-08-16T10:48:43.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"8caa63f2003cbf0ad5a478bcf3e6070a8cb7069e","after":"5562067cb246ff5c22397d2397312a0e997292fb","ref":"refs/heads/master","pushedAt":"2024-08-16T10:48:41.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #53 from janvrany/pr/fix-rlsra-for-intervals-of-length-1\n\nFix RLSRA for intervals of length 1","shortMessageHtmlLink":"Merge pull request #53 from janvrany/pr/fix-rlsra-for-intervals-of-le…"}},{"before":null,"after":"a3d6f5345237d0f8d92248ebb6995bfde7e5a7e9","ref":"refs/heads/wip/vm-state","pushedAt":"2024-08-16T10:47:35.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"[NOT FOR UPSTREAM YET] Initial shot of generalized VM state\n\n...which may consist of VM stack and set of VM registers. This is a\npreparation for future \"vm state commit\" and \"vm state reload\".","shortMessageHtmlLink":"[NOT FOR UPSTREAM YET] Initial shot of generalized VM state"}},{"before":null,"after":"29a64733f5247d7e7f172f6a03bad4e969ff0883","ref":"refs/heads/wip/global-register-allocation","pushedAt":"2024-08-16T10:44:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Add liveness info\n\nThis commit add a `TRLiveness` object that keeps a liveness info of\nautomatics for particular basic block. It also provides `#compute:`\nmethod that computes (and assigns) liveness info given a CFG.","shortMessageHtmlLink":"Add liveness info"}},{"before":null,"after":"a1b97f007a1b50d93ec802d5aeb23de01a9fd119","ref":"refs/heads/pr/fix-rlsra-for-intervals-of-length-1","pushedAt":"2024-08-16T10:22:11.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RLSRA: fix edge case when (virtual) register is only defd but not used\n\nConsider following - somewhat pathological - TRIL fragment:\n\n N...\n N004 treetop\n N003 iadd\n N001 iload 'x'\n N002 iload 'y'\n N...\n\nsuch that the value of the `iadd` node (`N003`) is never used. The iadd\nnode is compiled to (say) something like:\n\n addi {vr003}, {vr001}, {vr002}\n\nThis instruction defines (assigns) a virtual register `{vr003}` but\nsince its value is never used, the interval for `{vr003}` of length 1\nand such interval was *not* created by interval splitting.\n\nNow consider even trickier example:\n\n N...\n N004 treetop\n N003 icall 'some_func'\n N...\n\nsuch that value of the icall node (`N003`) is never used just like in\nprevious example (in other words: the code calls a function `some_func`\nbut does not use its return value - an entirely valid, if not common,\nsituation).\nHere, the call instruction does define (say) virtual register `{vr003}`\nby having a dependency of linkage-defined return register on `{vr003}`.\nBut since value of `{vr003}` is never used, there's no need to generate\nregister move from linkage-defined return register to `{vr003}`.\n\nThis commit fixes RLSRA for cases like these.","shortMessageHtmlLink":"RLSRA: fix edge case when (virtual) register is only defd but not used"}},{"before":"69ed36a62d9992cbf5361a3c33a4c26b1f7515b7","after":"040251c864566930822d9b104d301ebb384eb640","ref":"refs/heads/devel","pushedAt":"2024-08-05T21:04:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Add example showing load and store to static symbol","shortMessageHtmlLink":"Add example showing load and store to static symbol"}},{"before":"858e9efc0cb1b3dd8354965eb6efd011fa4394ec","after":"888267610079f2a690710839fc180af901396e5a","ref":"refs/heads/pr/generate-position-independent-code","pushedAt":"2024-06-27T10:48:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RISC-V: change system linkage to compile relocatable calls\n\nThis commit changes `TRRV64GSystemLinkage` to compile relocatable calls\nusing pair of `auipc` and `jalr` with `R_RISCV_CALL_PLT` relocation.","shortMessageHtmlLink":"RISC-V: change system linkage to compile relocatable calls"}},{"before":null,"after":"858e9efc0cb1b3dd8354965eb6efd011fa4394ec","ref":"refs/heads/pr/generate-position-independent-code","pushedAt":"2024-06-24T12:35:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RISC-V: change system linkage to compile relocatable calls\n\nThis commit changes `TRRV64GSystemLinkage` to compile relocatable calls\nusing pair of `auipc` and `jalr` with `R_RISCV_CALL_PLT` relocation.","shortMessageHtmlLink":"RISC-V: change system linkage to compile relocatable calls"}},{"before":"e3543cbaea8cf93e79c434755455acb775deb435","after":null,"ref":"refs/heads/pr/fix-bug-in-RLSRA-live-interval-splitting","pushedAt":"2024-06-18T12:45:06.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"1ac545a63864064e6a7f16f9405a12da6f832de1","after":"8caa63f2003cbf0ad5a478bcf3e6070a8cb7069e","ref":"refs/heads/master","pushedAt":"2024-06-18T12:45:05.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #49 from janvrany/pr/fix-bug-in-RLSRA-live-interval-splitting\n\nRLSRA: correctly update register dependencies when splitting intervals","shortMessageHtmlLink":"Merge pull request #49 from janvrany/pr/fix-bug-in-RLSRA-live-interva…"}},{"before":"794071f8e92c1024a1cceb1cd53e39005eb81858","after":"e3543cbaea8cf93e79c434755455acb775deb435","ref":"refs/heads/pr/fix-bug-in-RLSRA-live-interval-splitting","pushedAt":"2024-06-18T12:36:52.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RLSRA: correctly update register dependencies when splitting intervals\n\nThis commit fixes horrible bug in RSLRA causing arguments not being\nmoved to argument registers when the original interval was split.\n\nThis was because when updating instructions to use newly create v-reg\nfor just-split interval, register dependencies were not updated,\nreferring to original v-reg.\n\nTo fix this problem, this commit introduces mew method -\n`#replaceVirtualRegistersUsing:` - to perform v-reg replacements which\nupdates not only register used by the instruction, but also those\nreferred-to in dependencies (and possibly other Tinyrossa-specific\nmetadata attached to an instruction).","shortMessageHtmlLink":"RLSRA: correctly update register dependencies when splitting intervals"}},{"before":null,"after":"794071f8e92c1024a1cceb1cd53e39005eb81858","ref":"refs/heads/pr/fix-bug-in-RLSRA-live-interval-splitting","pushedAt":"2024-06-18T11:37:45.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"RLSRA: correctly update register dependencies when splitting intervals\n\nThis commit fixes horrible bug in RSLRA causing arguments not being\nmoved to argument registers when the original interval was split.\n\nThis was because when updating instructions to use newly create v-reg\nfor just-split interval, register dependencies were not updated,\nreferring to original v-reg.\n\nTo fix this problem, this commit introduces mew method -\n`#replaceVirtualRegistersUsing:` - to perform v-reg replacements which\nupdates not only register used by the instruction, but also those\nreferred-to in dependencies (and possibly other Tinyrossa-specific\nmetadata attached to an instruction).","shortMessageHtmlLink":"RLSRA: correctly update register dependencies when splitting intervals"}},{"before":"ba6bfc2fff98b6da32a438b5ff26bb91587a55da","after":null,"ref":"refs/heads/pr/improve-register-allocation-part02","pushedAt":"2024-05-31T13:08:13.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}},{"before":"1e47ec171eab5409f32a052daa5b3746e070de46","after":"1ac545a63864064e6a7f16f9405a12da6f832de1","ref":"refs/heads/master","pushedAt":"2024-05-31T13:08:12.000Z","pushType":"pr_merge","commitsCount":13,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"Merge pull request #48 from janvrany/pr/improve-register-allocation-part02\n\nImprove register allocation (part 2)","shortMessageHtmlLink":"Merge pull request #48 from janvrany/pr/improve-register-allocation-p…"}},{"before":null,"after":"ba6bfc2fff98b6da32a438b5ff26bb91587a55da","ref":"refs/heads/pr/improve-register-allocation-part02","pushedAt":"2024-05-24T15:08:04.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"},"commit":{"message":"POWER: make parameter registers allocatable","shortMessageHtmlLink":"POWER: make parameter registers allocatable"}},{"before":"8c2352743cb991634f789c7db419032661896266","after":null,"ref":"refs/heads/pr/use-parametrized-tests","pushedAt":"2024-05-22T15:42:28.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"janvrany","name":"Jan Vraný","path":"/janvrany","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/82951?s=80&v=4"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wM1QyMTo0NzoxOS4wMDAwMDBazwAAAASsDZMe","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOS0wM1QyMTo0NzoxOS4wMDAwMDBazwAAAASsDZMe","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNS0yMlQxNTo0MjoyOC4wMDAwMDBazwAAAARRHhXE"}},"title":"Activity · janvrany/Tinyrossa"}