[dart2js] Don't store collection of noInline/tryInline methods

Not storing a collection of methods is a step towards processing
annotations more 'online'.

Change-Id: I378ec4db9526004a1f1dc56886bbc91a7acde7f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251322
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
diff --git a/pkg/compiler/lib/src/js_backend/annotations.dart b/pkg/compiler/lib/src/js_backend/annotations.dart
index 8460a64..677a87e 100644
--- a/pkg/compiler/lib/src/js_backend/annotations.dart
+++ b/pkg/compiler/lib/src/js_backend/annotations.dart
@@ -317,14 +317,6 @@
   /// annotation.
   bool hasNoSideEffects(MemberEntity member);
 
-  /// Calls [f] for all functions with a `@pragma('dart2js:noInline')`
-  /// annotation.
-  void forEachNoInline(void f(FunctionEntity function));
-
-  /// Calls [f] for all functions with a `@pragma('dart2js:tryInline')`
-  /// annotation.
-  void forEachTryInline(void f(FunctionEntity function));
-
   /// Calls [f] for all functions with a `@pragma('dart2js:noThrows')`
   /// annotation.
   void forEachNoThrows(void f(FunctionEntity function));
@@ -451,26 +443,6 @@
       _hasPragma(member, PragmaAnnotation.noSideEffects);
 
   @override
-  void forEachNoInline(void f(FunctionEntity function)) {
-    pragmaAnnotations
-        .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
-      if (set.contains(PragmaAnnotation.noInline)) {
-        f(member as FunctionEntity);
-      }
-    });
-  }
-
-  @override
-  void forEachTryInline(void f(FunctionEntity function)) {
-    pragmaAnnotations
-        .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
-      if (set.contains(PragmaAnnotation.tryInline)) {
-        f(member as FunctionEntity);
-      }
-    });
-  }
-
-  @override
   void forEachNoThrows(void f(FunctionEntity function)) {
     pragmaAnnotations
         .forEach((MemberEntity member, EnumSet<PragmaAnnotation> set) {
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index b8f099c..fc21a9c 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -46,19 +46,11 @@
   static const int _canInlineInLoopMayInlineOutside = 3;
   static const int _canInline = 4;
 
+  final AnnotationsData _annotationsData;
+
   final Map<FunctionEntity, int> _cachedDecisions = {};
 
-  final Set<FunctionEntity> _noInlineFunctions = {};
-  final Set<FunctionEntity> _tryInlineFunctions = {};
-
-  FunctionInlineCache(AnnotationsData annotationsData) {
-    annotationsData.forEachNoInline((FunctionEntity function) {
-      markAsNoInline(function);
-    });
-    annotationsData.forEachTryInline((FunctionEntity function) {
-      markAsTryInline(function);
-    });
-  }
+  FunctionInlineCache(this._annotationsData) {}
 
   /// Checks that [method] is the canonical representative for this method.
   ///
@@ -237,24 +229,14 @@
     }
   }
 
-  void markAsNoInline(FunctionEntity element) {
-    assert(checkFunction(element), failedAt(element));
-    _noInlineFunctions.add(element);
-  }
-
   bool markedAsNoInline(FunctionEntity element) {
     assert(checkFunction(element), failedAt(element));
-    return _noInlineFunctions.contains(element);
-  }
-
-  void markAsTryInline(FunctionEntity element) {
-    assert(checkFunction(element), failedAt(element));
-    _tryInlineFunctions.add(element);
+    return _annotationsData.hasNoInline(element);
   }
 
   bool markedAsTryInline(FunctionEntity element) {
     assert(checkFunction(element), failedAt(element));
-    return _tryInlineFunctions.contains(element);
+    return _annotationsData.hasTryInline(element);
   }
 }