[webkit-changes] [WebKit/WebKit] 2e8170: [WGSL] Make all types constant

Tadeu Zagallo noreply at github.com
Thu Jun 1 00:13:25 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 2e8170d57461f680582c1fc20a7c4d5b759bbb5d
      https://github.com/WebKit/WebKit/commit/2e8170d57461f680582c1fc20a7c4d5b759bbb5d
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-06-01 (Thu, 01 Jun 2023)

  Changed paths:
    M Source/WebGPU/WGSL/Constraints.cpp
    M Source/WebGPU/WGSL/Constraints.h
    M Source/WebGPU/WGSL/EntryPointRewriter.cpp
    M Source/WebGPU/WGSL/GlobalVariableRewriter.cpp
    M Source/WebGPU/WGSL/Overload.cpp
    M Source/WebGPU/WGSL/Overload.h
    M Source/WebGPU/WGSL/TypeCheck.cpp
    M Source/WebGPU/WGSL/TypeStore.cpp
    M Source/WebGPU/WGSL/TypeStore.h
    M Source/WebGPU/WGSL/Types.cpp
    M Source/WebGPU/WGSL/Types.h

  Log Message:
  -----------
  [WGSL] Make all types constant
https://bugs.webkit.org/show_bug.cgi?id=257556
rdar://110075257

Reviewed by Myles C. Maxfield.

Types are immutable, just change the API to reflect it. The one exception, which
is documented in the TypeChecker, is that we have to insert fields of struct types
after creation. Given it's such a small exception, we just const_cast in that one
case and use const types everywhere else.

* Source/WebGPU/WGSL/Constraints.cpp:
(WGSL::satisfyOrPromote):
* Source/WebGPU/WGSL/Constraints.h:
* Source/WebGPU/WGSL/EntryPointRewriter.cpp:
* Source/WebGPU/WGSL/GlobalVariableRewriter.cpp:
* Source/WebGPU/WGSL/Overload.cpp:
(WGSL::OverloadResolver::OverloadResolver):
(WGSL::OverloadResolver::materialize const):
(WGSL::OverloadResolver::considerCandidate):
(WGSL::OverloadResolver::calculateRank):
(WGSL::OverloadResolver::unify):
(WGSL::OverloadResolver::assign):
(WGSL::OverloadResolver::resolve const):
(WGSL::OverloadResolver::conversionRank const):
(WGSL::resolveOverloads):
(WTF::printInternal):
* Source/WebGPU/WGSL/Overload.h:
* Source/WebGPU/WGSL/TypeCheck.cpp:
(WGSL::TypeChecker::visit):
(WGSL::TypeChecker::visitStructMembers):
(WGSL::TypeChecker::visitVariable):
(WGSL::TypeChecker::vectorFieldAccess):
(WGSL::TypeChecker::chooseOverload):
(WGSL::TypeChecker::infer):
(WGSL::TypeChecker::resolve):
(WGSL::TypeChecker::inferred):
(WGSL::TypeChecker::unify):
* Source/WebGPU/WGSL/TypeStore.cpp:
(WGSL::TypeStore::TypeCache::find const):
(WGSL::TypeStore::TypeCache::insert):
(WGSL::TypeStore::structType):
(WGSL::TypeStore::constructType):
(WGSL::TypeStore::arrayType):
(WGSL::TypeStore::vectorType):
(WGSL::TypeStore::matrixType):
(WGSL::TypeStore::textureType):
(WGSL::TypeStore::functionType):
(WGSL::TypeStore::referenceType):
(WGSL::TypeStore::allocateType):
(WGSL::TypeStore::allocateConstructor):
* Source/WebGPU/WGSL/TypeStore.h:
(WGSL::TypeStore::bottomType const):
(WGSL::TypeStore::voidType const):
(WGSL::TypeStore::boolType const):
(WGSL::TypeStore::abstractIntType const):
(WGSL::TypeStore::i32Type const):
(WGSL::TypeStore::u32Type const):
(WGSL::TypeStore::abstractFloatType const):
(WGSL::TypeStore::f32Type const):
(WGSL::TypeStore::samplerType const):
(WGSL::TypeStore::textureExternalType const):
* Source/WebGPU/WGSL/Types.cpp:
(WGSL::conversionRank):
* Source/WebGPU/WGSL/Types.h:

Canonical link: https://commits.webkit.org/264782@main




More information about the webkit-changes mailing list