Remove entry SuspendCheck for methods which only call on the slow path

We can skip SuspendCheck if the method is e.g. a leaf method with a read barrier call in the slow path.

Bug: 135477345
Test: ART tests
Change-Id: I6e04f10544ec61b46bb5763a88c28248e88193bf
diff --git a/compiler/optimizing/code_generator.h b/compiler/optimizing/code_generator.h
index 99de61d..cf59be8 100644
--- a/compiler/optimizing/code_generator.h
+++ b/compiler/optimizing/code_generator.h
@@ -403,6 +403,14 @@
     requires_current_method_ = true;
   }
 
+  bool NeedsSuspendCheckEntry() const {
+    return needs_suspend_check_entry_;
+  }
+
+  void MarkNeedsSuspendCheckEntry() {
+    needs_suspend_check_entry_ = true;
+  }
+
   void SetRequiresCurrentMethod() {
     requires_current_method_ = true;
   }
@@ -855,6 +863,9 @@
   // Whether the method is a leaf method.
   bool is_leaf_;
 
+  // Whether the method has to emit a SuspendCheck at entry.
+  bool needs_suspend_check_entry_;
+
   // Whether an instruction in the graph accesses the current method.
   // TODO: Rename: this actually indicates that some instruction in the method
   // needs the environment including a valid stack frame.