Bug 133834 - make RegisterAllocator smarter
Summary: make RegisterAllocator smarter
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Enhancement
Assignee: Alex Christensen
Depends on:
Reported: 2014-06-12 17:52 PDT by Alex Christensen
Modified: 2014-06-13 15:27 PDT (History)
2 users (show)

See Also:

Patch (11.24 KB, patch)
2014-06-12 18:05 PDT, Alex Christensen
no flags Details | Formatted Diff | Diff
Patch (11.29 KB, patch)
2014-06-13 13:55 PDT, Alex Christensen
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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]
Comment 2 Benjamin Poulain 2014-06-13 12:54:55 PDT
Comment on attachment 233013 [details]

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]
Comment 4 WebKit Commit Bot 2014-06-13 15:27:22 PDT
Comment on attachment 233072 [details]

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.