Reviewers: Jakob, Yang,
Message:
PTAL
https://codereview.chromium.org/184923002/diff/20001/src/compiler.cc
File src/compiler.cc (right):
https://codereview.chromium.org/184923002/diff/20001/src/compiler.cc#newcode1073
src/compiler.cc:1073: return
Handle<Code>(shared->GetCodeFromOptimizedCodeMap(index));
Revert change from r19603
https://codereview.chromium.org/184923002/diff/20001/src/factory.cc
File src/factory.cc (right):
https://codereview.chromium.org/184923002/diff/20001/src/factory.cc#newcode970
src/factory.cc:970:
result->ReplaceCode(function_info->GetCodeFromOptimizedCodeMap(index));
Revert change from r19603
https://codereview.chromium.org/184923002/diff/20001/src/objects-inl.h
File src/objects-inl.h (left):
https://codereview.chromium.org/184923002/diff/20001/src/objects-inl.h#oldcode5440
src/objects-inl.h:5440:
shared()->EvictFromOptimizedCodeMap(context()->native_context(),
Partial revert of r19603, we don't need to keep code cache and optimized
function list in sync anymore.
https://codereview.chromium.org/184923002/diff/20001/src/objects.cc
File src/objects.cc (right):
https://codereview.chromium.org/184923002/diff/20001/src/objects.cc#newcode9634
src/objects.cc:9634: void
SharedFunctionInfo::EvictFromOptimizedCodeMap(Code* optimized_code,
Revert change from r19603
https://codereview.chromium.org/184923002/diff/20001/src/objects.h
File src/objects.h (right):
https://codereview.chromium.org/184923002/diff/20001/src/objects.h#newcode6667
src/objects.h:6667: // Removed a specific optimized code object from the
optimized code map.
Revert change from r19603
Description:
Clear optimized code cache in shared function info when code gets
deoptimized.
This adds a pointer to the shared function info into deoptimization data of
an
optimized code. Whenever the code is deoptimized, it clears the cache in the
shared function info.
This fixes the problem when the optimized function dies in new space GC
before
the code is deoptimized due to code dependency and before the optimized code
cache is cleared in old space GC (see mjsunit/regress/regress-343609.js).
This partially reverts r19603 because we need to be able to evict specific
code
from the optimized code cache.
BUG=343609
LOG=Y
TEST=mjsunit/regress/regress-343609.js
Please review this at https://codereview.chromium.org/184923002/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+148, -47 lines):
M src/a64/deoptimizer-a64.cc
M src/a64/lithium-codegen-a64.cc
M src/arm/deoptimizer-arm.cc
M src/arm/lithium-codegen-arm.cc
M src/compiler.cc
M src/deoptimizer.cc
M src/factory.cc
M src/ia32/deoptimizer-ia32.cc
M src/ia32/lithium-codegen-ia32.cc
M src/mips/deoptimizer-mips.cc
M src/mips/lithium-codegen-mips.cc
M src/objects-inl.h
M src/objects.h
M src/objects.cc
M src/runtime.cc
M src/x64/deoptimizer-x64.cc
M src/x64/lithium-codegen-x64.cc
M test/cctest/test-heap.cc
A test/mjsunit/regress/regress-343609.js
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.