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

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

Issue 12226074: Cleanup universe to not have backend related things. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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
===================================================================
--- sdk/lib/_internal/compiler/implementation/enqueue.dart (revision 18239)
+++ sdk/lib/_internal/compiler/implementation/enqueue.dart (working copy)
@@ -31,6 +31,7 @@
final Function itemCompilationContextCreator;
final Map<String, Link<Element>> instanceMembersByName;
final Set<ClassElement> seenClasses;
+ final Universe universe;
bool queueIsClosed = false;
EnqueueTask task;
@@ -40,10 +41,9 @@
ItemCompilationContext itemCompilationContextCreator())
: this.itemCompilationContextCreator = itemCompilationContextCreator,
instanceMembersByName = new Map<String, Link<Element>>(),
+ universe = new Universe(),
seenClasses = new Set<ClassElement>();
- Universe get universe;
-
/// Returns [:true:] if this enqueuer is the resolution enqueuer.
bool get isResolutionQueue => false;
@@ -349,6 +349,28 @@
registerInvokedSetter(methodName, selector);
}
+ void registerFieldGetter(SourceString getterName,
+ LibraryElement library,
+ DartType type) {
+ task.measure(() {
+ Selector getter = new Selector.getter(getterName, library);
+ registerNewSelector(getterName,
+ new TypedSelector(type, getter),
+ universe.fieldGetters);
+ });
+ }
+
+ void registerFieldSetter(SourceString setterName,
+ LibraryElement library,
+ DartType type) {
+ task.measure(() {
+ Selector setter = new Selector.setter(setterName, library);
+ registerNewSelector(setterName,
+ new TypedSelector(type, setter),
+ universe.fieldSetters);
+ });
+ }
+
void registerIsCheck(DartType type) {
universe.isChecks.add(type);
}
@@ -368,8 +390,6 @@
/// [Enqueuer] which is specific to resolution.
class ResolutionEnqueuer extends Enqueuer {
- final ResolutionUniverse universe;
-
/**
* Map from declaration elements to the [TreeElements] object holding the
* resolution mapping for the element implementation.
@@ -384,7 +404,6 @@
ItemCompilationContext itemCompilationContextCreator())
: super('resolution enqueuer', compiler, itemCompilationContextCreator),
resolvedElements = new Map<Element, TreeElements>(),
- universe = new ResolutionUniverse(),
queue = new Queue<ResolutionWorkItem>();
bool get isResolutionQueue => true;
@@ -494,41 +513,17 @@
/// [Enqueuer] which is specific to code generation.
class CodegenEnqueuer extends Enqueuer {
- final CodegenUniverse universe;
-
final Queue<CodegenWorkItem> queue;
+ final Map<Element, js.Expression> generatedCode =
+ new Map<Element, js.Expression>();
CodegenEnqueuer(Compiler compiler,
ItemCompilationContext itemCompilationContextCreator())
: super('codegen enqueuer', compiler, itemCompilationContextCreator),
- universe = new CodegenUniverse(),
queue = new Queue<CodegenWorkItem>();
- bool isProcessed(Element member) =>
- universe.generatedCode.containsKey(member);
+ bool isProcessed(Element member) => generatedCode.containsKey(member);
- /**
- * Unit test hook that returns code of an element as a String.
- *
- * Invariant: [element] must be a declaration element.
- */
- String assembleCode(Element element) {
- assert(invariant(element, element.isDeclaration));
- return js.prettyPrint(universe.generatedCode[element], compiler).getText();
- }
-
- /**
- * Documentation wanted -- johnniwinther
- *
- * Invariant: [element] must be a declaration element.
- */
- void eagerRecompile(Element element) {
- assert(invariant(element, element.isDeclaration));
- universe.generatedCode.remove(element);
- universe.generatedBailoutCode.remove(element);
- addToWorkList(element);
- }
-
bool addElementToWorkList(Element element, [TreeElements elements]) {
if (queueIsClosed) {
throw new SpannableAssertionFailure(element,
@@ -544,28 +539,6 @@
return true;
}
- void registerFieldGetter(SourceString getterName,
- LibraryElement library,
- DartType type) {
- task.measure(() {
- Selector getter = new Selector.getter(getterName, library);
- registerNewSelector(getterName,
- new TypedSelector(type, getter),
- universe.fieldGetters);
- });
- }
-
- void registerFieldSetter(SourceString setterName,
- LibraryElement library,
- DartType type) {
- task.measure(() {
- Selector setter = new Selector.setter(setterName, library);
- registerNewSelector(setterName,
- new TypedSelector(type, setter),
- universe.fieldSetters);
- });
- }
-
void forEach(f(WorkItem work)) {
while(!queue.isEmpty) {
// TODO(johnniwinther): Find an optimal process order for codegen.
@@ -574,6 +547,6 @@
}
void _logSpecificSummary(log(message)) {
- log('Compiled ${universe.generatedCode.length} methods.');
+ log('Compiled ${generatedCode.length} methods.');
}
}

Powered by Google App Engine
This is Rietveld 408576698