This change aims to introduce the separation of the RegisterAllocator model, using the initial prototype for GreedyAllocator as proof of concept.
Summary:
- new flag, turbo-greedy-regalloc, enabling the new allocator. Default
false.
- initial, untested implementation for the GreedyAllocator.
BUG=
Review URL: https://codereview.chromium.org/1061923005
Cr-Commit-Position: refs/heads/master@{#28018}
Reason for revert:
Breaks Static Initializers test.
http://build.chromium.org/p/client.v8/builders/V8%20Linux64/builds/3210/steps/Static-Initializers/logs/stdio
Original issue's description:
> Introducing the LLVM greedy register allocator.
>
> This change aims to introduce the separation of the RegisterAllocator model,
> using the initial prototype for RegisterAllocatorGreedy as proof of concept.
>
> Summary:
> - new flag, turbo-greedy-regalloc, enabling the new allocator. Default
> false.
> - separated RegisterAllocator into a base type and two derived,
> RegisterAllocatorLinear (the one currently used in TurboFan) and
> RegisterAllocatorGreedy (the new one).
> - initial, untested impementation for the greedy allocator.
>
> BUG=
>
> Committed: https://crrev.com/ec542dea6b6a0cb82d1578a389569d019a59121d
> Cr-Commit-Position: refs/heads/master@{#28015}
TBR=dcarney@chromium.org,titzer@chromium.org,jarin@chromium.org,jvoung@chromium.org,mtrofin@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=
Review URL: https://codereview.chromium.org/1080953006
Cr-Commit-Position: refs/heads/master@{#28017}
This change aims to introduce the separation of the RegisterAllocator model,
using the initial prototype for RegisterAllocatorGreedy as proof of concept.
Summary:
- new flag, turbo-greedy-regalloc, enabling the new allocator. Default
false.
- separated RegisterAllocator into a base type and two derived,
RegisterAllocatorLinear (the one currently used in TurboFan) and
RegisterAllocatorGreedy (the new one).
- initial, untested impementation for the greedy allocator.
BUG=
Review URL: https://codereview.chromium.org/1061923005
Cr-Commit-Position: refs/heads/master@{#28015}
- Use C++11 range based for loops.
- Remove duplicated virtual register set in unittests.
- Don't expose implementation details of InstructionSelector.
TEST=unittests
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/837423002
Cr-Commit-Position: refs/heads/master@{#25997}
Don't use the generic algorithm, but instead start going into the
direction of ControlReducer, using a stack plus a revisit queue to
not miss any more possibilities for reductions anymore.
TEST=cctest,unittests
R=dcarney@chromium.org
Committed: f047507370
Committed: 6e148989a4
Review URL: https://codereview.chromium.org/726513002
Cr-Commit-Position: refs/heads/master@{#25377}
Don't use the generic algorithm, but instead start going into the
direction of ControlReducer, using a stack plus a revisit queue to
not miss any more possibilities for reductions anymore.
TEST=cctest,unittests
R=dcarney@chromium.org
Committed: f047507370
Review URL: https://codereview.chromium.org/726513002
Cr-Commit-Position: refs/heads/master@{#25345}
Don't use the generic algorithm, but instead start going into the
direction of ControlReducer, using a stack plus a revisit queue to
not miss any more possibilities for reductions anymore.
TEST=cctest,unittests
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/726513002
Cr-Commit-Position: refs/heads/master@{#25326}