Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Issue 308313002: ARM64: Avoid regeneration of constants.

Created:
6 years, 6 months ago by Alexandre Rames
Modified:
6 years, 4 months ago
CC:
danno, Jakob Kummerow, v8-dev
Visibility:
Public.

Description

ARM64: Avoid regeneration of constants. At the lithium level, HConstants are cached and their virtual register reused to avoid regenerating them.

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+67 lines, -1 line) Patch
M src/arm64/lithium-arm64.h View 3 chunks +52 lines, -0 lines 0 comments Download
M src/arm64/lithium-arm64.cc View 3 chunks +13 lines, -1 line 0 comments Download
M src/hydrogen-osr.h View 1 chunk +2 lines, -0 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Alexandre Rames
This shows some improvement (up to ~5%) for some of the Octane benchmarks (up to ...
6 years, 6 months ago (2014-06-02 09:16:05 UTC) #1
danno
DBC: Changes EmitAtUses to allocate Tagged constants in registers is generally a very bad thing ...
6 years, 6 months ago (2014-06-02 09:28:25 UTC) #2
Alexandre Rames
On 2014/06/02 09:28:25, danno wrote: > DBC: Changes EmitAtUses to allocate Tagged constants in registers ...
6 years, 6 months ago (2014-06-02 09:37:54 UTC) #3
ulan
I am not sure why !info()->IsStub() check is triggering, but the approach with EmitAtUses seems ...
6 years, 6 months ago (2014-06-03 07:33:36 UTC) #4
danno
Actually, the right thing to do is to treat constants as normal values and teach ...
6 years, 6 months ago (2014-06-03 08:01:16 UTC) #5
Alexandre Rames
On 2014/06/03 08:01:16, danno wrote: > Actually, the right thing to do is to treat ...
6 years, 6 months ago (2014-06-03 08:27:25 UTC) #6
Jarin
On 2014/06/03 08:27:25, Alexandre Rames wrote: > On 2014/06/03 08:01:16, danno wrote: > > Actually, ...
6 years, 6 months ago (2014-06-03 11:04:35 UTC) #7
Alexandre Rames
Any progress on this topic?
6 years, 6 months ago (2014-06-12 13:08:08 UTC) #8
Jarin
6 years, 6 months ago (2014-06-12 15:12:06 UTC) #9
On 2014/06/12 13:08:08, Alexandre Rames wrote:
> Any progress on this topic?

There seem to be too many complications in the register allocator to fix the
constant handling there, so we decided against it (for now).

One of the reasons why EmitAtUses() == false does not work is lowering of
HParameters in registers (used by hydrogen stubs): Lowering of register
HParameter relies on the register not being clobbered until we reach the
parameter instruction; however, eager emission of constants is quite happy to
put the constants into registers and thus overwrite the parameters. All this is
fixable (e.g. by adding live ranges for parameters from the beginning of the
function), but it seems to be a lot of work.

I am sorry.

Powered by Google App Engine
This is Rietveld 408576698