c919ade017
All inputs of IL instructions are now non-speculative, SelectRepresentations pass now always inserts non-speculative unboxing instructions. In call specializer, where JIT compiler speculates, speculative Unbox instructions are now explicitly added for inputs which may have incorrect type. Unbox instructions now have 'value_mode' (either kHasValidType or kCheckType) instead of speculative mode. Added canonicalization rule to change value mode if compiler can prove that value has correct type. Also, cleaned up speculations around UnboxedInt32 representation in JIT mode, which aligns this representation with other unboxed representations. TEST=ci Change-Id: I52f5c959c3f6515b1a7c9e8ab15b420beed0e3f5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/391492 Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Slava Egorov <vegorov@google.com>