• Manos Koukoutos's avatar
    [wasm-gc] Refactoring in preparation of generalizing WasmInitExpr · 01e59c4b
    Manos Koukoutos authored
    Motivation: With rtt.sub now allowed in constant expressions, we have
    to generalize WasmInitExpr to be able to handle expressions with
    operands. This CL prepares the ground for this change and adds no
    functionality.
    
    Changes:
    - ValueType::heap_representation and HeapType::representation now
      return HeapType::Representation.
    - Add ValueType::is_rtt().
    - WasmInitExpr:
      - Make kind private. Rename val -> operator, make it private. Add
        accessors.
      - Rename kGlobalIndex -> kGlobalGet.
      - Squash global_index and function_index into index.
      - Add heap_type Immediate. Use it for RefNullConst. TypeOf in
        module-decoder.cc can now fully determine the type of a
        WasmInitExpr.
      - Add class constructors/static method constructors for each Operator
        kind.
      - Delete copy constructor. WasmInitExpr will use std::unique_ptr for
        its operands.
    - consume_init_expr now uses a stack.
    - A few minor improvements.
    
    Bug: v8:7748
    Change-Id: I3ba3ee7ac2d6bc58e887790c37110ceb80658985
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2284483
    Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#68759}
    01e59c4b
wasm-module-builder.cc 27.1 KB