|
This patch much improves our tracking of whether function is
called from within a loop or not. In the past we lost the
information if a call site went megamorphic before a lazily
compiled callee was called for the first time. Now we track
that correctly (this is an issue that affects richards).
We still don't manage to track the in-loop state through a
constructor call, since constructor calls use LoadICs instead
of CallICs. This issue affects delta-blue. So in this patch
we assume that lazy compilations that don't happen through a
CallIC happen from inside a loop. I have an idea to fix this
but this patch is big enough already.
With our improved tracking of in-loop state I have switched
off the inlining of in-object loads for code that is not in
a loop. This benefits compile speed. One issue is that
eagerly compiled code now doesn't get the in-object loads
inlined. We need to eagerly compile less code to fix this.
Committed: http://code.google.com/p/v8/source/detail?r=2046
Total comments: 13
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+244 lines, -139 lines) |
Patch |
|
M |
src/arm/codegen-arm.h
|
View
|
|
2 chunks |
+3 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/arm/codegen-arm.cc
|
View
|
|
7 chunks |
+14 lines, -6 lines |
1 comment
|
Download
|
|
M |
src/arm/ic-arm.cc
|
View
|
|
3 chunks |
+3 lines, -3 lines |
2 comments
|
Download
|
|
M |
src/arm/stub-cache-arm.cc
|
View
|
|
4 chunks |
+9 lines, -5 lines |
3 comments
|
Download
|
|
M |
src/builtins.cc
|
View
|
|
1 chunk |
+6 lines, -6 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.h
|
View
|
|
1 chunk |
+4 lines, -0 lines |
0 comments
|
Download
|
|
M |
src/code-stubs.cc
|
View
|
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
|
M |
src/codegen.cc
|
View
|
|
2 chunks |
+15 lines, -12 lines |
1 comment
|
Download
|
|
M |
src/globals.h
|
View
|
|
2 chunks |
+6 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/ia32/codegen-ia32.h
|
View
|
|
2 chunks |
+1 line, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/codegen-ia32.cc
|
View
|
|
6 chunks |
+19 lines, -9 lines |
0 comments
|
Download
|
|
M |
src/ia32/ic-ia32.cc
|
View
|
|
3 chunks |
+7 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ia32/stub-cache-ia32.cc
|
View
|
|
4 chunks |
+7 lines, -5 lines |
2 comments
|
Download
|
|
M |
src/ia32/virtual-frame-ia32.cc
|
View
|
|
1 chunk |
+2 lines, -3 lines |
0 comments
|
Download
|
|
M |
src/ic.h
|
View
|
|
1 chunk |
+2 lines, -1 line |
1 comment
|
Download
|
|
M |
src/ic.cc
|
View
|
|
8 chunks |
+35 lines, -18 lines |
2 comments
|
Download
|
|
M |
src/objects.h
|
View
|
|
3 chunks |
+20 lines, -13 lines |
0 comments
|
Download
|
|
M |
src/objects.cc
|
View
|
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
|
M |
src/objects-inl.h
|
View
|
|
5 chunks |
+16 lines, -1 line |
1 comment
|
Download
|
|
M |
src/runtime.cc
|
View
|
|
1 chunk |
+8 lines, -2 lines |
0 comments
|
Download
|
|
M |
src/stub-cache.h
|
View
|
|
5 chunks |
+25 lines, -11 lines |
0 comments
|
Download
|
|
M |
src/stub-cache.cc
|
View
|
|
16 chunks |
+41 lines, -32 lines |
0 comments
|
Download
|
Total messages: 3 (0 generated)
|