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

Issue 9837004: Port count-based profiler to ARM (Closed)

Created:
8 years, 9 months ago by Jakob Kummerow
Modified:
8 years, 9 months ago
Reviewers:
Erik Corry
CC:
v8-dev
Visibility:
Public.

Description

Port count-based profiler to ARM Committed: https://code.google.com/p/v8/source/detail?r=11120

Patch Set 1 #

Total comments: 12

Patch Set 2 : addressed comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+169 lines, -61 lines) Patch
M src/arm/assembler-arm.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/assembler-arm.cc View 1 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/deoptimizer-arm.cc View 1 3 chunks +24 lines, -6 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 28 chunks +114 lines, -50 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 5 chunks +15 lines, -2 lines 0 comments Download
M src/isolate.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/isolate-inl.h View 1 chunk +10 lines, -0 lines 0 comments Download
M src/runtime.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/runtime-profiler.cc View 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Jakob Kummerow
This CL contains the ARM ports of the following concepts: - count-based interrupts instead of ...
8 years, 9 months ago (2012-03-22 10:53:23 UTC) #1
Erik Corry
LGTM http://codereview.chromium.org/9837004/diff/1/src/arm/deoptimizer-arm.cc File src/arm/deoptimizer-arm.cc (right): http://codereview.chromium.org/9837004/diff/1/src/arm/deoptimizer-arm.cc#newcode112 src/arm/deoptimizer-arm.cc:112: static const int32_t kBranchBeforeInterrupt = 0x5a000004; There is ...
8 years, 9 months ago (2012-03-23 09:55:52 UTC) #2
Jakob Kummerow
8 years, 9 months ago (2012-03-23 12:07:32 UTC) #3
Thanks for the review. I've addressed all of your comments, except for one that
I did not agree with (see below).

OK?

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/deoptimizer-arm.cc
File src/arm/deoptimizer-arm.cc (right):

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/deoptimizer-arm...
src/arm/deoptimizer-arm.cc:112: static const int32_t kBranchBeforeInterrupt = 
0x5a000004;
On 2012/03/23 09:55:53, Erik Corry wrote:
> There is a bunch of these in assembler-arm.h eg kMovLrPc.  I think these
should
> go there too.

I disagree. They contain condition codes and jump offsets, and are therefore
strictly tied to this usage site. I don't think they can ever be shared, so IMHO
pulling them up to a more global place reduces readability/understandability of
this code here.

I could split the definitions:
/*assembler-arm.{h|cc}*/
const Instr kBcs = 0x2a000000;
const Instr kBpl = 0x5a000000;
/*here/*
static const int32_t kBranchBeforeStackCheck = kBce | 1;
static const int32_t kBranchBeforeInterrupt = kBpl | 4;

Would you like that better?

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/deoptimizer-arm...
src/arm/deoptimizer-arm.cc:170: (al | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BLX
| ip.code()));
On 2012/03/23 09:55:53, Erik Corry wrote:
> What is this instruction?

"blx ip", copied from above in the interest of unification, see also the
comments in PatchStackCheckCodeAt listing the relevant machine code.
Since this instruction is not specific to this site, I've moved it to
assembler-arm.h.

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/full-codegen-ar...
File src/arm/full-codegen-arm.cc (right):

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/full-codegen-ar...
src/arm/full-codegen-arm.cc:113: // TODO(jkummerow): Obsolete as soon as x64 is
updated. Remove.
On 2012/03/23 09:55:53, Erik Corry wrote:
> Does this really have to do with x64?

Yes. I don't want to break compilation before these changes are ported to all
architectures. Just wait for my next CL :-)

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/full-codegen-ar...
src/arm/full-codegen-arm.cc:354: weight = Min(127, Max(1, distance / 142));
On 2012/03/23 09:55:53, Erik Corry wrote:
> These constants need names.
> 

Done.

https://chromiumcodereview.appspot.com/9837004/diff/1/src/arm/full-codegen-ar...
src/arm/full-codegen-arm.cc:405: weight = Min(127, Max(1, distance / 142));
On 2012/03/23 09:55:53, Erik Corry wrote:
> Here they are again!  (Or are these new constants that happen to have the same
> values :-)

Done.

https://chromiumcodereview.appspot.com/9837004/diff/1/src/ia32/full-codegen-i...
File src/ia32/full-codegen-ia32.cc (right):

https://chromiumcodereview.appspot.com/9837004/diff/1/src/ia32/full-codegen-i...
src/ia32/full-codegen-ia32.cc:104: // TODO(jkummerow): Obsolete as soon as x64
is updated. Remove.
On 2012/03/23 09:55:53, Erik Corry wrote:
> hmmm

See my response in full-codegen-arm.cc.

Powered by Google App Engine
This is Rietveld 408576698