{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":387813979,"defaultBranch":"master","name":"gecko-dev","ownerLogin":"bytecodealliance","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2021-07-20T14:14:26.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54038801?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1722980119.0","currentOid":""},"activityList":{"items":[{"before":"56a85d2857e88b00ff2eed6b90ebd806fe63bead","after":null,"ref":"refs/heads/cfallin/fix-tableswitch","pushedAt":"2024-08-06T21:35: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":"d84423f45f1e318fb188c5ff65dc71b788d18673","after":"dc07fd26d11b4ccfbc82b35c4721f30696fe098d","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-08-06T21:35:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #57 from bytecodealliance/cfallin/fix-tableswitch\n\nPBL: fix specialization range on TableSwitch index.","shortMessageHtmlLink":"Merge pull request #57 from bytecodealliance/cfallin/fix-tableswitch"}},{"before":"03a809a810eec204b39fc4589358f632dfb57874","after":"56a85d2857e88b00ff2eed6b90ebd806fe63bead","ref":"refs/heads/cfallin/fix-tableswitch","pushedAt":"2024-08-06T21:12:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL: fix specialization range on TableSwitch index.\n\nWhen instructing weval to generate control flow with\nconstant-propagated indices for a TableSwitch, we need to give the\nproper range; `i - low` has range `0..=(high-low+1)`, not\n`low..=high` (i.e. it is shifted down by `low`). Also move the\nintrinsic into the not-out-of-bounds conditional to make the code a\nlittle clearer.","shortMessageHtmlLink":"PBL: fix specialization range on TableSwitch index."}},{"before":null,"after":"03a809a810eec204b39fc4589358f632dfb57874","ref":"refs/heads/cfallin/fix-tableswitch","pushedAt":"2024-08-06T20:20:12.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL: fix specialization range on TableSwitch index.\n\nWhen instructing weval to generate control flow with\nconstant-propagated indices for a TableSwitch, we need to give the\nproper range; `i - low` has range `0..=(high-low+1)`, not\n`low..=high` (i.e. it is shifted down by `low`). Also move the\nintrinsic into the not-out-of-bounds conditional to make the code a\nlittle clearer.","shortMessageHtmlLink":"PBL: fix specialization range on TableSwitch index."}},{"before":"32f3b681af27bb0781843c73c8b27aee4eeb1489","after":null,"ref":"refs/heads/cfallin/fix-more-conditionals","pushedAt":"2024-08-02T14:58:05.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":"b608f09321fc083f6f2659576f0f8215ce085a78","after":"d84423f45f1e318fb188c5ff65dc71b788d18673","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-08-02T14:58:03.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #56 from bytecodealliance/cfallin/fix-more-conditionals\n\nPBL+weval: fix a few more value-specialization cases on conditionals.","shortMessageHtmlLink":"Merge pull request #56 from bytecodealliance/cfallin/fix-more-conditi…"}},{"before":"d9f033ccb789fffbf48368aeeed5d55c328b3356","after":"32f3b681af27bb0781843c73c8b27aee4eeb1489","ref":"refs/heads/cfallin/fix-more-conditionals","pushedAt":"2024-08-02T04:03:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL+weval: fix a few more value-specialization cases on conditionals.\n\nWhen processed with wasm-opt, a few more conditionals have some\ninteresting optimizations that inhibit weval from deducing a constant PC\nunless we also value-specialized in these places.\n\nRebasing note: preparations-for-weval series rather than actual weval\npatch.","shortMessageHtmlLink":"PBL+weval: fix a few more value-specialization cases on conditionals."}},{"before":"cb747ed4c00af52f7f62c7a0d1dc8c02469fd4b1","after":"d9f033ccb789fffbf48368aeeed5d55c328b3356","ref":"refs/heads/cfallin/fix-more-conditionals","pushedAt":"2024-08-02T03:37:57.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL+weval: fix a few more value-specialization cases on conditionals.\n\nWhen processed with wasm-opt, a few more conditionals have some\ninteresting optimizations that inhibit weval from deducing a constant PC\nunless we also value-specialized in these places.\n\nRebasing note: preparations-for-weval series rather than actual weval\npatch.","shortMessageHtmlLink":"PBL+weval: fix a few more value-specialization cases on conditionals."}},{"before":"5df1f9059b456b5d329ebcf0126a114ae2b50277","after":"cb747ed4c00af52f7f62c7a0d1dc8c02469fd4b1","ref":"refs/heads/cfallin/fix-more-conditionals","pushedAt":"2024-08-02T03:34:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL+weval: fix a few more value-specialization cases on conditionals.\n\nWhen processed with wasm-opt, a few more conditionals have some\ninteresting optimizations that inhibit weval from deducing a constant PC\nunless we also value-specialized in these places.\n\nRebasing note: preparations-for-weval series rather than actual weval\npatch.","shortMessageHtmlLink":"PBL+weval: fix a few more value-specialization cases on conditionals."}},{"before":null,"after":"5df1f9059b456b5d329ebcf0126a114ae2b50277","ref":"refs/heads/cfallin/fix-more-conditionals","pushedAt":"2024-08-02T01:35:54.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL+weval: fix a few more value-specialization cases on conditionals.\n\nWhen processed with wasm-opt, a few more conditionals have some\ninteresting optimizations that inhibit weval from deducing a constant PC\nunless we also value-specialized in these places.\n\nRebasing note: preparations-for-weval series rather than actual weval\npatch.","shortMessageHtmlLink":"PBL+weval: fix a few more value-specialization cases on conditionals."}},{"before":"f5efca20e4035326e9c1052a28c38712ab140735","after":null,"ref":"refs/heads/cfallin/fix-saved-pc-for-ic-based-calls","pushedAt":"2024-07-31T17:28:16.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":"b44d44f8d7384b861ff4443a31ae5766129aa130","after":"b608f09321fc083f6f2659576f0f8215ce085a78","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-07-31T17:28:14.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #55 from bytecodealliance/cfallin/fix-saved-pc-for-ic-based-calls\n\nPBL: save PC in interpreter frame before all ICs.","shortMessageHtmlLink":"Merge pull request #55 from bytecodealliance/cfallin/fix-saved-pc-for…"}},{"before":"fb9637234288920e5d412e85dd93181ea38e8731","after":"f5efca20e4035326e9c1052a28c38712ab140735","ref":"refs/heads/cfallin/fix-saved-pc-for-ic-based-calls","pushedAt":"2024-07-31T16:43:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL: save PC in interpreter frame before all ICs.\n\nAs an optimization in \"specialized\" variants of the PBL interpreter,\nstores of the current PC to the PC slot in the interpreter frame are\nelided; otherwise, we have an extra store for every opcode, with quite\nsignificant overhead. (The native baseline compiler makes the same\noptimization choice, though in the native case, there is the\nprogrammatically-observable native return-address PC to indicate\nlocation at each frame on the stack.)\n\nWe need to store the PC into the interpreter frame whenever an exception\nmight be thrown, because the stack-walker will compare current PC in\neach frame against the try-notes to determine which try-blocks are in\nscoep and should catch the exception.\n\nThis store-elision optimization applies even before calls to IC chains,\neven though an IC might invoke arbitrarily complex behavior and throw an\nexception. Previously, we had supported this case by storing the PC\nstate only if the IC chain returns with an error code, before we\ndispatch to the `HandleException` path -- just in time.\n\nHowever, if the IC itself calls more deeply into some other code that\nmay throw an exception and perform its own unwind, our stack frame is\nobservable before we get a chance to fill in this state. So we need to\neagerly store PC into the frame every time before we call such an IC.\n\nThe canonical IC-site kind that should hit this problem is an actual\ncall opcode, and indeed this was the actual bug I observed; but to be\nsafe, let's store it prior to every IC site, because other ICs may have\nCacheIR that invokes other JS code in some case (it's better not to try\nto reason about this and rule out some cases -- too brittle).\n\nNote that the PBL *interpreter* always stores PC before ICs; this is one\nof the few cases where the \"specialized\" (wevaled) body explicitly\ndiverges for performance reasons. Hence jit-tests would not have caught\nit, because we rely on jit-testing the interpreter then trusting weval's\nsemantics-preserving transform (actually wevaling 10k unit-test files\nwould be prohibitively expensive). Let's go for correctness before\nperformance here and remove the divergence.\n\nDiscovered via a non-working `try` block in the StarlingMonkey\nintegration suite.","shortMessageHtmlLink":"PBL: save PC in interpreter frame before all ICs."}},{"before":"7d24061fe381e2160163ea9dcb645dbde0a1ebf5","after":null,"ref":"refs/heads/cfallin/fix-if-conversion-on-pbl-branches","pushedAt":"2024-07-31T16:42:35.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":"b7935befafe6c921fd7933ab4eeebbc5cbd8dc26","after":"b44d44f8d7384b861ff4443a31ae5766129aa130","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-07-31T16:42:33.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #54 from bytecodealliance/cfallin/fix-if-conversion-on-pbl-branches\n\nPBL/weval: value-specialize on two-way conditional inputs to avoid issues with if-conversion.","shortMessageHtmlLink":"Merge pull request #54 from bytecodealliance/cfallin/fix-if-conversio…"}},{"before":null,"after":"fb9637234288920e5d412e85dd93181ea38e8731","ref":"refs/heads/cfallin/fix-saved-pc-for-ic-based-calls","pushedAt":"2024-07-31T04:22:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL: save PC in interpreter frame before all ICs.\n\nAs an optimization in \"specialized\" variants of the PBL interpreter,\nstores of the current PC to the PC slot in the interpreter frame are\nelided; otherwise, we have an extra store for every opcode, with quite\nsignificant overhead. (The native baseline compiler makes the same\noptimization choice, though in the native case, there is the\nprogrammatically-observable native return-address PC to indicate\nlocation at each frame on the stack.)\n\nWe need to store the PC into the interpreter frame whenever an exception\nmight be thrown, because the stack-walker will compare current PC in\neach frame against the try-notes to determine which try-blocks are in\nscoep and should catch the exception.\n\nThis store-elision optimization applies even before calls to IC chains,\neven though an IC might invoke arbitrarily complex behavior and throw an\nexception. Previously, we had supported this case by storing the PC\nstate only if the IC chain returns with an error code, before we\ndispatch to the `HandleException` path -- just in time.\n\nHowever, if the IC itself calls more deeply into some other code that\nmay throw an exception and perform its own unwind, our stack frame is\nobservable before we get a chance to fill in this state. So we need to\neagerly store PC into the frame every time before we call such an IC.\n\nThe canonical IC-site kind that should hit this problem is an actual\ncall opcode, and indeed this was the actual bug I observed; but to be\nsafe, let's store it prior to every IC site, because other ICs may have\nCacheIR that invokes other JS code in some case (it's better not to try\nto reason about this and rule out some cases -- too brittle).\n\nNote that the PBL *interpreter* always stores PC before ICs; this is one\nof the few cases where the \"specialized\" (wevaled) body explicitly\ndiverges for performance reasons. Hence jit-tests would not have caught\nit, because we rely on jit-testing the interpreter then trusting weval's\nsemantics-preserving transform (actually wevaling 10k unit-test files\nwould be prohibitively expensive). Let's go for correctness before\nperformance here and remove the divergence.\n\nDiscovered via a non-working `try` block in the StarlingMonkey\nintegration suite.","shortMessageHtmlLink":"PBL: save PC in interpreter frame before all ICs."}},{"before":null,"after":"7d24061fe381e2160163ea9dcb645dbde0a1ebf5","ref":"refs/heads/cfallin/fix-if-conversion-on-pbl-branches","pushedAt":"2024-07-31T03:18:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"PBL/weval: value-specialize on two-way conditional inputs to avoid issues with if-conversion.\n\nweval processing requires that a conditional update of the constant\n\"specialization context\" PC value be written like\n\n```\nif (cond) {\n weval_update_context(pc1);\n pc = pc1;\n goto dispatch;\n} else {\n weval_update_context(pc2);\n pc = pc2;\n goto dispatch;\n}\n```\n\nHowever, LLVM is very smart (some would say too smart!), and in a recent\nperturbation of my build/debug environment, started if-converting this\nto\n\n```\nnext_pc = cond ? pc1 : pc2;\nweval_update_context(next_pc);\npc = next_pc;\ngoto dispatch;\n```\n\nThis is problematic because in the abstract interpretation, we merge two\n\"constant\" lattice values to the bottom element (\"runtime\") only; we\nhave no symbolic representation of the \"conditional\"/\"select\" value.\n\nSome attempts to prevent the if-conversion by altering one of the paths\n(with e.g. a `weval_assert_const32`) were not successful; really we\nshouldn't be depending on LLVM doing or not doing certain opts and\ngenerating a certain form of output only.\n\nRather, this PR updates the logic to use the same solution that\n`TableSwitch` (which is fundamentally value-dependent control flow)\nuses: invoke the weval intrinsic that \"splits\" the context on possible\nvalues (here `0` and `1` only). We can then constant-propagate the\n`select` (the ternary `?:` above) and recover\nstatically-constant-at-abstract-interpretation PC values and contexts.\n\nRebasing note: this should squash into the base \"PBL enhancements\"\nseries, not the weval-specific patch.","shortMessageHtmlLink":"PBL/weval: value-specialize on two-way conditional inputs to avoid is…"}},{"before":"4cd064193f9dc1d29e4647a576d9b69f670c423e","after":null,"ref":"refs/heads/cfallin/regenerate-aot-ics","pushedAt":"2024-07-26T23:41:20.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":"de2fc59f98ea74e13320ce3809e8faefdd69e8a8","after":"b7935befafe6c921fd7933ab4eeebbc5cbd8dc26","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-07-26T23:41:18.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #53 from bytecodealliance/cfallin/regenerate-aot-ics\n\nAOT ICs: rebuild entire corpus.","shortMessageHtmlLink":"Merge pull request #53 from bytecodealliance/cfallin/regenerate-aot-ics"}},{"before":"c1cb9d6f5cb2db582555f99599f5de69755d94ae","after":"4cd064193f9dc1d29e4647a576d9b69f670c423e","ref":"refs/heads/cfallin/regenerate-aot-ics","pushedAt":"2024-07-26T23:18:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"AOT ICs: rebuild entire corpus.\n\nIn the course of the 124..127 upgrade, some IC bodies became invalid\nbecause of altered signatures of CacheIR opcodes. Nominally this should\nbe fine in a system that never tries to execute such an invalid blob of\nbytecode. However, when we pre-weval all bodies in a weval build, we run\ninto invalid memory reads in the weval phase just as we would if we\ntried to execute the IC at runtime in the IC interpreter: fundamentally,\nthe corpus cannot have invalid bytecode in it. This PR thus removes the\nentire corpus and regenerates it:\n\n- Remove `js/src/ics/IC-*`\n- Build an engine with `--enable-aot-ics --enable-aot-ics-force\n --enable-aot-ics-enforce`\n- Run jit-tests (`./mach jit-test`) and jstests (`./mach jstests`) with\n `AOT_ICS_KEEP_GOING=1`\n- Use `js/src/ics/remove-duplicates.py` to remove duplicates among all\n the `IC-*` files in the gecko-dev root (jit-tests) and `js/src/tests`\n (jstests)\n- Put all of these files into `js/src/ics`\n\nNote for rebasing in the future: this should be squashed into the main\nAOT ICs commit.","shortMessageHtmlLink":"AOT ICs: rebuild entire corpus."}},{"before":"93d2fb68225b1d3ecbeb846afd84707744ad9b55","after":null,"ref":"refs/heads/cfallin/fix-aot-ics","pushedAt":"2024-07-26T23:17:33.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":"98caba9d050d8765d0e518b51a8100ab3541c264","after":"de2fc59f98ea74e13320ce3809e8faefdd69e8a8","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-07-26T23:17:32.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #52 from bytecodealliance/cfallin/fix-aot-ics\n\nFix AOT ICs: eagerly ensure JitZone is created.","shortMessageHtmlLink":"Merge pull request #52 from bytecodealliance/cfallin/fix-aot-ics"}},{"before":null,"after":"c1cb9d6f5cb2db582555f99599f5de69755d94ae","ref":"refs/heads/cfallin/regenerate-aot-ics","pushedAt":"2024-07-26T23:06:43.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"AOT ICs: rebuild entire corpus.\n\nIn the course of the 124..127 upgrade, some IC bodies became invalid\nbecause of altered signatures of CacheIR opcodes. Nominally this should\nbe fine in a system that never tries to execute such an invalid blob of\nbytecode. However, when we pre-weval all bodies in a weval build, we run\ninto invalid memory reads in the weval phase just as we would if we\ntried to execute the IC at runtime in the IC interpreter: fundamentally,\nthe corpus cannot have invalid bytecode in it. This PR thus removes the\nentire corpus and regenerates it:\n\n- Remove `js/src/ics/IC-*`\n- Build an engine with `--enable-aot-ics --enable-aot-ics-force\n --enable-aot-ics-enforce`\n- Run jit-tests (`./mach jit-test`) and jstests (`./mach jstests`) with\n `AOT_ICS_KEEP_GOING=1`\n- Use `js/src/ics/remove-duplicates.py` to remove duplicates among all\n the `IC-*` files in the gecko-dev root (jit-tests) and `js/src/tests`\n (jstests)\n- Put all of these files into `js/src/ics`\n\nNote for rebasing in the future: this should be squashed into the main\nAOT ICs commit.","shortMessageHtmlLink":"AOT ICs: rebuild entire corpus."}},{"before":null,"after":"93d2fb68225b1d3ecbeb846afd84707744ad9b55","ref":"refs/heads/cfallin/fix-aot-ics","pushedAt":"2024-07-26T22:49:21.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Fix AOT ICs: eagerly ensure JitZone is created.\n\nSomewhere in either the 124..127 rebase or in my move from local JS\nshell + wizer hack to StarlingMonkey, the way that Zone initialization\nhappens has changed and AOT ICs are no longer preloaded. It seems that\nthe lazy-init creation of the JitZone was only incidentally/fragilely\nbeing triggered during wizening before; this PR adds an explicit\ninvocation of `ensureJitZone` in the realm creation flow when the AOT\nICs feature is enabled.\n\nNote for future rebases: this should be consolidated into the main AOT\nICs patch.","shortMessageHtmlLink":"Fix AOT ICs: eagerly ensure JitZone is created."}},{"before":"627f9c03497667389f309f59e29d4abe335fda07","after":null,"ref":"refs/heads/cfallin/ff-127-weval","pushedAt":"2024-07-26T15:23:39.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":"259ead7401f7ff80fb9e4c8e7424cbf870e7e868","after":"98caba9d050d8765d0e518b51a8100ab3541c264","ref":"refs/heads/ff-127-0-2","pushedAt":"2024-07-26T15:23:37.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Merge pull request #51 from bytecodealliance/cfallin/ff-127-weval\n\nRebase AOT ICs, PBL updates, and weval support onto FF-127 branch.","shortMessageHtmlLink":"Merge pull request #51 from bytecodealliance/cfallin/ff-127-weval"}},{"before":"1ab2535542213a187b344c7d92f2a254e708ffb5","after":"627f9c03497667389f309f59e29d4abe335fda07","ref":"refs/heads/cfallin/ff-127-weval","pushedAt":"2024-07-25T21:09:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Add weval support to PBL.\n\nThis PR modifies the main PBL interpreter to support specialization by\npartial evaluation using the weval tool [1], producing compiled\nfunctions for JS function bodies and IC bodies.\n\nBecause partial evaluation allows us to reuse the interpreter body as\nthe definition of the compiler output, the changes are fairly\nself-contained: we \"register\" the \"specialization requests\" to create\nnew functions from the combination of the interpreter and some bytecode,\nand we use that specialized function when it exists.\n\nAs an optimization, we also modify the macros used in the interpreter\nbody to make use of some weval intrinsics, allowing weval to more\nefficiently support the operand stack and some other details. These\noptimizations are unnecessary for correctness, but provide much better\nperformance in some cases.\n\nThis PR, when used to perform ahead-of-time compilation, provides quite\nsignificant speedups over interpreted PBL:\n\n```plain\n generic interp old PBL new PBL wevaled PBL (this PR)\nRichards 166 214 263 729\nDeltaBlue 169 254 287 686\nCrypto 412 456 410 1255\nRayTrace 525 660 761 1315\nEarleyBoyer 728 941 1227 2561\nRegExp 271 301 358 461\nSplay 1262 1664 1889 3258\nNavierStokes 656 623 601 2255\nPdfJS 2182 2055 2423 5991\nMandreel 166 189 211 503\nGameboy 1357 1548 1552 4659\nCodeLoad 19417 18644 17350 17488\nBox2D 927 995 978 3745\n----\nGeomean 821 943 1039 2273\n```\n\n[1]: https://github.com/cfallin/weval","shortMessageHtmlLink":"Add weval support to PBL."}},{"before":"d514b5f6d7ddd51293836e2d512e74ccce4d043c","after":"1ab2535542213a187b344c7d92f2a254e708ffb5","ref":"refs/heads/cfallin/ff-127-weval","pushedAt":"2024-07-25T19:32:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Add weval support to PBL.\n\nThis PR modifies the main PBL interpreter to support specialization by\npartial evaluation using the weval tool [1], producing compiled\nfunctions for JS function bodies and IC bodies.\n\nBecause partial evaluation allows us to reuse the interpreter body as\nthe definition of the compiler output, the changes are fairly\nself-contained: we \"register\" the \"specialization requests\" to create\nnew functions from the combination of the interpreter and some bytecode,\nand we use that specialized function when it exists.\n\nAs an optimization, we also modify the macros used in the interpreter\nbody to make use of some weval intrinsics, allowing weval to more\nefficiently support the operand stack and some other details. These\noptimizations are unnecessary for correctness, but provide much better\nperformance in some cases.\n\nThis PR, when used to perform ahead-of-time compilation, provides quite\nsignificant speedups over interpreted PBL:\n\n```plain\n generic interp old PBL new PBL wevaled PBL (this PR)\nRichards 166 214 263 729\nDeltaBlue 169 254 287 686\nCrypto 412 456 410 1255\nRayTrace 525 660 761 1315\nEarleyBoyer 728 941 1227 2561\nRegExp 271 301 358 461\nSplay 1262 1664 1889 3258\nNavierStokes 656 623 601 2255\nPdfJS 2182 2055 2423 5991\nMandreel 166 189 211 503\nGameboy 1357 1548 1552 4659\nCodeLoad 19417 18644 17350 17488\nBox2D 927 995 978 3745\n----\nGeomean 821 943 1039 2273\n```\n\n[1]: https://github.com/cfallin/weval","shortMessageHtmlLink":"Add weval support to PBL."}},{"before":"e1f70ba56d805c279ab508e1e94b43d7e39116a6","after":"d514b5f6d7ddd51293836e2d512e74ccce4d043c","ref":"refs/heads/cfallin/ff-127-weval","pushedAt":"2024-07-25T19:03:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"cfallin","name":"Chris Fallin","path":"/cfallin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/216148?s=80&v=4"},"commit":{"message":"Add weval support to PBL.\n\nThis PR modifies the main PBL interpreter to support specialization by\npartial evaluation using the weval tool [1], producing compiled\nfunctions for JS function bodies and IC bodies.\n\nBecause partial evaluation allows us to reuse the interpreter body as\nthe definition of the compiler output, the changes are fairly\nself-contained: we \"register\" the \"specialization requests\" to create\nnew functions from the combination of the interpreter and some bytecode,\nand we use that specialized function when it exists.\n\nAs an optimization, we also modify the macros used in the interpreter\nbody to make use of some weval intrinsics, allowing weval to more\nefficiently support the operand stack and some other details. These\noptimizations are unnecessary for correctness, but provide much better\nperformance in some cases.\n\nThis PR, when used to perform ahead-of-time compilation, provides quite\nsignificant speedups over interpreted PBL:\n\n```plain\n generic interp old PBL new PBL wevaled PBL (this PR)\nRichards 166 214 263 729\nDeltaBlue 169 254 287 686\nCrypto 412 456 410 1255\nRayTrace 525 660 761 1315\nEarleyBoyer 728 941 1227 2561\nRegExp 271 301 358 461\nSplay 1262 1664 1889 3258\nNavierStokes 656 623 601 2255\nPdfJS 2182 2055 2423 5991\nMandreel 166 189 211 503\nGameboy 1357 1548 1552 4659\nCodeLoad 19417 18644 17350 17488\nBox2D 927 995 978 3745\n----\nGeomean 821 943 1039 2273\n```\n\n[1]: https://github.com/cfallin/weval","shortMessageHtmlLink":"Add weval support to PBL."}},{"before":"1a0a4f8f398a588753b167e8ee5f7dc3ad6a38ca","after":"1742cb66adb0618f221b6adc48192b0aeae0f888","ref":"refs/heads/jake/fastly/ff-128-0-2-patches","pushedAt":"2024-07-25T07:53:37.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"JakeChampion","name":"Jake Champion","path":"/JakeChampion","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1569131?s=80&v=4"},"commit":{"message":"PBL: disable portable baseline tier for async functions for now. (#39)\n\nWe have observed some issues that are possibly related to these, and\nasync resume is still not supported in PBL in any case; let's disable\nthis for now to see if it addresses immediate issues.","shortMessageHtmlLink":"PBL: disable portable baseline tier for async functions for now. (#39)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEk4zUpAA","startCursor":null,"endCursor":null}},"title":"Activity · bytecodealliance/gecko-dev"}