Srdjan Mitrovic
1595117898
Investigate & fix issues around usage_count and deoptimization_count
...
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org/1559653002 .
2016-01-05 09:40:23 -08:00
Srdjan Mitrovic
fe4a5d7672
This adds a mechanism to invalidate code that was generated in the background. The invalidation can happen if a relevant event was invoked between background compilation start and installation of code (e.g, field type invalidatet, subclasses added, deferred loading).
...
We introduce 3 invalidation generation counters: CHA, field and library prefixes. If one of the counters was incremented during compilation, and is relevant for that compilation, the code installation is skipped since that code may have become invalid in the meantime.
Add BackgroundCompilationResult that remembers the 3 invalidation generations.
The generational counter can rollover, which is OK.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org/1418813008 .
2015-10-30 12:18:52 -07:00
Srdjan Mitrovic
edccf3af0a
Cleanup: we are not patching entries any longer
...
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1376963002 .
2015-09-30 10:22:59 -07:00
Florian Schneider
bac82e2592
VM: New calling convention for generated code.
...
Instead of calling code object directly, call indirectly and
pass the code object in a register. The object pool is then loaded from
the code object. This is another preparation step for making generated code
relocatable.
All non-ia32 platforms:
No entry patching.
ARM:
PC marker (now code object) moves to the same place as on x64 (below saved PP, above saved FP).
R9 is now used as PP, R10 as CODE_REG.
BUG=
R=koda@google.com , rmacnak@google.com
Committed: https://github.com/dart-lang/sdk/commit/1d343e5a7b75168fb6c9f86b64c55173cdbdc9b2
Review URL: https://codereview.chromium.org//1192103004 .
2015-09-19 13:21:09 +02:00
Florian Schneider
7af7a2db87
Revert "VM: New calling convention for generated code."
...
This reverts commit 1d343e5a7b .
Because of Windows test failures.
BUG=
TBR=whesse@google.com
Review URL: https://codereview.chromium.org//1343373003 .
2015-09-16 13:46:05 +02:00
Florian Schneider
1d343e5a7b
VM: New calling convention for generated code.
...
Instead of calling code object directly, call indirectly and
pass the code object in a register. The object pool is then loaded from
the code object. This is another preparation step for making generated code
relocatable.
All non-ia32 platforms:
No entry patching.
ARM:
PC marker (now code object) moves to the same place as on x64 (below saved PP, above saved FP).
R9 is now used as PP, R10 as CODE_REG.
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1192103004 .
2015-09-16 13:05:58 +02:00
Srdjan Mitrovic
d503d2f0ed
Added full deferred loading semantic to precompiled/--noopt/eager-loading code (some corner cases, e.g., compile-time errors for constants, still missing)
...
BUG=
R=hausner@google.com
Review URL: https://codereview.chromium.org//1211273011 .
2015-07-09 10:56:55 -07:00
Srdjan Mitrovic
b611952ead
Prevent excessive deoptimization when optimistically assuming Smi in typed data stores.
...
Moved ICData ahead of class Function, since class Function needs type ICData::DeoptReasonID.
BUG=
R=fschneider@google.com
Review URL: https://codereview.chromium.org//1149403005
2015-06-01 11:42:42 -07:00
koda@google.com
60b12996ec
Track references to allocation stubs via static_calls_table, instead of keeping two referencers alive.
...
(Verbatim copy of srdjan's https://codereview.chromium.org/609893002/ )
TBR=srdjan@google.com
Review URL: https://codereview.chromium.org//608913002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40738 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-26 20:17:53 +00:00
koda@google.com
a56293ab7d
Break out WeakCodeReferences to own file in preparation to use it outside object.cc.
...
R=srdjan@google.com
Review URL: https://codereview.chromium.org//603743002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40656 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-24 22:43:05 +00:00