Bug 115581

Summary: Remove CSS selector profiler branches from ElementRuleCollector loop.
Product: WebKit Reporter: Andreas Kling <kling>
Component: CSSAssignee: Andreas Kling <kling>
Status: RESOLVED FIXED    
Severity: Normal CC: commit-queue, esprehn+autocc, glenn, kling, koivisto, macpherson, menard
Priority: P2 Keywords: Performance
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch koivisto: review+

Description Andreas Kling 2013-05-03 20:45:54 PDT
Remove CSS selector profiler branches from ElementRuleCollector loop.
Comment 1 Andreas Kling 2013-05-03 20:46:26 PDT
Created attachment 200514 [details]
Patch
Comment 2 Antti Koivisto 2013-05-03 20:53:54 PDT
Comment on attachment 200514 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=200514&action=review

> Source/WebCore/css/ElementRuleCollector.cpp:409
> +    if (InspectorInstrumentation::hasFrontends())
> +        doCollectMatchingRulesForList<true>(rules, matchRequest, ruleRange);
> +    else
> +        doCollectMatchingRulesForList<false>(rules, matchRequest, ruleRange);

Please use early return for the exceptional path. UNLIKELY might be good too.
Comment 3 Andreas Kling 2013-05-04 08:02:39 PDT
Committed r149557: <http://trac.webkit.org/changeset/149557>