dart-sdk/runtime
Tess Strickland 1afa57fc48 [vm/compiler] Canonicalize int ops with a singleton range.
If range analysis has determined that a integer operation cannot throw
or deoptimize and can only result in a single possible value that
matches the operation's representation, replace the operation with that
constant value.

Be more precise about when a BinaryInt64OpInstr can throw. Previously
any MOD or TRUNCDIV operation was marked as possibly throwing, but now
in those cases we only mark it as possibly throwing if the right hand
side can be 0.

TEST=vm/dart/unsigned_truncated_division

Change-Id: I0f4fd754199240715606b90a6a423dbeb268c90d
Cq-Include-Trybots: luci.dart.try:vm-aot-linux-debug-simarm_x64-try,vm-aot-linux-release-x64-try,vm-aot-linux-debug-x64c-try,vm-linux-release-simarm-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/331283
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2023-11-01 15:06:43 +00:00
..
bin [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00
docs [vm] Introduce cachable idempotent calls 2023-10-27 07:55:47 +00:00
include [ffi] Update some FfiNative docs to Native 2023-10-30 18:43:14 +00:00
lib Reland "[vm/compiler] Change MemoryCopy to also take untagged addresses." 2023-10-17 07:41:49 +00:00
observatory [observatory] Avoid deprecated UnmodifiableUint8ListView 2023-10-26 01:31:29 +00:00
platform [platform] Fix Utils::IsInt on unsigned values. 2023-10-31 19:39:51 +00:00
tests [vm/compiler] Canonicalize int ops with a singleton range. 2023-11-01 15:06:43 +00:00
third_party Roll double-conversion to 032fa6a7d2c319b20d3928f5d762648fa4029acf. 2023-09-13 14:54:27 +00:00
tools Stop using deprecated 'element2' that will be removed. 2023-10-25 14:21:42 +00:00
vm [vm/compiler] Canonicalize int ops with a singleton range. 2023-11-01 15:06:43 +00:00
.clang-tidy
.gitignore
BUILD.gn [vm] Fix build for gcc 13.2.0. 2023-10-25 08:38:28 +00:00
codereview.settings
configs.gni [Runtime] Add extra_product_deps and extra_nonproduct_deps params to "library_for_all_configs_with_compiler" template 2023-04-14 19:51:40 +00:00
CPPLINT.cfg
OWNERS
PRESUBMIT.py Reland "Reland "[VM] Begin supporting Perfetto file recorder"" 2023-04-18 19:39:05 +00:00
runtime_args.gni Add a GN flag for the non-debug optimization level 2023-07-15 14:14:59 +00:00
vm-jit.shard.cml [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00
vm.shard.cml [test] Cleanup building Fuchsia packages/components. 2023-10-31 17:11:51 +00:00