)]}'
{
  "commit": "97369d090322d38ff0627d5c5ba30270df8370ff",
  "tree": "178a8615e5fafddd086d9b04f5e53b1fbe45889f",
  "parents": [
    "261e16e822917bc42df4ebe722412594d2c406cd"
  ],
  "author": {
    "name": "Alexander Markov",
    "email": "alexmarkov@google.com",
    "time": "Fri Mar 08 15:35:20 2024 +0000"
  },
  "committer": {
    "name": "Commit Queue",
    "email": "dart-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Mar 08 15:35:20 2024 +0000"
  },
  "message": "[vm/compiler] Correct representation of shift rhs and speculative mode of BinaryUint32OpInstr\n\nSpeculative and non-speculative shift instructions have different\nrepresentations of RHS input, so canonicalization of multiplication\ninto a shift should account for that.\n\nAlso, mark BinaryUint32Op instruction as always non-speculative -\nit never needs to speculate  as it is inserted by range analysis\nafter it can prove that it is valid to perform Uint32 op.\nThis prevents insertion of a speculative shift instruction in AOT\nwhen BinaryUint32Op multiplication is canonicalized.\n\nFixes https://github.com/dart-lang/sdk/issues/55003\nTEST\u003dvm/dart/regress_55003_test\n\nChange-Id: Ib1805ce2dc0e6f514e6f3b4a09be08808e75048b\nReviewed-on: https://dart-review.googlesource.com/c/sdk/+/355820\nReviewed-by: Slava Egorov \u003cvegorov@google.com\u003e\nCommit-Queue: Alexander Markov \u003calexmarkov@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3fe810ef6f8953ec3a864a5291525c6b6b0af879",
      "old_mode": 33188,
      "old_path": "runtime/tests/vm/dart/regress_55003_test.dart",
      "new_id": "f07bedfed297fe86af68a0ca74741e43b1154af3",
      "new_mode": 33188,
      "new_path": "runtime/tests/vm/dart/regress_55003_test.dart"
    },
    {
      "type": "modify",
      "old_id": "59ca02cfcae93ce02809ea542b410f6b62d6f6b2",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.cc",
      "new_id": "5aa30619ba77bcf52ad7c32046f2fa6f12f8162c",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.cc"
    },
    {
      "type": "modify",
      "old_id": "1924a7f1d57467afa47cce8409ddd49e2fc487f8",
      "old_mode": 33188,
      "old_path": "runtime/vm/compiler/backend/il.h",
      "new_id": "a8ddf9ae25857d8a1021bbb6e4c0aad89b085f15",
      "new_mode": 33188,
      "new_path": "runtime/vm/compiler/backend/il.h"
    }
  ]
}
