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

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

Issue 12091100: Use SAR for positive divident by a power-of two constant divisor. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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 3863 matching lines...) Expand 10 before | Expand all | Expand 10 after
3874 void set_overflow(bool overflow) { 3874 void set_overflow(bool overflow) {
3875 overflow_ = overflow; 3875 overflow_ = overflow;
3876 } 3876 }
3877 3877
3878 void PrintTo(BufferFormatter* f) const; 3878 void PrintTo(BufferFormatter* f) const;
3879 3879
3880 virtual void InferRange(); 3880 virtual void InferRange();
3881 3881
3882 virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer); 3882 virtual Definition* Canonicalize(FlowGraphOptimizer* optimizer);
3883 3883
3884 // Returns true if right is a Smi constant which absolute value is
3885 // a power of two.
3886 bool RightIsPowerOfTwoConstant() const;
3887
3884 private: 3888 private:
3885 const Token::Kind op_kind_; 3889 const Token::Kind op_kind_;
3886 InstanceCallInstr* instance_call_; 3890 InstanceCallInstr* instance_call_;
3887 bool overflow_; 3891 bool overflow_;
3888 3892
3889 DISALLOW_COPY_AND_ASSIGN(BinarySmiOpInstr); 3893 DISALLOW_COPY_AND_ASSIGN(BinarySmiOpInstr);
3890 }; 3894 };
3891 3895
3892 3896
3893 // Handles both Smi operations: BIT_OR and NEGATE. 3897 // Handles both Smi operations: BIT_OR and NEGATE.
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
4476 ForwardInstructionIterator* current_iterator_; 4480 ForwardInstructionIterator* current_iterator_;
4477 4481
4478 private: 4482 private:
4479 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor); 4483 DISALLOW_COPY_AND_ASSIGN(FlowGraphVisitor);
4480 }; 4484 };
4481 4485
4482 4486
4483 } // namespace dart 4487 } // namespace dart
4484 4488
4485 #endif // VM_INTERMEDIATE_LANGUAGE_H_ 4489 #endif // VM_INTERMEDIATE_LANGUAGE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698