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

Unified Diff: runtime/vm/method_recognizer.cc

Issue 705063003: Suppress inlining of complex Bigint intrinsics. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 1 month 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: runtime/vm/method_recognizer.cc
diff --git a/runtime/vm/method_recognizer.cc b/runtime/vm/method_recognizer.cc
index 29b08fdcbb430d132dd75357d699d3b60ad436c3..9801697e893149f03660ead06badefc82c2d4180 100644
--- a/runtime/vm/method_recognizer.cc
+++ b/runtime/vm/method_recognizer.cc
@@ -54,23 +54,27 @@ void MethodRecognizer::InitializeState() {
RECOGNIZED_LIST(SET_RECOGNIZED_KIND);
-#define SET_FUNCTION_BIT(class_name, function_name, dest, fp, setter_name) \
+#define SET_FUNCTION_BIT(class_name, function_name, dest, fp, setter, value) \
func = Library::GetFunction(libs, #class_name, #function_name); \
if (func.IsNull()) { \
OS::PrintErr("Missing %s::%s\n", #class_name, #function_name); \
UNREACHABLE(); \
} \
ASSERT(func.CheckSourceFingerprint(fp)); \
- func.setter_name(true);
+ func.setter(value);
#define SET_IS_ALWAYS_INLINE(class_name, function_name, dest, fp) \
- SET_FUNCTION_BIT(class_name, function_name, dest, fp, set_always_inline)
+ SET_FUNCTION_BIT(class_name, function_name, dest, fp, set_always_inline, true)
+
+#define SET_IS_NEVER_INLINE(class_name, function_name, dest, fp) \
+ SET_FUNCTION_BIT(class_name, function_name, dest, fp, set_is_inlinable, false)
#define SET_IS_POLYMORPHIC_TARGET(class_name, function_name, dest, fp) \
SET_FUNCTION_BIT(class_name, function_name, dest, fp, \
- set_is_polymorphic_target)
+ set_is_polymorphic_target, true)
INLINE_WHITE_LIST(SET_IS_ALWAYS_INLINE);
+ INLINE_BLACK_LIST(SET_IS_NEVER_INLINE);
POLYMORPHIC_TARGET_LIST(SET_IS_POLYMORPHIC_TARGET);
#undef SET_RECOGNIZED_KIND

Powered by Google App Engine
This is Rietveld 408576698