diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn index c86203c5d37..a2f8b130e88 100644 --- a/build/config/compiler/BUILD.gn +++ b/build/config/compiler/BUILD.gn @@ -720,7 +720,7 @@ config("optimize") { if (is_win) { # Favor size over speed, /O1 must be before the common flags. The GYP # build also specifies /Os and /GF but these are implied by /O1. - cflags = [ "/O1" ] + common_optimize_on_cflags + [ "/Oi" ] + cflags = [ "/O2" ] + common_optimize_on_cflags + [ "/Oi" ] } else if (is_android) { cflags = [ "-Os" ] + common_optimize_on_cflags # Favor size over speed. } else { @@ -733,9 +733,9 @@ config("optimize") { config("no_optimize") { if (is_win) { cflags = [ - "/Od", # Disable optimization. + "/O2", # Do some optimizations. + "/Oy-", # Disable omitting frame pointers, must be after /O2. "/Ob0", # Disable all inlining (on by default). - "/RTC1", # Runtime checks for stack frame and uninitialized variables. ] } else if (is_android) { # On Android we kind of optimize some things that don't affect debugging diff --git a/runtime/platform/globals.h b/runtime/platform/globals.h index 114c47d1585..cd01fc549eb 100644 --- a/runtime/platform/globals.h +++ b/runtime/platform/globals.h @@ -298,6 +298,14 @@ typedef simd128_value_t fpu_register_t; #error Automatic compiler detection failed. #endif +#ifdef _MSC_VER +#define DART_PRETTY_FUNCTION __FUNCSIG__ +#elif __GNUC__ +#define DART_PRETTY_FUNCTION __PRETTY_FUNCTION__ +#else +#error Automatic compiler detection failed. +#endif + #if !defined(TARGET_ARCH_MIPS) #if !defined(TARGET_ARCH_ARM) #if !defined(TARGET_ARCH_X64) diff --git a/runtime/vm/kernel_binary.cc b/runtime/vm/kernel_binary.cc index 407e1a65182..6cb8d36aa3e 100644 --- a/runtime/vm/kernel_binary.cc +++ b/runtime/vm/kernel_binary.cc @@ -5,6 +5,7 @@ #include #include +#include "platform/globals.h" #include "vm/flags.h" #include "vm/kernel.h" #include "vm/os.h" @@ -12,11 +13,11 @@ #if defined(DEBUG) #define TRACE_READ_OFFSET() do { \ if (FLAG_trace_kernel_binary) \ - reader->DumpOffset(__PRETTY_FUNCTION__); \ + reader->DumpOffset(DART_PRETTY_FUNCTION); \ } while (0) #define TRACE_WRITE_OFFSET() do { \ if (FLAG_trace_kernel_binary) \ - writer->DumpOffset(__PRETTY_FUNCTION__); \ + writer->DumpOffset(DART_PRETTY_FUNCTION); \ } while (0) #else #define TRACE_READ_OFFSET()