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

Unified Diff: sdk/lib/_internal/compiler/implementation/enqueue.dart

Issue 430913002: Better dependency tracking (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: fix self critiques Created 6 years, 5 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
Index: sdk/lib/_internal/compiler/implementation/enqueue.dart
diff --git a/sdk/lib/_internal/compiler/implementation/enqueue.dart b/sdk/lib/_internal/compiler/implementation/enqueue.dart
index fbd3f93e7123b256b48275c0566ea473b5777726..7623f3d856736117549505cb9a7ae7c448e804e6 100644
--- a/sdk/lib/_internal/compiler/implementation/enqueue.dart
+++ b/sdk/lib/_internal/compiler/implementation/enqueue.dart
@@ -49,7 +49,7 @@ abstract class Enqueuer {
bool hasEnqueuedReflectiveElements = false;
bool hasEnqueuedReflectiveStaticFields = false;
- CompilationInformation get compilationInfo;
+ DependencyInformation get dependencyInfo;
sra1 2014/07/30 21:43:48 I would remove this from the enqueuers and do it a
Ty Overby (Google) 2014/08/01 16:39:38 Done.
Enqueuer(this.name, this.compiler, this.itemCompilationContextCreator);
@@ -71,9 +71,7 @@ abstract class Enqueuer {
*/
void addToWorkList(Element element) {
assert(invariant(element, element.isDeclaration));
- if (internalAddToWorkList(element)) {
- compilationInfo.addsToWorkList(compiler.currentElement, element);
- }
+ internalAddToWorkList(element);
}
/**
@@ -189,7 +187,6 @@ abstract class Enqueuer {
memberName, () => const Link<Element>());
instanceFunctionsByName[memberName] = members.prepend(member);
if (universe.hasInvocation(member, compiler)) {
- compilationInfo.enqueues(getContext(), member);
addToWorkList(member);
return;
}
@@ -260,6 +257,7 @@ abstract class Enqueuer {
String name = selector.name;
Set<Selector> selectors =
selectorsMap.putIfAbsent(name, () => new Setlet<Selector>());
+ dependencyInfo.elementUsesSelector(context, selector);
sra1 2014/07/30 21:43:48 If we move this to CodegenRegistry, we can get rid
Ty Overby (Google) 2014/08/01 16:39:37 Done.
if (!selectors.contains(selector)) {
selectors.add(selector);
handleUnseenSelector(context, name, selector);
@@ -478,7 +476,6 @@ abstract class Enqueuer {
String methodName,
Selector selector) {
processInstanceMembers(methodName, (Element member) {
- compilationInfo.enqueues(context, member);
if (selector.appliesUnnamed(member, compiler)) {
if (member.isFunction && selector.isGetter) {
registerClosurizedMember(member, compiler.globalDependencies);
@@ -663,7 +660,7 @@ class ResolutionEnqueuer extends Enqueuer {
*/
final Queue<DeferredTask> deferredTaskQueue;
- CompilationInformation compilationInfo;
+ DependencyInformation dependencyInfo;
ResolutionEnqueuer(Compiler compiler,
ItemCompilationContext itemCompilationContextCreator())
@@ -671,7 +668,7 @@ class ResolutionEnqueuer extends Enqueuer {
resolvedElements = new Set<AstElement>(),
queue = new Queue<ResolutionWorkItem>(),
deferredTaskQueue = new Queue<DeferredTask>() {
- compilationInfo = new CompilationInformation(this, compiler.dumpInfo);
+ dependencyInfo = new DependencyInformation(this, compiler.dumpInfo);
}
bool get isResolutionQueue => true;
@@ -815,14 +812,14 @@ class CodegenEnqueuer extends Enqueuer {
final Set<Element> newlyEnqueuedElements;
- CompilationInformation compilationInfo;
+ DependencyInformation dependencyInfo;
CodegenEnqueuer(Compiler compiler,
ItemCompilationContext itemCompilationContextCreator())
: queue = new Queue<CodegenWorkItem>(),
newlyEnqueuedElements = compiler.cacheStrategy.newSet(),
super('codegen enqueuer', compiler, itemCompilationContextCreator) {
- compilationInfo = new CompilationInformation(this, compiler.dumpInfo);
+ dependencyInfo = new DependencyInformation(this, compiler.dumpInfo);
}
bool isProcessed(Element member) =>

Powered by Google App Engine
This is Rietveld 408576698