*TL;DR*: For debug builds the generated code will contain {FLAG_debug_code}
by default, use --no-debug-code to turn it off.

The various code generators in V8 have the ability to insert debug code
(similar to assertions) into generated code. This behavior is predicated by
the --debug-code flag (which translates into {FLAG_debug_code} in the
code-base). The flag in question was off by default and got passed
explicitly by our test harness for debug builds. The problem is that code
contained within the snapshot was generated without this flag, hence many
stubs unexpectedly did not contain the desired assertions. This surprising
effect has led to uncaught regressions several times already, only
no-snapshot builds would cover them (e.g. there is no x64 no-snapshot
builder on our waterfall).

After a recent change <https://codereview.chromium.org/2528913002/>[1] the
default value of the flag in question changed. It is now on by default for
debug builds and remains off by default for release builds. This ensures
the snapshot contains the proper assertions.

In case you are looking at the disassembly of generated code in debug
builds and are surprised/confused by the additional code, you can pass
--no-debug-code to explicitly elide the assertions even in debug builds.

For release builds nothing has changed.

[1] https://codereview.chromium.org/2528913002/

Best regards,
Michael
<https://codereview.chromium.org/2528913002/>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to