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

Issue 203523011: Introduce a lazy-compile stub for functions. (Closed)

Created:
6 years, 9 months ago by Florian Schneider
Modified:
6 years, 8 months ago
Reviewers:
zra
CC:
reviews_dartlang.org, vm-dev_dartlang.org, srdjan, Ivan Posva
Visibility:
Public.

Description

Introduce a lazy-compile stub for functions. The function's code pointer is either a lazy-compile stub or the compiled code. The function is compiled on invocation. There is no need to check for null when invoking a function. This means one check less when invoking functions via a stub. For this I added a LazyCompile stub. Additional cleanup in Stackmap and PcDescriptors (remove unused code pointer, and changed smi-lengh into a raw integer). R=zra@google.com Committed: https://code.google.com/p/dart/source/detail?r=34643

Patch Set 1 #

Patch Set 2 : added ARM port #

Patch Set 3 : rebased & added MIPS code #

Total comments: 2

Patch Set 4 : #

Patch Set 5 : simplified to one lazy-compile stub #

Patch Set 6 : rebased #

Unified diffs Side-by-side diffs Delta from patch set Stats (+174 lines, -432 lines) Patch
M runtime/vm/code_descriptors.cc View 1 2 3 4 5 1 chunk +0 lines, -1 line 0 comments Download
M runtime/vm/code_generator.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/compiler.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M runtime/vm/flow_graph_compiler_arm.cc View 1 2 3 4 5 1 chunk +3 lines, -17 lines 0 comments Download
M runtime/vm/flow_graph_compiler_ia32.cc View 1 2 3 4 5 1 chunk +3 lines, -18 lines 0 comments Download
M runtime/vm/flow_graph_compiler_mips.cc View 1 2 3 4 5 1 chunk +4 lines, -16 lines 0 comments Download
M runtime/vm/flow_graph_compiler_x64.cc View 1 2 3 4 5 1 chunk +4 lines, -19 lines 0 comments Download
M runtime/vm/gc_marker.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/megamorphic_cache_table.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/object.h View 1 2 3 4 5 4 chunks +4 lines, -11 lines 0 comments Download
M runtime/vm/object.cc View 1 2 3 4 5 8 chunks +19 lines, -15 lines 0 comments Download
M runtime/vm/raw_object.h View 1 2 3 4 5 2 chunks +1 line, -3 lines 0 comments Download
M runtime/vm/raw_object.cc View 1 2 3 4 5 3 chunks +4 lines, -10 lines 0 comments Download
M runtime/vm/raw_object_snapshot.cc View 1 2 3 4 5 3 chunks +9 lines, -1 line 0 comments Download
M runtime/vm/runtime_entry_test.cc View 1 2 3 4 5 1 chunk +1 line, -1 line 0 comments Download
M runtime/vm/stub_code.h View 1 2 3 4 5 3 chunks +2 lines, -1 line 0 comments Download
M runtime/vm/stub_code_arm.cc View 1 2 3 4 5 5 chunks +30 lines, -76 lines 0 comments Download
M runtime/vm/stub_code_ia32.cc View 1 2 3 4 5 5 chunks +25 lines, -74 lines 0 comments Download
M runtime/vm/stub_code_mips.cc View 1 2 3 4 5 5 chunks +30 lines, -85 lines 0 comments Download
M runtime/vm/stub_code_x64.cc View 1 2 3 4 5 4 chunks +30 lines, -79 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Florian Schneider
6 years, 9 months ago (2014-03-19 17:14:05 UTC) #1
Florian Schneider
+cc srdjan, iposva This is one more step on the way to redoing closure calls. ...
6 years, 9 months ago (2014-03-19 17:17:15 UTC) #2
Florian Schneider
On 2014/03/19 17:17:15, Florian Schneider wrote: > +cc srdjan, iposva > > This is one ...
6 years, 9 months ago (2014-03-21 10:41:30 UTC) #3
zra
https://codereview.chromium.org/203523011/diff/40001/runtime/vm/raw_object.cc File runtime/vm/raw_object.cc (right): https://codereview.chromium.org/203523011/diff/40001/runtime/vm/raw_object.cc#newcode376 runtime/vm/raw_object.cc:376: (fn.CurrentCode() == fn.unoptimized_code()) && I think you also need ...
6 years, 9 months ago (2014-03-21 14:44:31 UTC) #4
Florian Schneider
https://codereview.chromium.org/203523011/diff/40001/runtime/vm/raw_object.cc File runtime/vm/raw_object.cc (right): https://codereview.chromium.org/203523011/diff/40001/runtime/vm/raw_object.cc#newcode376 runtime/vm/raw_object.cc:376: (fn.CurrentCode() == fn.unoptimized_code()) && On 2014/03/21 14:44:31, zra wrote: ...
6 years, 9 months ago (2014-03-21 15:13:58 UTC) #5
Florian Schneider
Any more comments?
6 years, 8 months ago (2014-03-31 11:10:56 UTC) #6
zra
lgtm with questions. Sorry for the long delay. Hadn't seen the updated change. What is ...
6 years, 8 months ago (2014-03-31 20:49:03 UTC) #7
Florian Schneider
On 2014/03/31 20:49:03, zra wrote: > lgtm with questions. > > Sorry for the long ...
6 years, 8 months ago (2014-04-01 15:06:17 UTC) #8
Florian Schneider
6 years, 8 months ago (2014-04-02 12:38:09 UTC) #9
Message was sent while issue was closed.
Committed patchset #6 manually as r34643 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698