• Daniel Clifford's avatar
    [torque]: Add constexpr keyword/types for compile-time evaluation · aeb86d57
    Daniel Clifford authored
    Torque expressions of type constexpr are evaluated at compile-time
    rather than runtime. They are backed by C++ types rather than
    TNode<X> types, so the macro functions that are called by generated
    C++ code expect values to be computed when the snapshot is generated
    rather than by TurboFan-generated code.
    
    Specifically, "if" statements can have a constexpr modifier. With this
    modifier, a type of "constexpr bool" is expected rather than "bool",
    and in that case instead of generating a CSA BranchIf, it generates
    a C++ "if (<bool expression>)" that generates code for only the true or
    false path based on the bool value at torque-execution (compile time)
    rather than generating both paths (including inserting phi nodes
    for variables modified on either branch at the re-merge at the end
    of the if) and dynamically dispatching to the true or false path
    during d8/Chrome/node.js execution (runtime) using a CSA BranchIf.
    
    Change-Id: I8238e25aaadbfc618847e04556e96a3949ea5a8d
    Reviewed-on: https://chromium-review.googlesource.com/1042085
    Commit-Queue: Daniel Clifford <danno@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#53001}
    aeb86d57
Name
Last commit
Last update
..
Torque.g4 Loading commit data...
TorqueBaseListener.cpp Loading commit data...
TorqueBaseListener.h Loading commit data...
TorqueBaseVisitor.cpp Loading commit data...
TorqueBaseVisitor.h Loading commit data...
TorqueLexer.cpp Loading commit data...
TorqueLexer.h Loading commit data...
TorqueListener.cpp Loading commit data...
TorqueListener.h Loading commit data...
TorqueParser.cpp Loading commit data...
TorqueParser.h Loading commit data...
TorqueVisitor.cpp Loading commit data...
TorqueVisitor.h Loading commit data...
ast-generator.cc Loading commit data...
ast-generator.h Loading commit data...
ast.h Loading commit data...
declarable.h Loading commit data...
declaration-visitor.cc Loading commit data...
declaration-visitor.h Loading commit data...
declarations.cc Loading commit data...
declarations.h Loading commit data...
file-visitor.cc Loading commit data...
file-visitor.h Loading commit data...
global-context.h Loading commit data...
implementation-visitor.cc Loading commit data...
implementation-visitor.h Loading commit data...
scope.cc Loading commit data...
scope.h Loading commit data...
torque.cc Loading commit data...
type-oracle.h Loading commit data...
types.cc Loading commit data...
types.h Loading commit data...
utils.cc Loading commit data...
utils.h Loading commit data...