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

Issue 2921473003: PPC/S390: [compiler] Delay allocation of code-embedded heap numbers.

Created:
3 years, 6 months ago by Sampson
Modified:
3 years, 5 months ago
CC:
v8-reviews_googlegroups.com
Target Ref:
refs/heads/master
Project:
v8
Visibility:
Public.

Description

PPC/S390: [compiler] Delay allocation of code-embedded heap numbers. Port 659e8f7b5cd318dd486f6853c4da47a9a8587aa6 Original Commit Message: Instead of allocating and embedding certain heap numbers into the code during code assembly, emit dummies but record the allocation requests. Later then, in Assembler::GetCode, allocate the heap numbers and patch the code by replacing the dummies with the actual objects. The RelocInfos for the embedded objects are already recorded correctly when emitting the dummies. R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, bjaideep@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:6048 LOG=N

Patch Set 1 #

Patch Set 2 : additional PPC changes #

Patch Set 3 : changes for s390 #

Patch Set 4 : additional changes for s390 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+217 lines, -140 lines) Patch
M src/compiler/ppc/code-generator-ppc.cc View 1 2 chunks +4 lines, -8 lines 0 comments Download
M src/compiler/s390/code-generator-s390.cc View 1 2 2 chunks +4 lines, -8 lines 0 comments Download
M src/ppc/assembler-ppc.h View 1 4 chunks +34 lines, -3 lines 0 comments Download
M src/ppc/assembler-ppc.cc View 12 chunks +46 lines, -36 lines 0 comments Download
M src/ppc/assembler-ppc-inl.h View 1 chunk +3 lines, -3 lines 0 comments Download
M src/ppc/codegen-ppc.cc View 1 1 chunk +1 line, -1 line 0 comments Download
M src/ppc/macro-assembler-ppc.cc View 4 chunks +7 lines, -4 lines 0 comments Download
M src/regexp/ppc/regexp-macro-assembler-ppc.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/regexp/s390/regexp-macro-assembler-s390.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/s390/assembler-s390.h View 1 2 4 chunks +31 lines, -4 lines 0 comments Download
M src/s390/assembler-s390.cc View 1 2 16 chunks +46 lines, -32 lines 0 comments Download
M src/s390/assembler-s390-inl.h View 1 2 1 chunk +3 lines, -3 lines 0 comments Download
M src/s390/codegen-s390.cc View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/s390/macro-assembler-s390.cc View 1 2 9 chunks +12 lines, -12 lines 0 comments Download
M test/cctest/test-assembler-ppc.cc View 12 chunks +12 lines, -12 lines 0 comments Download
M test/cctest/test-assembler-s390.cc View 1 2 3 11 chunks +11 lines, -11 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
neis
Hi, this is missing the changes to src/compiler/ppc/code-generator-ppc.cc. (Also, is this CL supposed to include ...
3 years, 6 months ago (2017-06-01 06:59:49 UTC) #1
Sampson
On 2017/06/01 06:59:49, neis wrote: > Hi, this is missing the changes to src/compiler/ppc/code-generator-ppc.cc. > ...
3 years, 6 months ago (2017-06-01 21:07:37 UTC) #2
neis
3 years, 6 months ago (2017-06-02 07:19:28 UTC) #3
On 2017/06/01 21:07:37, Sampson wrote:
> On 2017/06/01 06:59:49, neis wrote:
> > Hi, this is missing the changes to src/compiler/ppc/code-generator-ppc.cc.
> > (Also, is this CL supposed to include the S390 changes?)
> 
> For the changes in code-generator-ppc.cc and code-generator-s390.cc, why are
we
> setting is_heap_number to true through EmbeddedNumber(double) and expect it to
> be false in immediate()?

In the case where the operand is a heap number, it must not be accessed using
the immediate() getter. The CL is missing the changes to assembler-*.cc that
handle this case, analogous to the changes to move_32_bit_immediate in
https://codereview.chromium.org/2900683002/diff/180001/src/arm/assembler-arm.cc.
From a quick look at PPC it looks like this should happen inside the "  if
(use_constant_pool_for_mov(dst, src, canOptimize)) {                            
                                                                                
        " branch in mov().

Making immediate() fail for heap numbers rather than return the dummy (0) is
just a precaution.

Powered by Google App Engine
This is Rietveld 408576698