diff options
author | 2016-06-09 12:20:25 -0700 | |
---|---|---|
committer | 2016-06-09 12:20:25 -0700 | |
commit | 2843c42e594bf45f48a29f4195ec39aeeb92b2bc (patch) | |
tree | 41203f3cb9dbac5f0b15d7457c17608c45c69d8d | |
parent | e239547269c7e6677a7ed6ecdf67234fda662427 (diff) |
Revert of Disable tail calls inside Simple GM functions. (patchset #1 id:1 of https://codereview.chromium.org/2050473006/ )
Reason for revert:
Appears to have broken Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug
Original issue's description:
> Disable tail calls inside Simple GM functions.
>
> I haven't found any way to turn off the particular optimization (-foptimize-sibling-calls)
> per-function, but I can control optimization settings coarsely:
>
> - on GCC, we can pick a particular -O level, so I've picked -O1 which does not
> enable -foptimize-sibling-calls
> - on Clang, we can only disable all optimization for a function
> - have no idea about MSVC
>
> This should make sure the simple GM functions, e.g. all_bitmap_configs_GM(),
> show up on stack traces when we crash.
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2050473006
>
> Committed: https://skia.googlesource.com/skia/+/eee3ced68f787aadc47fa274ca8e13b354ec920a
TBR=reed@google.com,mtklein@chromium.org
BUG=skia:
CQ_EXTRA_TRYBOTS=client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86-Debug-Trybot
Review-Url: https://codereview.chromium.org/2051193002
-rw-r--r-- | gm/gm.h | 18 |
1 files changed, 4 insertions, 14 deletions
@@ -34,20 +34,10 @@ struct GrContextOptions; DEF_SIMPLE_GM_BG_NAME(NAME, CANVAS, W, H, SK_ColorWHITE, SkString(#NAME)) #define DEF_SIMPLE_GM_BG(NAME, CANVAS, W, H, BGCOLOR)\ DEF_SIMPLE_GM_BG_NAME(NAME, CANVAS, W, H, BGCOLOR, SkString(#NAME)) - -// Disable tail calls in Simple GM functions to make sure they appear on any stack trace. -#if defined(__clang__) - #define DISABLE_TAIL_CALLS __attribute__((optnone)) -#elif defined(__GNUC__) - #define DISABLE_TAIL_CALLS __attribute__((optimize("-O1"))) -#else - #define DISABLE_TAIL_CALLS /*TODO: MSVC*/ -#endif - -#define DEF_SIMPLE_GM_BG_NAME(NAME, CANVAS, W, H, BGCOLOR, NAME_STR) \ - static void DISABLE_TAIL_CALLS SK_MACRO_CONCAT(NAME, _GM)(SkCanvas * CANVAS); \ - DEF_GM(return new skiagm::SimpleGM(NAME_STR, SK_MACRO_CONCAT(NAME, _GM), \ - SkISize::Make(W, H), BGCOLOR);) \ +#define DEF_SIMPLE_GM_BG_NAME(NAME, CANVAS, W, H, BGCOLOR, NAME_STR) \ + static void SK_MACRO_CONCAT(NAME, _GM)(SkCanvas * CANVAS); \ + DEF_GM(return new skiagm::SimpleGM(NAME_STR, SK_MACRO_CONCAT(NAME, _GM), \ + SkISize::Make(W, H), BGCOLOR);) \ void SK_MACRO_CONCAT(NAME, _GM)(SkCanvas * CANVAS) namespace skiagm { |