{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":69384953,"defaultBranch":"master","name":"omr","ownerLogin":"jdmpapin","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2016-09-27T18:08:02.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/22403820?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1725029004.0","currentOid":""},"activityList":{"items":[{"before":null,"after":"31b912e5210bea15c4f8ef3630a34d79ba0aca11","ref":"refs/heads/vTableSlot-cpIndex","pushedAt":"2024-08-30T14:43:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Remove unused cpIndex parameter of vTableSlot(), virtualCallSelector()\n\n...in TR_ResolvedMethod.","shortMessageHtmlLink":"Remove unused cpIndex parameter of vTableSlot(), virtualCallSelector()"}},{"before":"9ccff3cf2b805ba6f9ec0e1ee05e6b90772ac82a","after":"6dc282ee50d0e628c254334cfbae07df2a9ff6ad","ref":"refs/heads/master","pushedAt":"2024-08-29T20:05:10.000Z","pushType":"push","commitsCount":30,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7145 from midronij/offheap-unsafe-setmemory\n\nAdjust arguments to Unsafe.setMemory() on PPC when offheap is enabled","shortMessageHtmlLink":"Merge pull request eclipse#7145 from midronij/offheap-unsafe-setmemory"}},{"before":"8c75bfe132d6bdc5c2a60842fef6f95a20acfe4b","after":"680fd73d46baac1d9273fe26f0c90485f910ab93","ref":"refs/heads/mustBeNotEqual3","pushedAt":"2024-08-20T22:06:46.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Re-enable new VPClass::mustBeNotEqual()","shortMessageHtmlLink":"Re-enable new VPClass::mustBeNotEqual()"}},{"before":null,"after":"8c75bfe132d6bdc5c2a60842fef6f95a20acfe4b","ref":"refs/heads/mustBeNotEqual3","pushedAt":"2024-08-20T22:00:38.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Re-enable new VPClass::mustBeNotEqual","shortMessageHtmlLink":"Re-enable new VPClass::mustBeNotEqual"}},{"before":"de311dd2b79515a5c8472b292f527314ce4f4c21","after":"9ccff3cf2b805ba6f9ec0e1ee05e6b90772ac82a","ref":"refs/heads/master","pushedAt":"2024-08-16T18:50:39.000Z","pushType":"push","commitsCount":37,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7433 from pshipton/revert-7414-cmdline-subincr\n\nRevert \"Add Xgc options for suballocator heap size and quick allocation\"","shortMessageHtmlLink":"Merge pull request eclipse#7433 from pshipton/revert-7414-cmdline-sub…"}},{"before":null,"after":"8c99d261b49bad160cfd9cd6cedccc607c13f96c","ref":"refs/heads/mustBeNotEqual-off","pushedAt":"2024-08-01T13:42:22.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Reinstate original VPClass::mustBeNotEqual() logic temporarily\n\nThis is the code from before 5aba990c724f7bd7.","shortMessageHtmlLink":"Reinstate original VPClass::mustBeNotEqual() logic temporarily"}},{"before":null,"after":"d63752e59e1fcda87bae66266a8e4b161e1f7e1f","ref":"refs/heads/mustBeNotEqual2","pushedAt":"2024-07-30T19:33:26.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Make a minor correction to improved VPClass::mustBeNotEqual()\n\nIn 5aba990c724f7bd7 the improved VPClass::mustBeNotEqual() mistakenly\nreturned false instead of true for arrays with different lengths. This\ncommit corrects that case to return true as intended. This was not a\nfunctional problem because false is a conservative result.","shortMessageHtmlLink":"Make a minor correction to improved VPClass::mustBeNotEqual()"}},{"before":"ed2d1f9def64d356964a089ca921589d21222e44","after":"5aba990c724f7bd7ca4d633597590ae9bc1e703a","ref":"refs/heads/mustBeNotEqual","pushedAt":"2024-07-26T21:30:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Improve VPClass::mustBeNotEqual()\n\nThis will allow reference comparisons to be folded to \"not equal\" more\noften. Previously VPClass::mustBeNotEqual() would return true only when\nthe constraints could be distinguished by:\n- known null vs. known non-null,\n- known object index (when both are known to be non-null), or\n- fixed-class class pointer (when both are known to be non-null).\n\nNow most of the cases where it returns true require only one of the two\nconstraints to forbid null. Additionally, the constraints can now also\nbe distinguished by:\n- location (heap, stack, class object),\n- array element size,\n- array length,\n- class object type bound (non-fixed), and\n- instance type bound (fixed or not).","shortMessageHtmlLink":"Improve VPClass::mustBeNotEqual()"}},{"before":null,"after":"ed2d1f9def64d356964a089ca921589d21222e44","ref":"refs/heads/mustBeNotEqual","pushedAt":"2024-07-26T21:25:42.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Improve VPClass::mustBeNotEqual()\n\nThis will allow reference comparisons to be folded to \"not equal\" more\noften. Previously VPClass::mustBeNotEqual() would return true only when\nthe constraints could be distinguished by:\n- known null vs. known non-null;\n- different known object indices, both known to be non-null; or\n- different fixed-class class objects, both known to be non-null.\n\nNow most of the cases where it returns true require only one of the two\nconstraints to forbid null. Additionally, the constraints can now also\nbe distinguished by:\n- location (heap, stack, class object),\n- array element size,\n- array length,\n- class object type bounds (non-fixed), and\n- instance type bounds (fixed or not).","shortMessageHtmlLink":"Improve VPClass::mustBeNotEqual()"}},{"before":null,"after":"2df7ed37ba5d69c098861e34292074c20e1aa2d2","ref":"refs/heads/failed-callsite-debug-counters","pushedAt":"2024-07-17T16:07:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Specify the current compilation in failed call site debug counter names\n\nThis way, if a particular failure reason is of interest, the debug\ncounters will list all of the methods in which inlining failed for that\nreason.","shortMessageHtmlLink":"Specify the current compilation in failed call site debug counter names"}},{"before":"4c74f944ffadc41a1a7e5261af7b3a6dec5fe67b","after":"de311dd2b79515a5c8472b292f527314ce4f4c21","ref":"refs/heads/master","pushedAt":"2024-07-16T18:07:08.000Z","pushType":"push","commitsCount":51,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7349 from gita-omr/rss_report\n\nImplement RSSReport class","shortMessageHtmlLink":"Merge pull request eclipse#7349 from gita-omr/rss_report"}},{"before":"e32d21b256728bc90598eb68fddfebbf52f8b740","after":"4c74f944ffadc41a1a7e5261af7b3a6dec5fe67b","ref":"refs/heads/master","pushedAt":"2024-06-18T00:55:00.000Z","pushType":"push","commitsCount":52,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7380 from eclipse/revert-7313-arraycmp-64\n\nRevert \"Change arraycmp length child to 64 bits\"","shortMessageHtmlLink":"Merge pull request eclipse#7380 from eclipse/revert-7313-arraycmp-64"}},{"before":null,"after":"803891a474d01fe056ecb99e414ef0627dbd75ed","ref":"refs/heads/delete-SelectOpt","pushedAt":"2024-06-13T21:48:33.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Delete TR::SelectOpt, which is unused\n\nIf there is a case in which it's desirable for an entry in _opts to\nselect between two different Optimization classes based on an option, we\ncan simply check the option where that entry is initialized, and use it\nto choose which factory function to pass to the OptimizationManager.\nMoreover, by checking the option there, we'll naturally take option sets\ninto account.","shortMessageHtmlLink":"Delete TR::SelectOpt, which is unused"}},{"before":null,"after":"a2f79c832221fbe015175492a0dd1f1166508da9","ref":"refs/heads/dont-fold-sff","pushedAt":"2024-06-13T16:03:34.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Add dontFoldStaticFinalFields={} option","shortMessageHtmlLink":"Add dontFoldStaticFinalFields={} option"}},{"before":"a2f79c832221fbe015175492a0dd1f1166508da9","after":null,"ref":"refs/heads/dont-fold-sff","pushedAt":"2024-06-13T16:01:51.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"}},{"before":null,"after":"a2f79c832221fbe015175492a0dd1f1166508da9","ref":"refs/heads/dont-fold-sff","pushedAt":"2024-06-13T15:54:40.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Add dontFoldStaticFinalFields={} option","shortMessageHtmlLink":"Add dontFoldStaticFinalFields={} option"}},{"before":"8037ccd0406c017f6a8043a8d04e19ac68f626f2","after":"e32d21b256728bc90598eb68fddfebbf52f8b740","ref":"refs/heads/master","pushedAt":"2024-05-27T18:37:45.000Z","pushType":"push","commitsCount":71,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7342 from BradleyWood/crc32chelper\n\nx86: declare helper for crc32","shortMessageHtmlLink":"Merge pull request eclipse#7342 from BradleyWood/crc32chelper"}},{"before":"1bf2ef421caa77bd678293575dc6ff3e1e173b09","after":"8037ccd0406c017f6a8043a8d04e19ac68f626f2","ref":"refs/heads/master","pushedAt":"2024-05-14T18:08:29.000Z","pushType":"push","commitsCount":28,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7297 from a7ehuo/fix-VirtualGuardHeadMerger-1\n\nDo not continue to merge back cold path if guard2 block has been removed","shortMessageHtmlLink":"Merge pull request eclipse#7297 from a7ehuo/fix-VirtualGuardHeadMerger-1"}},{"before":"a26218f704144a2ed250488b71a6de7034a8b75c","after":"1bf2ef421caa77bd678293575dc6ff3e1e173b09","ref":"refs/heads/master","pushedAt":"2024-03-21T03:51:37.000Z","pushType":"push","commitsCount":22,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7282 from jdmpapin/inl-const-replay\n\nFacilitate recording of constants observed in call target selection","shortMessageHtmlLink":"Merge pull request eclipse#7282 from jdmpapin/inl-const-replay"}},{"before":null,"after":"d87f2bbeef064b7a3c779c676aea897327698a3b","ref":"refs/heads/inl-const-replay","pushedAt":"2024-03-06T18:49:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Facilitate recording of constants observed in call target selection\n\nIf inlining uses constant folding to help determine call targets, then\nit's important for the corresponding IL (if any is generated) to be\nconsistent with what the inliner saw.\n\nThis commit equips TR_CallTarget with a collection of observed constants\nthat must be folded consistently in IL. This collection can be populated\nby an inliner and later consulted by an IL generator to ensure that the\noperations are folded as needed.\n\nThis repeated folding is important whenever a value might be allowed to\nbe folded despite the possibility of a later change. It also allows\nconstants to be speculative by specifying the assumptions that are\nnecessary in order for the folding to be correct, and by informing the\nIL generator of the locations where such assumptions have been made.","shortMessageHtmlLink":"Facilitate recording of constants observed in call target selection"}},{"before":null,"after":"da8387edf93b4494c86ee5cf5724da541b415d4c","ref":"refs/heads/assert-fatal-flush","pushedAt":"2024-03-01T23:49:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Print assertion failure to log and flush even if DEBUG is not defined\n\nTR_ASSERT_FATAL() could fail in any build, and in particular in builds\nwithout DEBUG. Previously, if such a failure occurred with tracing\nenabled, the process would crash without printing the failure to the\nlog, and more importantly, without flushing previously written trace\noutput, which was confusing and impeded debugging.","shortMessageHtmlLink":"Print assertion failure to log and flush even if DEBUG is not defined"}},{"before":"c0cb7ab3538c48d8a8318fb6333680692caba849","after":"a26218f704144a2ed250488b71a6de7034a8b75c","ref":"refs/heads/master","pushedAt":"2024-02-29T23:27:50.000Z","pushType":"push","commitsCount":40,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7273 from keithc-ca/dwarf5\n\nDDR: fix support for DWARF version 5","shortMessageHtmlLink":"Merge pull request eclipse#7273 from keithc-ca/dwarf5"}},{"before":"a2b3b250f554e532659af13aa275c22df4dbd98f","after":"c0cb7ab3538c48d8a8318fb6333680692caba849","ref":"refs/heads/master","pushedAt":"2024-02-23T18:11:44.000Z","pushType":"push","commitsCount":20,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7231 from ehsankianifar/ShortCircuitConstantLengthArrayCmpHelper\n\nZ: Short circuit constant length array cmp helper","shortMessageHtmlLink":"Merge pull request eclipse#7231 from ehsankianifar/ShortCircuitConsta…"}},{"before":null,"after":"2ad3b1c4334eafaf29f54087cc2941675a96e00e","ref":"refs/heads/fix18803","pushedAt":"2024-02-06T17:09:31.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Don't version BNDCHK based on an IV if the loop test is backwards\n\nFor an increasing loop-driving IV, the loop test must impose an upper\nbound, e.g. while (i < n), whereas for a decreasing loop-driving IV, the\nloop test must impose a lower bound instead, e.g. while (i >= n).\nOtherwise, the predicted maximum iteration count will be wrong, which\ncould allow a bound check to be incorrectly skipped.\n\nLoop versioner will now check to ensure that the direction of the loop\ntest agrees with the sign of the step of the loop-driving IV.","shortMessageHtmlLink":"Don't version BNDCHK based on an IV if the loop test is backwards"}},{"before":"e5e7d557b1617f86576c8424d26d139531adcd63","after":"a2b3b250f554e532659af13aa275c22df4dbd98f","ref":"refs/heads/master","pushedAt":"2024-01-24T17:28:20.000Z","pushType":"push","commitsCount":59,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7238 from a7ehuo/loopVersioner-BNDCHK-test-pr\n\nAdd overflow test in BNDCHK versioning tests","shortMessageHtmlLink":"Merge pull request eclipse#7238 from a7ehuo/loopVersioner-BNDCHK-test-pr"}},{"before":null,"after":"2c2cc01114db6a91990298f583417d7bb3eaca0a","ref":"refs/heads/bndchk-versioning-test","pushedAt":"2024-01-19T17:52:47.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Fix versioning test against final index value for BNDCHK\n\nPreviously this versioning test would do either a strict or non-strict\ncomparison depending on a few factors:\n- isLoopDrivingInductionVariable,\n- isIndexChildMultiplied, and\n- the opcode of _loopTestTree (without consulting reverseBranch).\n\nTo deal with all of this variation there were multiple ad hoc\nadjustments of +1 or -1 at different points in the determination of\nmaxValue (which is really supposed to be the last value).\n\nThis state of affairs led to bugs, notably when using a non-strict loop\ntest together with an index expression that contains a multiplication,\nbut also in other scenarios that I have not precisely characterized.\n\nNow this versioning test is always (ifiucmpge maxValue arrayLength) for\nincreasing index expressions and (ificmplt maxValue 0) for decreasing\nones, with no regard to isLoopDrivingInductionVariable, etc., and the\ncorresponding ad hoc adjustments are eliminated from maxValue. Rather\nthan always take the ceiling and try to compensate for non-strict loop\ntests after the fact, we now use the floor in the case of non-strict\nloop tests and (ceiling - 1) otherwise, as described in the comment in\nthe extremum versioning path in buildConditionalTree(). (Note though\nthat instead of subtracting 1 before multiplying by incrJNode, this\nchange subtracts additiveConstantInStore afterward, which has the same\neffect.)\n\nAdditionally, if the index expression was based on a derived IV and\ninvolved a substitution via isDependentOnInductionVariable(), then this\nversioning test would load the temporary that's defined within the loop\ninstead of the initial value of the IV. The temp might be uninitialized,\nresulting in a versioning test that can non-deterministically pass even\nif the bound check should fail. It's not much better either if the temp\nhappens to be initialized, since its value won't have come from the\ndefinition within the loop and is most likely entirely unrelated to the\ninitial value of the IV. This commit changes the versioning test to load\nthe derived IV instead of the temporary.\n\nFinally, it was also possible for a later versioning test to load an\nuninitialized temporary when trying to rule out overflow in a\nmultiplication that appears in the index expression. To prevent this,\nversioning is now disallowed if it would be necessary to substitute\nbeneath a multiplication.\n\nWith these changes the versioning test is still not precise, which I\nbelieve is due to a failure to account properly for different possible\norderings of operations in the loop and possibly also to account for the\ndifference between the initial value of a derived IV and the value of a\ntemp based on it in the first iteration (e.g. tmp=iv+1).\n\nHowever, it appears to be conservative. I have checked a large number of\ngenerated test cases with different combinations of features:\n- Do-while loops vs while loops (reverseBranch)\n- Strict vs. non-strict loop conditions\n- Increasing primary IV (with <, <= comparisons) vs. decreasing (>, >=)\n- Accessing every element vs. every other element\n- Getting every other element by stepping by 2 vs. multiplying by 2\n- Even vs. odd array length (when accessing every other element)\n- Accessing even vs. odd indices (when accessing every other element)\n- Accessing elements in increasing vs. decreasing order of index\n- Indexing based on primary vs. derived IV\n- Stepping the primary IV by -3, -1, +1, or +3 (if using a derived IV)\n- Adding an offset in the index expression vs. not adding one\n- Adding an offset before multiplying vs. afterward (if multiplying)\n- Using a temp (isDependentOnInductionVariable()) vs. no temp\n- Setting the temp to the IV or to the index (if using a temp)\n- Different initial values for the IV(s), as consistent with the above\n- Every usable permutation of the statements in the loop body\n\nIn every case I had a script determine the widest loop bound that avoids\nfailing a bound check. I ran each test case three times:\n- once with the precise bounds, which should not fail a bound check;\n- once with the initial value modified to cause a bound check to fail on\n the first iteration; and\n- once with the loop bound modified to do an extra iteration at the end\n and fail a bound check in the last iteration.\n\nWith this commit, all such test executions behaved as expected. In some\ncases the bound check was not versioned or execution went unnecessarily\nto the cold loop, but in those cases one of the following always held\nbefore this commit:\n- we already did the same thing, or\n- the test passed all bound checks when it should have failed one, or\n- there was a load of an uninitialized variable in the versioning test.\n\nMost loops in real programs compute the index based on the primary IV,\nwhich appears directly in the index expression, i.e. array[...i...]. For\nthese loops as they occur in the test cases described above, the only\neffect of this change is to correctly run bound checks when one should\nfail and to sometimes avoid going unnecessarily to the cold loop.","shortMessageHtmlLink":"Fix versioning test against final index value for BNDCHK"}},{"before":"edcb5c61f4cc8ab10930ff72340248abc08ccac9","after":"e5e7d557b1617f86576c8424d26d139531adcd63","ref":"refs/heads/master","pushedAt":"2024-01-09T22:09:51.000Z","pushType":"push","commitsCount":120,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Merge pull request #7189 from thallium/master\n\nomrsysinfo_get_CPU_load() return a new error for insufficient data","shortMessageHtmlLink":"Merge pull request eclipse#7189 from thallium/master"}},{"before":"89d1e9eefed4826fd34f4821b8cb7cdf40e22b25","after":"e183807923d8e0dc98e1b203ae18312e67fd4d61","ref":"refs/heads/remove-removed-guards","pushedAt":"2023-12-08T21:25:24.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Delete now-unnecessary TR_Removed*Guard guard kinds\n\nAOT now takes care of generating the TR_Inlined*Method relocations for\ninlined methods without corresponding guards, so we can remove guards\nwithout creating stand-ins.","shortMessageHtmlLink":"Delete now-unnecessary TR_Removed*Guard guard kinds"}},{"before":null,"after":"89d1e9eefed4826fd34f4821b8cb7cdf40e22b25","ref":"refs/heads/remove-removed-guards","pushedAt":"2023-12-08T17:47:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Delete now-unnecessary TR_Removed*Guard guard kinds\n\nAOT now takes care of generating the TR_Inlined*Method relocations for\ninlined methods without corresponding guards, so we can remove guards\nwithout creating stand-ins.","shortMessageHtmlLink":"Delete now-unnecessary TR_Removed*Guard guard kinds"}},{"before":null,"after":"63a91341fc9087a59c5dafb4ec0e5e6a83c367ca","ref":"refs/heads/hcr-guard-versioning","pushedAt":"2023-12-05T15:39:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"jdmpapin","name":"Devin Papineau","path":"/jdmpapin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/22403820?s=80&v=4"},"commit":{"message":"Correct branch folding for HCR guard versioning\n\nThis logic has been inadvertently folding the versioning test instead of\nthe original guard since ce45970e6f92be1148c88c8bfd1b4afb8ae09cb1, which\nis effectively the same as not versioning the guards. This can be\nexpected to have resulted in slower code than intended. Worse, if there\nare HCR guards in the loop, then once the fixed-point analysis has\ndetermined that it is possible to version them, they must be versioned\nfor correctness. This is because other transformations may rely on the\ncold side being eliminated from the hot loop. In particular, by failing\nto version HCR guards, we could privatize mutable fields even though\nthey could be modified by a cold call while the loop is still running.","shortMessageHtmlLink":"Correct branch folding for HCR guard versioning"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQxNDo0MzoyNC4wMDAwMDBazwAAAASoxPyo","startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wOC0zMFQxNDo0MzoyNC4wMDAwMDBazwAAAASoxPyo","endCursor":"Y3Vyc29yOnYyOpK7MjAyMy0xMi0wNVQxNTozOTo0MS4wMDAwMDBazwAAAAPBvOR3"}},"title":"Activity · jdmpapin/omr"}