Title: [154562] trunk/Source/WebCore
Revision
154562
Author
[email protected]
Date
2013-08-24 21:19:43 -0700 (Sat, 24 Aug 2013)

Log Message

<https://webkit.org/b/120102> Inline SelectorQuery's execution traits

Reviewed by Sam Weinig.

For some reason, clang does not always inline the trait. The operations are so simple
that it shows up in profile.
Force the inlining to match the original speed.

* dom/SelectorQuery.cpp:
(WebCore::AllElementExtractorSelectorQueryTrait::appendOutputForElement):
(WebCore::SingleElementExtractorSelectorQueryTrait::appendOutputForElement):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (154561 => 154562)


--- trunk/Source/WebCore/ChangeLog	2013-08-25 04:17:06 UTC (rev 154561)
+++ trunk/Source/WebCore/ChangeLog	2013-08-25 04:19:43 UTC (rev 154562)
@@ -1,5 +1,19 @@
 2013-08-24  Benjamin Poulain  <[email protected]>
 
+        <https://webkit.org/b/120102> Inline SelectorQuery's execution traits
+
+        Reviewed by Sam Weinig.
+
+        For some reason, clang does not always inline the trait. The operations are so simple
+        that it shows up in profile.
+        Force the inlining to match the original speed.
+
+        * dom/SelectorQuery.cpp:
+        (WebCore::AllElementExtractorSelectorQueryTrait::appendOutputForElement):
+        (WebCore::SingleElementExtractorSelectorQueryTrait::appendOutputForElement):
+
+2013-08-24  Benjamin Poulain  <[email protected]>
+
         Remove a useless #include from StyledElement
         https://bugs.webkit.org/show_bug.cgi?id=120245
 

Modified: trunk/Source/WebCore/dom/SelectorQuery.cpp (154561 => 154562)


--- trunk/Source/WebCore/dom/SelectorQuery.cpp	2013-08-25 04:17:06 UTC (rev 154561)
+++ trunk/Source/WebCore/dom/SelectorQuery.cpp	2013-08-25 04:19:43 UTC (rev 154562)
@@ -83,7 +83,7 @@
 struct AllElementExtractorSelectorQueryTrait {
     typedef Vector<RefPtr<Node>> OutputType;
     static const bool shouldOnlyMatchFirstElement = false;
-    static void appendOutputForElement(OutputType& output, Element* element) { output.append(element); }
+    ALWAYS_INLINE static void appendOutputForElement(OutputType& output, Element* element) { output.append(element); }
 };
 
 PassRefPtr<NodeList> SelectorDataList::queryAll(Node* rootNode) const
@@ -96,7 +96,7 @@
 struct SingleElementExtractorSelectorQueryTrait {
     typedef Element* OutputType;
     static const bool shouldOnlyMatchFirstElement = true;
-    static void appendOutputForElement(OutputType& output, Element* element)
+    ALWAYS_INLINE static void appendOutputForElement(OutputType& output, Element* element)
     {
         ASSERT(element);
         ASSERT(!output);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to