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

Side by Side Diff: runtime/vm/method_recognizer.h

Issue 497623003: Fix performance degradation in Havlak: prevent conflicting method recognizer kinds to be stored in … (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 years, 4 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
« no previous file with comments | « runtime/vm/intrinsifier_x64.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 #ifndef VM_METHOD_RECOGNIZER_H_ 5 #ifndef VM_METHOD_RECOGNIZER_H_
6 #define VM_METHOD_RECOGNIZER_H_ 6 #define VM_METHOD_RECOGNIZER_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 9
10 namespace dart { 10 namespace dart {
11 11
12 // (class-name, function-name, recognized enum, fingerprint). 12 // (class-name, function-name, recognized enum, fingerprint).
13 // When adding a new function add a 0 as fingerprint, build and run to get the 13 // When adding a new function add a 0 as fingerprint, build and run to get the
14 // correct fingerprint from the mismatch error. 14 // correct fingerprint from the mismatch error.
15 #define OTHER_RECOGNIZED_LIST(V) \ 15 #define OTHER_RECOGNIZED_LIST(V) \
16 V(::, identical, ObjectIdentical, 496869842) \ 16 V(::, identical, ObjectIdentical, 496869842) \
17 V(ClassID, getID, ClassIDgetID, 1322490980) \ 17 V(ClassID, getID, ClassIDgetID, 1322490980) \
18 V(Object, Object., ObjectConstructor, 1066669787) \ 18 V(Object, Object., ObjectConstructor, 1066669787) \
19 V(_List, _List., ObjectArrayConstructor, 1595327584) \
20 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \ 19 V(_TypedList, _getInt8, ByteArrayBaseGetInt8, 1541411498) \
21 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \ 20 V(_TypedList, _getUint8, ByteArrayBaseGetUint8, 1032404349) \
22 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \ 21 V(_TypedList, _getInt16, ByteArrayBaseGetInt16, 381073990) \
23 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \ 22 V(_TypedList, _getUint16, ByteArrayBaseGetUint16, 1142676276) \
24 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \ 23 V(_TypedList, _getInt32, ByteArrayBaseGetInt32, 330269934) \
25 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \ 24 V(_TypedList, _getUint32, ByteArrayBaseGetUint32, 59490554) \
26 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \ 25 V(_TypedList, _getFloat32, ByteArrayBaseGetFloat32, 393003933) \
27 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \ 26 V(_TypedList, _getFloat64, ByteArrayBaseGetFloat64, 1792407200) \
28 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \ 27 V(_TypedList, _getFloat32x4, ByteArrayBaseGetFloat32x4, 1338379857) \
29 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \ 28 V(_TypedList, _getInt32x4, ByteArrayBaseGetInt32x4, 1469917805) \
30 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \ 29 V(_TypedList, _setInt8, ByteArrayBaseSetInt8, 433348464) \
31 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 149406583) \ 30 V(_TypedList, _setUint8, ByteArrayBaseSetUint8, 149406583) \
32 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \ 31 V(_TypedList, _setInt16, ByteArrayBaseSetInt16, 805477162) \
33 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 888580944) \ 32 V(_TypedList, _setUint16, ByteArrayBaseSetUint16, 888580944) \
34 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \ 33 V(_TypedList, _setInt32, ByteArrayBaseSetInt32, 1708248181) \
35 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \ 34 V(_TypedList, _setUint32, ByteArrayBaseSetUint32, 1863152792) \
36 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \ 35 V(_TypedList, _setFloat32, ByteArrayBaseSetFloat32, 1148703855) \
37 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \ 36 V(_TypedList, _setFloat64, ByteArrayBaseSetFloat64, 972883980) \
38 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \ 37 V(_TypedList, _setFloat32x4, ByteArrayBaseSetFloat32x4, 950522310) \
39 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \ 38 V(_TypedList, _setInt32x4, ByteArrayBaseSetInt32x4, 1301138078) \
40 V(_StringBase, [], StringBaseCharAt, 1512210677) \
41 V(_StringBase, _interpolate, StringBaseInterpolate, 1758627989) \ 39 V(_StringBase, _interpolate, StringBaseInterpolate, 1758627989) \
42 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \ 40 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \
43 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ 41 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \
44 597111055) \ 42 597111055) \
45 V(_Double, .fromInteger, DoubleFromInteger, 999771940) \
46 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \ 43 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \
47 V(_Double, roundToDouble, DoubleRound, 2124216110) \ 44 V(_Double, roundToDouble, DoubleRound, 2124216110) \
48 V(_Double, floorToDouble, DoubleFloor, 968600699) \ 45 V(_Double, floorToDouble, DoubleFloor, 968600699) \
49 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \ 46 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \
50 V(_Double, _modulo, DoubleMod, 1473971007) \ 47 V(_Double, _modulo, DoubleMod, 1473971007) \
51 V(_Double, _add, DoubleAdd, 1570715125) \ 48 V(_Double, _add, DoubleAdd, 1570715125) \
52 V(_Double, _sub, DoubleSub, 1466395310) \ 49 V(_Double, _sub, DoubleSub, 1466395310) \
53 V(_Double, _mul, DoubleMul, 546441193) \ 50 V(_Double, _mul, DoubleMul, 546441193) \
54 V(_Double, _div, DoubleDiv, 1201505037) \ 51 V(_Double, _div, DoubleDiv, 1201505037) \
55 V(::, sin, MathSin, 1741396147) \ 52 V(::, sin, MathSin, 1741396147) \
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 V(_Double, <, Double_lessThan, 2080387973) \ 154 V(_Double, <, Double_lessThan, 2080387973) \
158 V(_Double, <=, Double_lessEqualThan, 106225572) \ 155 V(_Double, <=, Double_lessEqualThan, 106225572) \
159 V(_Double, ==, Double_equal, 2093918133) \ 156 V(_Double, ==, Double_equal, 2093918133) \
160 V(_Double, +, Double_add, 1646350451) \ 157 V(_Double, +, Double_add, 1646350451) \
161 V(_Double, -, Double_sub, 1477459276) \ 158 V(_Double, -, Double_sub, 1477459276) \
162 V(_Double, *, Double_mul, 1334580777) \ 159 V(_Double, *, Double_mul, 1334580777) \
163 V(_Double, /, Double_div, 1938037155) \ 160 V(_Double, /, Double_div, 1938037155) \
164 V(_Double, get:isNaN, Double_getIsNaN, 843050033) \ 161 V(_Double, get:isNaN, Double_getIsNaN, 843050033) \
165 V(_Double, get:isNegative, Double_getIsNegative, 1637875580) \ 162 V(_Double, get:isNegative, Double_getIsNegative, 1637875580) \
166 V(_Double, _mulFromInteger, Double_mulFromInteger, 1594796483) \ 163 V(_Double, _mulFromInteger, Double_mulFromInteger, 1594796483) \
167 V(_Double, .fromInteger, Double_fromInteger, 999771940) \ 164 V(_Double, .fromInteger, DoubleFromInteger, 999771940) \
168 V(_List, ., ObjectArrayAllocate, 1595327584) \ 165 V(_List, ., ObjectArrayAllocate, 1595327584) \
169 V(_List, get:length, ObjectArrayLength, 1181352729) \ 166 V(_List, get:length, ObjectArrayLength, 1181352729) \
170 V(_List, [], ObjectArrayGetIndexed, 795612476) \ 167 V(_List, [], ObjectArrayGetIndexed, 795612476) \
171 V(_List, []=, ObjectArraySetIndexed, 1288827575) \ 168 V(_List, []=, ObjectArraySetIndexed, 1288827575) \
172 V(_GrowableList, .withData, GrowableArray_Allocate, 732923072) \ 169 V(_GrowableList, .withData, GrowableArray_Allocate, 732923072) \
173 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ 170 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \
174 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 555140075) \ 171 V(_GrowableList, get:_capacity, GrowableArrayCapacity, 555140075) \
175 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \ 172 V(_GrowableList, [], GrowableArrayGetIndexed, 919108233) \
176 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \ 173 V(_GrowableList, []=, GrowableArraySetIndexed, 1218649853) \
177 V(_GrowableList, _setLength, GrowableArraySetLength, 89389299) \ 174 V(_GrowableList, _setLength, GrowableArraySetLength, 89389299) \
178 V(_GrowableList, _setData, GrowableArraySetData, 2126927509) \ 175 V(_GrowableList, _setData, GrowableArraySetData, 2126927509) \
179 V(_GrowableList, add, GrowableArray_add, 1899133961) \ 176 V(_GrowableList, add, GrowableArray_add, 1899133961) \
180 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \ 177 V(_ImmutableList, [], ImmutableArrayGetIndexed, 1990177341) \
181 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ 178 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \
182 V(Object, ==, ObjectEquals, 1068471689) \ 179 V(Object, ==, ObjectEquals, 1068471689) \
183 V(_StringBase, get:hashCode, String_getHashCode, 2102906241) \ 180 V(_StringBase, get:hashCode, String_getHashCode, 2102906241) \
184 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \ 181 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \
185 V(_StringBase, get:length, StringBaseLength, 784399628) \ 182 V(_StringBase, get:length, StringBaseLength, 784399628) \
186 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ 183 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \
187 V(_StringBase, [], StringBase_charAt, 1512210677) \ 184 V(_StringBase, [], StringBaseCharAt, 1512210677) \
188 V(_OneByteString, get:hashCode, OneByteString_getHashCode, 1111837929) \ 185 V(_OneByteString, get:hashCode, OneByteString_getHashCode, 1111837929) \
189 V(_OneByteString, _substringUncheckedNative, \ 186 V(_OneByteString, _substringUncheckedNative, \
190 OneByteString_substringUnchecked, 1527498975) \ 187 OneByteString_substringUnchecked, 1527498975) \
191 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \ 188 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \
192 V(_OneByteString, _allocate, OneByteString_allocate, 2035417022) \ 189 V(_OneByteString, _allocate, OneByteString_allocate, 2035417022) \
193 V(_OneByteString, ==, OneByteString_equality, 1727047023) \ 190 V(_OneByteString, ==, OneByteString_equality, 1727047023) \
194 V(_TwoByteString, ==, TwoByteString_equality, 951149689) \ 191 V(_TwoByteString, ==, TwoByteString_equality, 951149689) \
195 192
196 193
197 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \ 194 #define CORE_INTEGER_LIB_INTRINSIC_LIST(V) \
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
385 static Kind RecognizeKind(const Function& function); 382 static Kind RecognizeKind(const Function& function);
386 static bool AlwaysInline(const Function& function); 383 static bool AlwaysInline(const Function& function);
387 static bool PolymorphicTarget(const Function& function); 384 static bool PolymorphicTarget(const Function& function);
388 static const char* KindToCString(Kind kind); 385 static const char* KindToCString(Kind kind);
389 static void InitializeState(); 386 static void InitializeState();
390 }; 387 };
391 388
392 } // namespace dart 389 } // namespace dart
393 390
394 #endif // VM_METHOD_RECOGNIZER_H_ 391 #endif // VM_METHOD_RECOGNIZER_H_
OLDNEW
« no previous file with comments | « runtime/vm/intrinsifier_x64.cc ('k') | runtime/vm/object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698