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.

Reply via email to