• bmeurer's avatar
    [stubs] Improve code generation for ToBoolean. · 0abba435
    bmeurer authored
    Introduce a proper CodeStubAssembler::BranchIfToBooleanIsTrue helper
    method, that branches to if_true/if_false labels depending on whether
    the value that is passed would yield true or false when fed to
    ToBoolean. Use this helper to implement the bytecode handlers w/o having
    to materialize the temporary booleans and essentially branching twice.
    The CodeStubAssembler::BranchIfToBooleanIsTrue helper favors the most
    likely case of a Boolean constant now.
    
    Also migrate the ToBooleanStub to a ToBoolean TurboFan builtin, that
    also uses the helper method under the hood.
    
    Remove the now obsolete Oddball::to_boolean field.
    
    R=hpayer@chromium.org, rmcilroy@chromium.org, yangguo@chromium.org
    
    Review-Url: https://codereview.chromium.org/2151163002
    Cr-Commit-Position: refs/heads/master@{#37849}
    0abba435
Name
Last commit
Last update
..
OWNERS Loading commit data...
bytecode-array-builder.cc Loading commit data...
bytecode-array-builder.h Loading commit data...
bytecode-array-iterator.cc Loading commit data...
bytecode-array-iterator.h Loading commit data...
bytecode-array-writer.cc Loading commit data...
bytecode-array-writer.h Loading commit data...
bytecode-dead-code-optimizer.cc Loading commit data...
bytecode-dead-code-optimizer.h Loading commit data...
bytecode-decoder.cc Loading commit data...
bytecode-decoder.h Loading commit data...
bytecode-flags.cc Loading commit data...
bytecode-flags.h Loading commit data...
bytecode-generator.cc Loading commit data...
bytecode-generator.h Loading commit data...
bytecode-label.h Loading commit data...
bytecode-peephole-optimizer.cc Loading commit data...
bytecode-peephole-optimizer.h Loading commit data...
bytecode-pipeline.cc Loading commit data...
bytecode-pipeline.h Loading commit data...
bytecode-register-allocator.cc Loading commit data...
bytecode-register-allocator.h Loading commit data...
bytecode-register-optimizer.cc Loading commit data...
bytecode-register-optimizer.h Loading commit data...
bytecode-register.cc Loading commit data...
bytecode-register.h Loading commit data...
bytecode-traits.h Loading commit data...
bytecodes.cc Loading commit data...
bytecodes.h Loading commit data...
constant-array-builder.cc Loading commit data...
constant-array-builder.h Loading commit data...
control-flow-builders.cc Loading commit data...
control-flow-builders.h Loading commit data...
handler-table-builder.cc Loading commit data...
handler-table-builder.h Loading commit data...
interpreter-assembler.cc Loading commit data...
interpreter-assembler.h Loading commit data...
interpreter-intrinsics.cc Loading commit data...
interpreter-intrinsics.h Loading commit data...
interpreter.cc Loading commit data...
interpreter.h Loading commit data...