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

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

Issue 23068020: Fix performance regression on Tracer: recognize _doublePow in Math. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 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/flow_graph_optimizer.cc ('k') | runtime/vm/intermediate_language.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) 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 V(_StringBase, [], StringBaseCharAt, 924930519) \ 72 V(_StringBase, [], StringBaseCharAt, 924930519) \
73 V(_OneByteString, _setAt, OneByteStringSetAt, 456985263) \ 73 V(_OneByteString, _setAt, OneByteStringSetAt, 456985263) \
74 V(_IntegerImplementation, toDouble, IntegerToDouble, 2141284842) \ 74 V(_IntegerImplementation, toDouble, IntegerToDouble, 2141284842) \
75 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \ 75 V(_IntegerImplementation, _leftShiftWithMask32, IntegerLeftShiftWithMask32, \
76 964472615) \ 76 964472615) \
77 V(_Double, toInt, DoubleToInteger, 1580473283) \ 77 V(_Double, toInt, DoubleToInteger, 1580473283) \
78 V(_Double, truncateToDouble, DoubleTruncate, 849350203) \ 78 V(_Double, truncateToDouble, DoubleTruncate, 849350203) \
79 V(_Double, roundToDouble, DoubleRound, 500368418) \ 79 V(_Double, roundToDouble, DoubleRound, 500368418) \
80 V(_Double, floorToDouble, DoubleFloor, 763548522) \ 80 V(_Double, floorToDouble, DoubleFloor, 763548522) \
81 V(_Double, ceilToDouble, DoubleCeil, 976697019) \ 81 V(_Double, ceilToDouble, DoubleCeil, 976697019) \
82 V(_Double, pow, DoublePow, 1240251670) \
83 V(_Double, _modulo, DoubleMod, 1850917533) \ 82 V(_Double, _modulo, DoubleMod, 1850917533) \
84 V(::, sqrt, MathSqrt, 465520247) \ 83 V(::, sqrt, MathSqrt, 465520247) \
85 V(::, sin, MathSin, 730107143) \ 84 V(::, sin, MathSin, 730107143) \
86 V(::, cos, MathCos, 1282146521) \ 85 V(::, cos, MathCos, 1282146521) \
87 V(::, min, MathMin, 1584022354) \ 86 V(::, min, MathMin, 1584022354) \
88 V(::, max, MathMax, 328632232) \ 87 V(::, max, MathMax, 328632232) \
88 V(::, _doublePow, MathDoublePow, 2002448359) \
89 V(Float32x4, Float32x4., Float32x4Constructor, 1876089990) \ 89 V(Float32x4, Float32x4., Float32x4Constructor, 1876089990) \
90 V(Float32x4, Float32x4.zero, Float32x4Zero, 1903586222) \ 90 V(Float32x4, Float32x4.zero, Float32x4Zero, 1903586222) \
91 V(Float32x4, Float32x4.splat, Float32x4Splat, 38462589) \ 91 V(Float32x4, Float32x4.splat, Float32x4Splat, 38462589) \
92 V(_Float32x4, shuffle, Float32x4Shuffle, 713523911) \ 92 V(_Float32x4, shuffle, Float32x4Shuffle, 713523911) \
93 V(_Float32x4, get:x, Float32x4ShuffleX, 1019523296) \ 93 V(_Float32x4, get:x, Float32x4ShuffleX, 1019523296) \
94 V(_Float32x4, get:y, Float32x4ShuffleY, 710282243) \ 94 V(_Float32x4, get:y, Float32x4ShuffleY, 710282243) \
95 V(_Float32x4, get:z, Float32x4ShuffleZ, 1612806041) \ 95 V(_Float32x4, get:z, Float32x4ShuffleZ, 1612806041) \
96 V(_Float32x4, get:w, Float32x4ShuffleW, 1113701403) \ 96 V(_Float32x4, get:w, Float32x4ShuffleW, 1113701403) \
97 V(_Float32x4, get:signMask, Float32x4GetSignMask, 465347632) \ 97 V(_Float32x4, get:signMask, Float32x4GetSignMask, 465347632) \
98 V(_Float32x4, _cmpequal, Float32x4Equal, 1559121703) \ 98 V(_Float32x4, _cmpequal, Float32x4Equal, 1559121703) \
(...skipping 6238 matching lines...) Expand 10 before | Expand all | Expand 10 after
6337 private: 6337 private:
6338 const MethodRecognizer::Kind recognized_kind_; 6338 const MethodRecognizer::Kind recognized_kind_;
6339 6339
6340 DISALLOW_COPY_AND_ASSIGN(DoubleToDoubleInstr); 6340 DISALLOW_COPY_AND_ASSIGN(DoubleToDoubleInstr);
6341 }; 6341 };
6342 6342
6343 6343
6344 class InvokeMathCFunctionInstr : public Definition { 6344 class InvokeMathCFunctionInstr : public Definition {
6345 public: 6345 public:
6346 InvokeMathCFunctionInstr(ZoneGrowableArray<Value*>* inputs, 6346 InvokeMathCFunctionInstr(ZoneGrowableArray<Value*>* inputs,
6347 InstanceCallInstr* instance_call, 6347 intptr_t original_deopt_id,
6348 MethodRecognizer::Kind recognized_kind); 6348 MethodRecognizer::Kind recognized_kind);
6349 6349
6350 static intptr_t ArgumentCountFor(MethodRecognizer::Kind recognized_kind_); 6350 static intptr_t ArgumentCountFor(MethodRecognizer::Kind recognized_kind_);
6351 6351
6352 const RuntimeEntry& TargetFunction() const; 6352 const RuntimeEntry& TargetFunction() const;
6353 6353
6354 MethodRecognizer::Kind recognized_kind() const { return recognized_kind_; } 6354 MethodRecognizer::Kind recognized_kind() const { return recognized_kind_; }
6355 6355
6356 DECLARE_INSTRUCTION(InvokeMathCFunction) 6356 DECLARE_INSTRUCTION(InvokeMathCFunction)
6357 virtual CompileType ComputeType() const; 6357 virtual CompileType ComputeType() const;
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
6740 ForwardInstructionIterator* current_iterator_; 6740 ForwardInstructionIterator* current_iterator_;
6741 6741
6742 private: 6742 private:
6743 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); 6743 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
6744 }; 6744 };
6745 6745
6746 6746
6747 } // namespace dart 6747 } // namespace dart
6748 6748
6749 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 6749 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW
« no previous file with comments | « runtime/vm/flow_graph_optimizer.cc ('k') | runtime/vm/intermediate_language.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698