Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 898a587c355e381bb60f8dcf8fab59921aba1ec1
      
https://github.com/WebKit/WebKit/commit/898a587c355e381bb60f8dcf8fab59921aba1ec1
  Author: Geoffrey Garen <[email protected]>
  Date:   2026-05-13 (Wed, 13 May 2026)

  Changed paths:
    M Source/WebCore/css/calc/CSSCalcTree.cpp
    M Source/WebCore/css/calc/CSSCalcTree.h
    M Source/WebCore/rendering/PathOperation.cpp
    M Source/WebCore/rendering/PathOperation.h
    M Source/WebCore/style/calc/StyleCalculationTree.cpp
    M Source/WebCore/style/calc/StyleCalculationTree.h
    M Source/WebCore/style/values/shapes/StyleShapeFunction.cpp
    M Source/WebCore/style/values/shapes/StyleShapeFunction.h
    M Source/WebCore/style/values/shapes/StyleShapeOutside.cpp
    M Source/WebCore/style/values/shapes/StyleShapeOutside.h

  Log Message:
  -----------
  [Build Speed] Reduce mpark::variant template instantiation overhead
https://bugs.webkit.org/show_bug.cgi?id=314777
rdar://177027730

Reviewed by Sam Weinig.

Saves ~12 wall seconds (168 CPU seconds) in a clean build.

mpark::variant template instantiation is O(N^2) with regard to number
of variant types, plus other fixed costs.

This patch takes our most profilgate types and out-of-lines their template
instantiations.

* Source/WebCore/css/calc/CSSCalcTree.cpp:
(WebCore::CSSCalc::ChildOrNone::ChildOrNone):
(WebCore::CSSCalc::Children::Children):
(WebCore::CSSCalc::Children::operator=):
(WebCore::CSSCalc::Children::begin):
(WebCore::CSSCalc::Children::end):
(WebCore::CSSCalc::Children::rbegin):
(WebCore::CSSCalc::Children::rend):
(WebCore::CSSCalc::Children::begin const):
(WebCore::CSSCalc::Children::end const):
(WebCore::CSSCalc::Children::rbegin const):
(WebCore::CSSCalc::Children::rend const):
(WebCore::CSSCalc::Children::isEmpty const):
(WebCore::CSSCalc::Children::size const):
(WebCore::CSSCalc::Children::operator[]):
(WebCore::CSSCalc::Children::operator[] const):
(WebCore::CSSCalc::AnchorSide::AnchorSide):
* Source/WebCore/css/calc/CSSCalcTree.h:
(WebCore::CSSCalc::ChildOrNone::ChildOrNone): Deleted.
(WebCore::CSSCalc::Children::Children): Deleted.
(WebCore::CSSCalc::Children::operator=): Deleted.
(WebCore::CSSCalc::Children::isEmpty const): Deleted.
(WebCore::CSSCalc::Children::size const): Deleted.
(WebCore::CSSCalc::AnchorSide::AnchorSide): Deleted.
* Source/WebCore/rendering/PathOperation.cpp:
(WebCore::ShapePathOperation::ShapePathOperation):
* Source/WebCore/rendering/PathOperation.h:
* Source/WebCore/style/calc/StyleCalculationTree.cpp:
(WebCore::Style::Calculation::ChildOrNone::ChildOrNone):
(WebCore::Style::Calculation::Children::Children):
(WebCore::Style::Calculation::Children::operator=):
(WebCore::Style::Calculation::Children::begin):
(WebCore::Style::Calculation::Children::end):
(WebCore::Style::Calculation::Children::rbegin):
(WebCore::Style::Calculation::Children::rend):
(WebCore::Style::Calculation::Children::begin const):
(WebCore::Style::Calculation::Children::end const):
(WebCore::Style::Calculation::Children::rbegin const):
(WebCore::Style::Calculation::Children::rend const):
(WebCore::Style::Calculation::Children::isEmpty const):
(WebCore::Style::Calculation::Children::size const):
(WebCore::Style::Calculation::Children::operator[]):
(WebCore::Style::Calculation::Children::operator[] const):
* Source/WebCore/style/calc/StyleCalculationTree.h:
(WebCore::Style::Calculation::ChildConstruction<T>::make):
(WebCore::Style::Calculation::ChildConstruction<Number>::make): Deleted.
(WebCore::Style::Calculation::ChildConstruction<Percentage>::make): Deleted.
(WebCore::Style::Calculation::ChildConstruction<Dimension>::make): Deleted.
(WebCore::Style::Calculation::ChildOrNone::ChildOrNone): Deleted.
(WebCore::Style::Calculation::Children::Children): Deleted.
(WebCore::Style::Calculation::Children::operator=): Deleted.
(): Deleted.
(WebCore::Style::Calculation::Children::isEmpty const): Deleted.
(WebCore::Style::Calculation::Children::size const): Deleted.
* Source/WebCore/style/values/shapes/StyleShapeFunction.cpp:
(WebCore::Style::Shape::Shape):
(WebCore::Style::Blending<Shape>::blend):
(WebCore::Style::makeShapeFromPath):
* Source/WebCore/style/values/shapes/StyleShapeFunction.h:
* Source/WebCore/style/values/shapes/StyleShapeOutside.cpp:
(WebCore::Style::ShapeOutside::ShapeOutside):
(WebCore::Style::ShapeOutside::Value::create):
(WebCore::Style::ShapeOutside::Value::Value):
(WebCore::Style::ShapeOutside::Value::operator== const):
(WebCore::Style::ShapeOutside::ShapeAndShapeBox::ShapeAndShapeBox):
(WebCore::Style::CSSValueConversion<ShapeOutside>::operator):
(WebCore::Style::Blending<ShapeOutside>::blend):
* Source/WebCore/style/values/shapes/StyleShapeOutside.h:
(WebCore::Style::ShapeOutside::Value::create): Deleted.
(WebCore::Style::ShapeOutside::Value::Value): Deleted.
(WebCore::Style::ShapeOutside::Value::operator== const): Deleted.

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to