dart-sdk/runtime/platform
Vyacheslav Egorov 4fa139b4b8 [vm/compiler] Rework how logical expressions are compiled to IL.
When logical expression is evaluated in the control context (e.g. if (cond) { ... })
avoid materializing a boolean value and then dispatching on it. Instead connect
true and false successors directly to then and else branches.

This CL also improves IL generated when logical expression is evaluated for value
(e.g. x = (cond)): we similarly avoid materializing intermediate results and also
avoid comparisons that are not needed, e.g. when evaluating x = A && B we construct
graph x = A ? B : false, instead of x = A ? (B == true ? true : false) : false style
of graph.

Change-Id: I204d414cc6751949641b6c46423a6319f6e2d89b
Reviewed-on: https://dart-review.googlesource.com/67562
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-08-02 10:51:53 +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 [vm] Fix build for gcc 7.3.0. 2018-05-03 17:59:44 +00:00
assert.h [vm] Fix build for gcc 7.3.0. 2018-05-03 17:59:44 +00:00
atomic.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
atomic_android.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
atomic_fuchsia.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
atomic_linux.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
atomic_macos.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
atomic_win.h [vm] Weaken CAS to RMW when accessing the remembered and mark bits. 2018-06-20 21:53:12 +00:00
BUILD.gn [GN] Add interpreter config. Refactor configs. 2018-05-14 15:26:37 +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 [ VM / Build ] Added '--no-include-kernel-service' to build.py. By default, the kernel service is now included in all build modes, including product mode. Providing '--no-include-kernel-service' will build the specified configuration without the kernel service. 2018-05-23 20:35:53 +00:00
growable_array.h [vm/compiler] Rework how logical expressions are compiled to IL. 2018-08-02 10:51:53 +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] Remove some bin -> vm includes. 2018-03-28 23:16:09 +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] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00:00
text_buffer.h [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00:00
utils.cc [vm] Fix build for gcc 7.3.0. 2018-05-03 17:59:44 +00:00
utils.h Revert "[VM] Improve code generation for uint32" 2018-05-01 00:25:01 +00:00
utils_android.cc [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +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.cc [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00: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.cc [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00: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.cc [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00: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.cc [vm] Move some string utils from runtime/vm to runtime/platform. 2018-03-01 02:07:46 +00:00
utils_win.h VM: Re-format to use at most one newline between functions 2017-07-13 08:08:37 -07:00