[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()) {
|
||||
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
|
||||
// global proxy when called as functions (without an explicit receiver
|
||||
|
@ -8278,11 +8278,12 @@ int HOptimizedGraphBuilder::InliningAstSize(Handle<JSFunction> target) {
|
||||
}
|
||||
|
||||
// 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");
|
||||
return kNotInlinable;
|
||||
}
|
||||
if (target_shared->disable_optimization_reason() != kNoReason) {
|
||||
if (noopt_reason != kNoReason && noopt_reason != kHydrogenFilter) {
|
||||
TraceInline(target, caller, "target contains unsupported syntax [early]");
|
||||
return kNotInlinable;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user