X87: [crankshaft] Record inlined shared function infos instead of closures.
port 388e791df9
(r28672).
original commit message:
The list of inlined functions is used in exactly two places - for live
edit and to prevent code flushing for inlined functions - and those are
fine with SharedFunctionInfo and don't require a closure.
This is one additional step towards inlining based on SharedFunctionInfo
instead of JSFunction.
BUG=
Review URL: https://codereview.chromium.org/1143003003
Cr-Commit-Position: refs/heads/master@{#28719}
This commit is contained in:
parent
f1cc4ed2b2
commit
aa31176ab1
@ -1262,17 +1262,10 @@ int LCodeGen::DefineDeoptimizationLiteral(Handle<Object> literal) {
|
||||
|
||||
|
||||
void LCodeGen::PopulateDeoptimizationLiteralsWithInlinedFunctions() {
|
||||
DCHECK(deoptimization_literals_.length() == 0);
|
||||
|
||||
const ZoneList<Handle<JSFunction> >* inlined_closures =
|
||||
chunk()->inlined_closures();
|
||||
|
||||
for (int i = 0, length = inlined_closures->length();
|
||||
i < length;
|
||||
i++) {
|
||||
DefineDeoptimizationLiteral(inlined_closures->at(i));
|
||||
DCHECK_EQ(0, deoptimization_literals_.length());
|
||||
for (auto function : chunk()->inlined_functions()) {
|
||||
DefineDeoptimizationLiteral(function);
|
||||
}
|
||||
|
||||
inlined_function_count_ = deoptimization_literals_.length();
|
||||
}
|
||||
|
||||
|
@ -2669,7 +2669,7 @@ LInstruction* LChunkBuilder::DoEnterInlined(HEnterInlined* instr) {
|
||||
inner->BindContext(instr->closure_context());
|
||||
inner->set_entry(instr);
|
||||
current_block_->UpdateEnvironment(inner);
|
||||
chunk_->AddInlinedClosure(instr->closure());
|
||||
chunk_->AddInlinedFunction(instr->shared());
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user