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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart

Issue 330913004: Move Compiler.libraries to LibraryLoader. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fix compiler_isolate.dart Created 6 years, 6 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 part of js_backend; 5 part of js_backend;
6 6
7 const VERBOSE_OPTIMIZER_HINTS = false; 7 const VERBOSE_OPTIMIZER_HINTS = false;
8 8
9 class JavaScriptItemCompilationContext extends ItemCompilationContext { 9 class JavaScriptItemCompilationContext extends ItemCompilationContext {
10 final Set<HInstruction> boundsChecked = new Set<HInstruction>(); 10 final Set<HInstruction> boundsChecked = new Set<HInstruction>();
(...skipping 1175 matching lines...) Expand 10 before | Expand all | Expand 10 after
1186 emitter.assembleProgram(); 1186 emitter.assembleProgram();
1187 int totalMethodCount = generatedCode.length; 1187 int totalMethodCount = generatedCode.length;
1188 if (totalMethodCount != preMirrorsMethodCount) { 1188 if (totalMethodCount != preMirrorsMethodCount) {
1189 int mirrorCount = totalMethodCount - preMirrorsMethodCount; 1189 int mirrorCount = totalMethodCount - preMirrorsMethodCount;
1190 double percentage = (mirrorCount / totalMethodCount) * 100; 1190 double percentage = (mirrorCount / totalMethodCount) * 100;
1191 compiler.reportHint( 1191 compiler.reportHint(
1192 compiler.mainApp, MessageKind.MIRROR_BLOAT, 1192 compiler.mainApp, MessageKind.MIRROR_BLOAT,
1193 {'count': mirrorCount, 1193 {'count': mirrorCount,
1194 'total': totalMethodCount, 1194 'total': totalMethodCount,
1195 'percentage': percentage.round()}); 1195 'percentage': percentage.round()});
1196 for (LibraryElement library in compiler.libraries.values) { 1196 for (LibraryElement library in compiler.libraryLoader.libraries) {
1197 if (library.isInternalLibrary) continue; 1197 if (library.isInternalLibrary) continue;
1198 for (LibraryTag tag in library.tags) { 1198 for (LibraryTag tag in library.tags) {
1199 Import importTag = tag.asImport(); 1199 Import importTag = tag.asImport();
1200 if (importTag == null) continue; 1200 if (importTag == null) continue;
1201 LibraryElement importedLibrary = library.getLibraryFromTag(tag); 1201 LibraryElement importedLibrary = library.getLibraryFromTag(tag);
1202 if (importedLibrary != compiler.mirrorsLibrary) continue; 1202 if (importedLibrary != compiler.mirrorsLibrary) continue;
1203 MessageKind kind = 1203 MessageKind kind =
1204 compiler.mirrorUsageAnalyzerTask.hasMirrorUsage(library) 1204 compiler.mirrorUsageAnalyzerTask.hasMirrorUsage(library)
1205 ? MessageKind.MIRROR_IMPORT 1205 ? MessageKind.MIRROR_IMPORT
1206 : MessageKind.MIRROR_IMPORT_NO_USAGE; 1206 : MessageKind.MIRROR_IMPORT_NO_USAGE;
(...skipping 710 matching lines...) Expand 10 before | Expand all | Expand 10 after
1917 // reflection. If there is no mirror-usage these are probably not 1917 // reflection. If there is no mirror-usage these are probably not
1918 // necessary, but the backend relies on them being resolved. 1918 // necessary, but the backend relies on them being resolved.
1919 enqueuer.enqueueReflectiveStaticFields(_findStaticFieldTargets()); 1919 enqueuer.enqueueReflectiveStaticFields(_findStaticFieldTargets());
1920 } 1920 }
1921 1921
1922 if (mustPreserveNames) compiler.log('Preserving names.'); 1922 if (mustPreserveNames) compiler.log('Preserving names.');
1923 1923
1924 if (mustRetainMetadata) { 1924 if (mustRetainMetadata) {
1925 compiler.log('Retaining metadata.'); 1925 compiler.log('Retaining metadata.');
1926 1926
1927 compiler.libraries.values.forEach(retainMetadataOf); 1927 compiler.libraryLoader.libraries.forEach(retainMetadataOf);
1928 for (Dependency dependency in metadataConstants) { 1928 for (Dependency dependency in metadataConstants) {
1929 registerCompileTimeConstant( 1929 registerCompileTimeConstant(
1930 dependency.constant, dependency.registry); 1930 dependency.constant, dependency.registry);
1931 } 1931 }
1932 metadataConstants.clear(); 1932 metadataConstants.clear();
1933 } 1933 }
1934 } 1934 }
1935 1935
1936 void onElementResolved(Element element, TreeElements elements) { 1936 void onElementResolved(Element element, TreeElements elements) {
1937 LibraryElement library = element.library; 1937 LibraryElement library = element.library;
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1993 } 1993 }
1994 1994
1995 /// Records that [constant] is used by the element behind [registry]. 1995 /// Records that [constant] is used by the element behind [registry].
1996 class Dependency { 1996 class Dependency {
1997 final Constant constant; 1997 final Constant constant;
1998 // TODO(johnniwinther): Change to [Element] when dependency nodes are added. 1998 // TODO(johnniwinther): Change to [Element] when dependency nodes are added.
1999 final Registry registry; 1999 final Registry registry;
2000 2000
2001 const Dependency(this.constant, this.registry); 2001 const Dependency(this.constant, this.registry);
2002 } 2002 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698