Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Unified Diff: pkg/compiler/lib/src/cps_ir/inline.dart

Issue 1859343004: dartfmt pkg/compiler (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/gvn.dart ('k') | pkg/compiler/lib/src/cps_ir/insert_refinements.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/cps_ir/inline.dart
diff --git a/pkg/compiler/lib/src/cps_ir/inline.dart b/pkg/compiler/lib/src/cps_ir/inline.dart
index 076e809581579b6345116c7330d78b097dad0e82..cbb673dfe95a055ccd552111c7020af3f9e59048 100644
--- a/pkg/compiler/lib/src/cps_ir/inline.dart
+++ b/pkg/compiler/lib/src/cps_ir/inline.dart
@@ -14,8 +14,8 @@ import '../world.dart' show World;
import '../elements/elements.dart';
import '../js_backend/js_backend.dart' show JavaScriptBackend;
import '../js_backend/codegen/task.dart' show CpsFunctionCompiler;
-import '../types/types.dart' show
- FlatTypeMask, ForwardingTypeMask, TypeMask, UnionTypeMask;
+import '../types/types.dart'
+ show FlatTypeMask, ForwardingTypeMask, TypeMask, UnionTypeMask;
import '../universe/call_structure.dart' show CallStructure;
import '../universe/selector.dart' show Selector;
import 'package:js_ast/js_ast.dart' as js;
@@ -62,7 +62,7 @@ class CacheEntry {
if (callStructure == null) {
if (otherCallStructure != null) return false;
} else if (otherCallStructure == null ||
- !callStructure.match(otherCallStructure)) {
+ !callStructure.match(otherCallStructure)) {
return false;
}
@@ -97,20 +97,23 @@ class InliningCache {
// copied because the compiler passes will mutate them.
final CopyingVisitor copier = new CopyingVisitor();
- void _putInternal(ExecutableElement element, CallStructure callStructure,
+ void _putInternal(
+ ExecutableElement element,
+ CallStructure callStructure,
TypeMask receiver,
List<TypeMask> arguments,
bool decision,
FunctionDefinition function) {
- map.putIfAbsent(element, () => <CacheEntry>[])
- .add(new CacheEntry(callStructure, receiver, arguments, decision,
- function));
+ map.putIfAbsent(element, () => <CacheEntry>[]).add(
+ new CacheEntry(callStructure, receiver, arguments, decision, function));
}
/// Put a positive inlining decision in the cache.
///
/// A positive inlining decision maps to an IR function definition.
- void putPositive(ExecutableElement element, CallStructure callStructure,
+ void putPositive(
+ ExecutableElement element,
+ CallStructure callStructure,
TypeMask receiver,
List<TypeMask> arguments,
FunctionDefinition function) {
@@ -119,10 +122,8 @@ class InliningCache {
}
/// Put a negative inlining decision in the cache.
- void putNegative(ExecutableElement element,
- CallStructure callStructure,
- TypeMask receiver,
- List<TypeMask> arguments) {
+ void putNegative(ExecutableElement element, CallStructure callStructure,
+ TypeMask receiver, List<TypeMask> arguments) {
_putInternal(element, callStructure, receiver, arguments, false, null);
}
@@ -188,10 +189,11 @@ class Inliner implements Pass {
if (element is ConstructorBodyElement) {
ClassElement class_ = element.enclosingClass;
return !functionCompiler.compiler.world.hasAnyStrictSubclass(class_) &&
- class_.constructors.tail?.isEmpty ?? false;
+ class_.constructors.tail?.isEmpty ??
+ false;
}
- return functionCompiler.compiler.typesTask.typesInferrer.isCalledOnce(
- element);
+ return functionCompiler.compiler.typesTask.typesInferrer
+ .isCalledOnce(element);
}
void rewrite(FunctionDefinition node, [CallStructure callStructure]) {
@@ -344,25 +346,21 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
/// function that takes optional arguments not passed at the call site.
FunctionDefinition buildAdapter(InvokeMethod node, FunctionElement target) {
Parameter thisParameter = new Parameter(new ThisParameterLocal(target))
- ..type = node.receiver.type;
- Parameter interceptorParameter = node.interceptorRef != null
- ? new Parameter(null)
- : null;
- List<Parameter> parameters = new List<Parameter>.generate(
- node.argumentRefs.length,
- (int index) {
- // TODO(kmillikin): Use a hint for the parameter names.
- return new Parameter(null)
- ..type = node.argument(index).type;
- });
+ ..type = node.receiver.type;
+ Parameter interceptorParameter =
+ node.interceptorRef != null ? new Parameter(null) : null;
+ List<Parameter> parameters =
+ new List<Parameter>.generate(node.argumentRefs.length, (int index) {
+ // TODO(kmillikin): Use a hint for the parameter names.
+ return new Parameter(null)..type = node.argument(index).type;
+ });
Continuation returnContinuation = new Continuation.retrn();
CpsFragment cps = new CpsFragment();
FunctionSignature signature = target.functionSignature;
int requiredParameterCount = signature.requiredParameterCount;
List<Primitive> arguments = new List<Primitive>.generate(
- requiredParameterCount,
- (int index) => parameters[index]);
+ requiredParameterCount, (int index) => parameters[index]);
int parameterIndex = requiredParameterCount;
CallStructure newCallStructure;
@@ -400,21 +398,17 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
newCallStructure = new CallStructure(signature.parameterCount);
}
- Selector newSelector =
- new Selector(node.selector.kind, node.selector.memberName,
- newCallStructure);
- Primitive result = cps.invokeMethod(thisParameter,
- newSelector,
- node.mask,
- arguments,
+ Selector newSelector = new Selector(
+ node.selector.kind, node.selector.memberName, newCallStructure);
+ Primitive result = cps.invokeMethod(
+ thisParameter, newSelector, node.mask, arguments,
interceptor: interceptorParameter,
callingConvention: node.callingConvention);
result.type = typeSystem.getInvokeReturnType(node.selector, node.mask);
returnContinuation.parameters.single.type = result.type;
cps.invokeContinuation(returnContinuation, <Primitive>[result]);
- return new FunctionDefinition(target, thisParameter, parameters,
- returnContinuation,
- cps.root,
+ return new FunctionDefinition(
+ target, thisParameter, parameters, returnContinuation, cps.root,
interceptorParameter: interceptorParameter);
}
@@ -427,7 +421,7 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
// if the call was inlined, and the inlined function body is available in
// [_fragment]. If the call was not inlined, null is returned.
Primitive tryInlining(InvocationPrimitive invoke, FunctionElement target,
- CallStructure callStructure) {
+ CallStructure callStructure) {
// Quick checks: do not inline or even cache calls to targets without an
// AST node, targets that are asynchronous or generator functions, or
// targets containing a try statement.
@@ -468,9 +462,8 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
: abstractReceiver.nonNullable();
List<TypeMask> abstractArguments =
invoke.arguments.map(abstractType).toList();
- var cachedResult = _inliner.cache.get(target, callStructure,
- abstractReceiverInMethod,
- abstractArguments);
+ var cachedResult = _inliner.cache.get(
+ target, callStructure, abstractReceiverInMethod, abstractArguments);
// Negative inlining result in the cache.
if (cachedResult == InliningCache.NO_INLINE) return null;
@@ -482,11 +475,11 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
// Add a null check to the inlined function body if necessary. The
// cached function body does not contain the null check.
if (receiver != null && abstractReceiver.isNullable) {
- receiver = nullReceiverGuard(
- invoke, _fragment, receiver, abstractReceiver);
+ receiver =
+ nullReceiverGuard(invoke, _fragment, receiver, abstractReceiver);
}
return _fragment.inlineFunction(function, receiver, arguments,
- interceptor: invoke.interceptor, hint: invoke.hint);
+ interceptor: invoke.interceptor, hint: invoke.hint);
}
// Positive inlining result in the cache.
@@ -542,35 +535,30 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
return finish(function);
}
- Primitive nullReceiverGuard(InvocationPrimitive invoke,
- CpsFragment fragment,
- Primitive dartReceiver,
- TypeMask abstractReceiver) {
+ Primitive nullReceiverGuard(InvocationPrimitive invoke, CpsFragment fragment,
+ Primitive dartReceiver, TypeMask abstractReceiver) {
if (invoke is! InvokeMethod) return dartReceiver;
InvokeMethod invokeMethod = invoke;
Selector selector = invokeMethod.selector;
if (typeSystem.isDefinitelyNum(abstractReceiver, allowNull: true)) {
- Primitive condition = _fragment.letPrim(
- new ApplyBuiltinOperator(BuiltinOperator.IsNotNumber,
- <Primitive>[dartReceiver],
- invoke.sourceInformation));
+ Primitive condition = _fragment.letPrim(new ApplyBuiltinOperator(
+ BuiltinOperator.IsNotNumber,
+ <Primitive>[dartReceiver],
+ invoke.sourceInformation));
condition.type = typeSystem.boolType;
- Primitive check = _fragment.letPrim(
- new ReceiverCheck.nullCheck(dartReceiver, selector,
- invoke.sourceInformation,
- condition: condition));
+ Primitive check = _fragment.letPrim(new ReceiverCheck.nullCheck(
+ dartReceiver, selector, invoke.sourceInformation,
+ condition: condition));
check.type = abstractReceiver.nonNullable();
return check;
}
- Primitive check = _fragment.letPrim(
- new ReceiverCheck.nullCheck(dartReceiver, selector,
- invoke.sourceInformation));
+ Primitive check = _fragment.letPrim(new ReceiverCheck.nullCheck(
+ dartReceiver, selector, invoke.sourceInformation));
check.type = abstractReceiver.nonNullable();
return check;
}
-
@override
Primitive visitInvokeStatic(InvokeStatic node) {
return tryInlining(node, node.target, null);
@@ -585,8 +573,8 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
if (node.selector.isSetter != element.isSetter) return null;
if (node.selector.name != element.name) return null;
- return tryInlining(node, element.asFunctionElement(),
- node.selector.callStructure);
+ return tryInlining(
+ node, element.asFunctionElement(), node.selector.callStructure);
}
@override
@@ -613,8 +601,8 @@ class InliningVisitor extends TrampolineRecursiveVisitor {
ClassElement enclosingClass = target.enclosingClass;
if (target.isOperator &&
(enclosingClass == backend.helpers.jsNumberClass ||
- enclosingClass == backend.helpers.jsDoubleClass ||
- enclosingClass == backend.helpers.jsIntClass)) {
+ enclosingClass == backend.helpers.jsDoubleClass ||
+ enclosingClass == backend.helpers.jsIntClass)) {
// These should be handled by operator specialization.
return true;
}
« no previous file with comments | « pkg/compiler/lib/src/cps_ir/gvn.dart ('k') | pkg/compiler/lib/src/cps_ir/insert_refinements.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698