• Jakob Gruber's avatar
    [gasm] Implement parts of js call reducer using the graph assembler · 002d5be8
    Jakob Gruber authored
    An initial investigation of using GraphAssembler in JSCallReducer.
    
    This CL ports two simple reductions (ReduceMathUnary,
    ReduceMathBinary) as well as a slightly more involved reduction with
    branching control flow (ReduceStringPrototypeSubstring). The graph
    assembler abstracts away the details of maintaining effect and control
    edges. Resulting code ends up looking very similar to CSA.
    
    Newly introduced:
    - Typing through TNode.
    - IfBuilder1 for nicer if-then-else sequences that return exactly 1
      value. Future CLs will add more convenience builders that follow this
      pattern.
    - Many small readability improvements through helper functions.
    
    Bug: v8:9972
    Change-Id: Iaa186b76c006e07c8d69a74f340a4912577a32a5
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1914204
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#65095}
    002d5be8
js-call-reducer.cc 307 KB