• Leszek Swirski's avatar
    [turbofan] Add dynamic sized GraphAssemblerLabels · 858602d8
    Leszek Swirski authored
    The GraphAssemblerLabel VarCount template parameter now can have a
    marker value ~0 which is marker for it being dynamic sized -- this means
    that a bit of template magic turns its std::arrays into std::vectors.
    Merging GraphAssemblerLabels works by duck-typing access to these
    arrays/vectors.
    
    These dynamic GraphAssemblerLabels are created whenever a single
    
    GraphAssemblerLabels being created when instead a list of values
    convertible to MachineRepresentation is passed in. Passing anything else
    will result in a GraphAssemblerLabel with marker value ~1, which is
    considered "invalid" and will give a compilation error down the line.
    
    std: :vector is passed into MakeLabel, with the static
    Change-Id: I833bdedac2f8e26fcc88aa59dd67b7e4b1c4296d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3913349
    Commit-Queue: Leszek Swirski <leszeks@chromium.org>
    Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#83424}
    858602d8
graph-assembler.h 36.4 KB