dart-sdk/runtime/platform
Alexander Markov 1a1c7693d2 [VM/compiler] Fix range analysis for 64-bit fixed-size integers
This CL corrects handling of overflows in range analysis to
account for wrap-around (which happens with new integer semantics).

* If there is an overflow while doing computations in range
  analysis, the resulting range is approximated as full int64 range.

* For symbolic range boundaries 'symbol + offset', offset is checked
  to stay within [kMinInt64 - kSmiMin, kMaxInt64 - kSmiMax] in order
  to guarantee that overflow doesn't occur.

Issue: https://github.com/dart-lang/sdk/issues/31920
Change-Id: I2c16adbe3597e9b718ed2f6ce7210426fcc9e6a6
Reviewed-on: https://dart-review.googlesource.com/39423
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-02-08 21:49:42 +00:00
..
address_sanitizer.h [vm] Avoid using a generated stub to get the current SP, since generated stubs aren't available during early start up. 2017-10-10 22:52:25 +00:00
allocation.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
assert.cc Retry landing cl for issue with TSAN. 2016-11-23 15:40:26 -08:00
assert.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
BUILD.gn [gn] Split target arch/os defines from dart_config 2017-10-31 17:33:13 +00:00
c99_support_win.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
floating_point.h Add .clang-format and run clang-format on runtime/platform. 2016-11-03 14:25:16 -07:00
floating_point_win.cc Rename TARGET_OS_* to HOST_OS_*. 2017-03-15 13:11:05 -07:00
floating_point_win.h Make header include guards great again 2016-10-26 00:26:03 -07:00
globals.h Revert "Revert "Reintroduce incremental compiler wrapper that supports accept protocol."" 2018-02-07 20:58:51 +00:00
growable_array.h Revert "[VM] Use IR for code in [CatchEntryInstr]s to populate captured exception/stacktrace variables" 2018-01-21 20:46:49 +00:00
hashmap.cc VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
hashmap.h VM: Remove unused (and incomplete) HashMap::Remove() function 2016-12-01 13:51:49 +01:00
inttypes_support_win.h [VM] Use X64 disassembler for IA32 and X64 (reland) 2017-11-22 12:04:18 +00:00
math.h Rename TARGET_OS_* to HOST_OS_*. 2017-03-15 13:11:05 -07:00
memory_sanitizer.h Add .clang-format and run clang-format on runtime/platform. 2016-11-03 14:25:16 -07:00
platform_sources.gni [vm] Avoid using a generated stub to get the current SP, since generated stubs aren't available during early start up. 2017-10-10 22:52:25 +00:00
safe_stack.h [vm] Avoid using a generated stub to get the current SP, since generated stubs aren't available during early start up. 2017-10-10 22:52:25 +00:00
signal_blocker.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
text_buffer.cc [VM] Restore disassembler in flutter/profile (dart/release) mode 2017-09-21 16:07:02 +00:00
text_buffer.h [VM] Restore disassembler in flutter/profile (dart/release) mode 2017-09-21 16:07:02 +00:00
utils.cc Reapply "[vm] Popcount via compiler intrinsics." 2017-11-03 17:39:16 +00:00
utils.h [VM/compiler] Fix range analysis for 64-bit fixed-size integers 2018-02-08 21:49:42 +00:00
utils_android.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
utils_fuchsia.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
utils_linux.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
utils_macos.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00
utils_win.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00