[Crankshaft] Allow inlining of callees that don't pass FLAG_hydrogen_filter
To be useful for narrowing down bugs, --hydrogen-filter shouldn't prevent any inlining that the function(s) being allowed to get optimized want(s) to do. Free bonus content in this CL: support FLAG_stop_at in lithium-codegen-arm64, copied from full-codegen-arm64. Review URL: https://codereview.chromium.org/1407043004 Cr-Commit-Position: refs/heads/master@{#31333}
This commit is contained in:
parent
cf71c28f13
commit
192c0f7234
@ -625,7 +625,12 @@ bool LCodeGen::GeneratePrologue() {
|
|||||||
if (info()->IsOptimizing()) {
|
if (info()->IsOptimizing()) {
|
||||||
ProfileEntryHookStub::MaybeCallEntryHook(masm_);
|
ProfileEntryHookStub::MaybeCallEntryHook(masm_);
|
||||||
|
|
||||||
// TODO(all): Add support for stop_t FLAG in DEBUG mode.
|
#ifdef DEBUG
|
||||||
|
if (strlen(FLAG_stop_at) > 0 &&
|
||||||
|
info()->literal()->name()->IsUtf8EqualTo(CStrVector(FLAG_stop_at))) {
|
||||||
|
__ Debug("stop-at", __LINE__, BREAK);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Sloppy mode functions and builtins need to replace the receiver with the
|
// Sloppy mode functions and builtins need to replace the receiver with the
|
||||||
// global proxy when called as functions (without an explicit receiver
|
// global proxy when called as functions (without an explicit receiver
|
||||||
|
@ -8278,11 +8278,12 @@ int HOptimizedGraphBuilder::InliningAstSize(Handle<JSFunction> target) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Target must be inlineable.
|
// Target must be inlineable.
|
||||||
if (!target_shared->IsInlineable()) {
|
BailoutReason noopt_reason = target_shared->disable_optimization_reason();
|
||||||
|
if (!target_shared->IsInlineable() && noopt_reason != kHydrogenFilter) {
|
||||||
TraceInline(target, caller, "target not inlineable");
|
TraceInline(target, caller, "target not inlineable");
|
||||||
return kNotInlinable;
|
return kNotInlinable;
|
||||||
}
|
}
|
||||||
if (target_shared->disable_optimization_reason() != kNoReason) {
|
if (noopt_reason != kNoReason && noopt_reason != kHydrogenFilter) {
|
||||||
TraceInline(target, caller, "target contains unsupported syntax [early]");
|
TraceInline(target, caller, "target contains unsupported syntax [early]");
|
||||||
return kNotInlinable;
|
return kNotInlinable;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user