Description[Interpreter] Ensure ToBoolean bytecodes are correctly emitted at the start of basic blocks
Existing code was assuming that 'lexical' blocks were the same as basic
blocks, therefore code which emitted jumps within a lexical block (e.g.,
logical or) would in some occassions incorrectly omit a necessary
ToBoolean.
This change removes Enter/LeaveBlock from BytecodeArrayBuilder and
instead tracks basic blocks via label bindings and jump operations. The
change also ensures we don't emit dead code at the end of a basic block,
and adds tests of the edge cases.
BUG=v8:4280
LOG=N
Committed: https://crrev.com/2e1bdea8ad80dc63fb5ed19396934db801e69fde
Cr-Commit-Position: refs/heads/master@{#31741}
Patch Set 1 #
Total comments: 8
Patch Set 2 : Review comments. #
Messages
Total messages: 14 (5 generated)
|