Bug 133834

Summary: make RegisterAllocator smarter
Product: WebKit Reporter: Alex Christensen <achristensen>
Component: CSSAssignee: Alex Christensen <achristensen>
Status: RESOLVED FIXED    
Severity: Enhancement CC: benjamin, commit-queue
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Patch
none
Patch none

Description Alex Christensen 2014-06-12 17:52:35 PDT
The register allocator should not use a hash set for the few registers it keeps track of.  It should use a deque to cycle the register usage, and it should also have a way to indicate a preferred register to allocate.
Comment 1 Alex Christensen 2014-06-12 18:05:36 PDT
Created attachment 233013 [details]
Patch
Comment 2 Benjamin Poulain 2014-06-13 12:54:55 PDT
Comment on attachment 233013 [details]
Patch

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

Very neat! I love it.

> Source/WebCore/cssjit/RegisterAllocator.h:93
> +        RELEASE_ASSERT(m_registers.size());

I think you should put this assertion one line above. Otherwise it looks a little weird accessing the first element before checking if the size is valid.

> Source/WebCore/cssjit/RegisterAllocator.h:113
> +    JSC::MacroAssembler::RegisterID allocateRegisterWithPreference(JSC::MacroAssembler::RegisterID registerID)

registerID -> preferedRegisterID?

> Source/WebCore/cssjit/RegisterAllocator.h:115
> +        UNUSED_PARAM(registerID);

Forgot this?

> Source/WebCore/cssjit/RegisterAllocator.h:133
> +        for (auto reg : m_registers)

reg -> register
Comment 3 Alex Christensen 2014-06-13 13:55:52 PDT
Created attachment 233072 [details]
Patch
Comment 4 WebKit Commit Bot 2014-06-13 15:27:22 PDT
Comment on attachment 233072 [details]
Patch

Clearing flags on attachment: 233072

Committed r169953: <http://trac.webkit.org/changeset/169953>
Comment 5 WebKit Commit Bot 2014-06-13 15:27:24 PDT
All reviewed patches have been landed.  Closing bug.