[webkit-changes] [WebKit/WebKit] 387c1b: [WGSL] Initial implementation of operator overload...

Tadeu Zagallo noreply at github.com
Tue Feb 14 07:23:29 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 387c1b1f6bd7c9ae77a9e1ce3c72d85697a14497
      https://github.com/WebKit/WebKit/commit/387c1b1f6bd7c9ae77a9e1ce3c72d85697a14497
  Author: Tadeu Zagallo <tzagallo at apple.com>
  Date:   2023-02-14 (Tue, 14 Feb 2023)

  Changed paths:
    A Source/WebGPU/WGSL/Overload.cpp
    A 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.h
    M Source/WebGPU/WebGPU.xcodeproj/project.pbxproj

  Log Message:
  -----------
  [WGSL] Initial implementation of operator overload resolution
https://bugs.webkit.org/show_bug.cgi?id=251863
rdar://105133289

Reviewed by Myles C. Maxfield.

First pass at adding support for overloaded operators and functions. For now,
only `+` is implemented with 2 operators, and declaring the operations is very
cumbersome, but the patch is fairly large as it is, so more convenient declarations
will follow in a separate patch.

* Source/WebGPU/WGSL/Overload.cpp: Added.
(WGSL::log):
(WGSL::logLn):
(WGSL::OverloadResolver::OverloadResolver):
(WGSL::OverloadResolver::resolve):
(WGSL::OverloadResolver::materialize const):
(WGSL::OverloadResolver::considerCandidates):
(WGSL::OverloadResolver::considerCandidate):
(WGSL::OverloadResolver::calculateCost):
(WGSL::OverloadResolver::unify):
(WGSL::OverloadResolver::assign):
(WGSL::OverloadResolver::resolve const):
(WGSL::OverloadResolver::conversionCost const):
(WGSL::primitive_pair):
(WGSL::OverloadResolver::conversionCostImpl const):
(WGSL::resolveOverloads):
(WTF::printInternal):
* Source/WebGPU/WGSL/Overload.h: Copied from Source/WebGPU/WGSL/Types.h.
* Source/WebGPU/WGSL/TypeCheck.cpp:
(WGSL::TypeChecker::TypeChecker):
(WGSL::TypeChecker::visit):
(WGSL::TypeChecker::chooseOverload):
* Source/WebGPU/WGSL/TypeStore.cpp:
(WGSL::TypeStore::TypeStore):
(WGSL::TypeStore::vectorType):
(WGSL::TypeStore::matrixType):
(WGSL::TypeStore::allocateConstructor):
* Source/WebGPU/WGSL/TypeStore.h:
* Source/WebGPU/WGSL/Types.h:
* Source/WebGPU/WGSL/WGSL.h:
* Source/WebGPU/WebGPU.xcodeproj/project.pbxproj:

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




More information about the webkit-changes mailing list