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

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

Issue 484693003: Improve polymorphic inlining of int/int double/double operations. (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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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_INTERMEDIATE_LANGUAGE_H_ 5 #ifndef VM_INTERMEDIATE_LANGUAGE_H_
6 #define VM_INTERMEDIATE_LANGUAGE_H_ 6 #define VM_INTERMEDIATE_LANGUAGE_H_
7 7
8 #include "vm/allocation.h" 8 #include "vm/allocation.h"
9 #include "vm/ast.h" 9 #include "vm/ast.h"
10 #include "vm/growable_array.h" 10 #include "vm/growable_array.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 V(_StringBase, get:length, StringBaseLength, 784399628) \ 75 V(_StringBase, get:length, StringBaseLength, 784399628) \
76 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \ 76 V(_StringBase, get:isEmpty, StringBaseIsEmpty, 49873871) \
77 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \ 77 V(_StringBase, codeUnitAt, StringBaseCodeUnitAt, 397735324) \
78 V(_StringBase, [], StringBaseCharAt, 1512210677) \ 78 V(_StringBase, [], StringBaseCharAt, 1512210677) \
79 V(_StringBase, _interpolate, StringBaseInterpolate, 1758627989) \ 79 V(_StringBase, _interpolate, StringBaseInterpolate, 1758627989) \
80 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \ 80 V(_OneByteString, _setAt, OneByteStringSetAt, 468605749) \
81 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \ 81 V(_IntegerImplementation, toDouble, IntegerToDouble, 1084977108) \
82 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ 82 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \
83 597111055) \ 83 597111055) \
84 V(_Double, toInt, DoubleToInteger, 1547535151) \ 84 V(_Double, toInt, DoubleToInteger, 1547535151) \
85 V(_Double, .fromInteger, DoubleFromInteger, 999771940) \
85 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \ 86 V(_Double, truncateToDouble, DoubleTruncate, 2117801967) \
86 V(_Double, roundToDouble, DoubleRound, 2124216110) \ 87 V(_Double, roundToDouble, DoubleRound, 2124216110) \
87 V(_Double, floorToDouble, DoubleFloor, 968600699) \ 88 V(_Double, floorToDouble, DoubleFloor, 968600699) \
88 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \ 89 V(_Double, ceilToDouble, DoubleCeil, 1779929274) \
89 V(_Double, _modulo, DoubleMod, 1473971007) \ 90 V(_Double, _modulo, DoubleMod, 1473971007) \
91 V(_Double, _add, DoubleAdd, 1570715125) \
92 V(_Double, _sub, DoubleSub, 1466395310) \
93 V(_Double, _mul, DoubleMul, 546441193) \
94 V(_Double, _div, DoubleDiv, 1201505037) \
90 V(::, sqrt, MathSqrt, 101545548) \ 95 V(::, sqrt, MathSqrt, 101545548) \
91 V(::, sin, MathSin, 1741396147) \ 96 V(::, sin, MathSin, 1741396147) \
92 V(::, cos, MathCos, 1951197905) \ 97 V(::, cos, MathCos, 1951197905) \
93 V(::, min, MathMin, 1022567780) \ 98 V(::, min, MathMin, 1022567780) \
94 V(::, max, MathMax, 612058870) \ 99 V(::, max, MathMax, 612058870) \
95 V(::, _doublePow, MathDoublePow, 823139975) \ 100 V(::, _doublePow, MathDoublePow, 823139975) \
96 V(Float32x4, Float32x4., Float32x4Constructor, 1755873079) \ 101 V(Float32x4, Float32x4., Float32x4Constructor, 1755873079) \
97 V(Float32x4, Float32x4.zero, Float32x4Zero, 1494069379) \ 102 V(Float32x4, Float32x4.zero, Float32x4Zero, 1494069379) \
98 V(Float32x4, Float32x4.splat, Float32x4Splat, 916211464) \ 103 V(Float32x4, Float32x4.splat, Float32x4Splat, 916211464) \
99 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \ 104 V(Float32x4, Float32x4.fromInt32x4Bits, Float32x4FromInt32x4Bits, \
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \ 190 V(_Int32Array, []=, Int32ArraySetIndexed, 338968571) \
186 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1640672852) \ 191 V(_Uint32Array, [], Uint32ArrayGetIndexed, 1640672852) \
187 V(_Uint32Array, []=, Uint32ArraySetIndexed, 1472976717) \ 192 V(_Uint32Array, []=, Uint32ArraySetIndexed, 1472976717) \
188 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 1466627059) \ 193 V(_Float32x4Array, [], Float32x4ArrayGetIndexed, 1466627059) \
189 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 2141660076) \ 194 V(_Float32x4Array, []=, Float32x4ArraySetIndexed, 2141660076) \
190 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 818792056) \ 195 V(_Int32x4Array, [], Int32x4ArrayGetIndexed, 818792056) \
191 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 1021474038) \ 196 V(_Int32x4Array, []=, Int32x4ArraySetIndexed, 1021474038) \
192 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 288114492) \ 197 V(_Float64x2Array, [], Float64x2ArrayGetIndexed, 288114492) \
193 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 941746736) \ 198 V(_Float64x2Array, []=, Float64x2ArraySetIndexed, 941746736) \
194 199
195
196 // A list of core function that should always be inlined. 200 // A list of core function that should always be inlined.
197 #define INLINE_WHITE_LIST(V) \ 201 #define INLINE_WHITE_LIST(V) \
198 V(Object, ==, ObjectEquals, 1068471689) \ 202 V(Object, ==, ObjectEquals, 1068471689) \
199 V(_List, get:length, ObjectArrayLength, 1181352729) \ 203 V(_List, get:length, ObjectArrayLength, 1181352729) \
200 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \ 204 V(_ImmutableList, get:length, ImmutableArrayLength, 274917727) \
201 V(_TypedList, get:length, TypedDataLength, 522565357) \ 205 V(_TypedList, get:length, TypedDataLength, 522565357) \
202 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \ 206 V(_GrowableList, get:length, GrowableArrayLength, 778505107) \
203 V(_StringBase, get:length, StringBaseLength, 784399628) \ 207 V(_StringBase, get:length, StringBaseLength, 784399628) \
204 V(ListIterator, moveNext, ListIteratorMoveNext, 210829138) \ 208 V(ListIterator, moveNext, ListIteratorMoveNext, 210829138) \
205 V(_GrowableList, get:iterator, GrowableArrayIterator, 1812933946) \ 209 V(_GrowableList, get:iterator, GrowableArrayIterator, 1812933946) \
(...skipping 8163 matching lines...) Expand 10 before | Expand all | Expand 10 after
8369 ForwardInstructionIterator* current_iterator_; 8373 ForwardInstructionIterator* current_iterator_;
8370 8374
8371 private: 8375 private:
8372 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); 8376 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
8373 }; 8377 };
8374 8378
8375 8379
8376 } // namespace dart 8380 } // namespace dart
8377 8381
8378 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 8382 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698