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

Side by Side Diff: src/compiler/type-hints.cc

Issue 2342853002: [TypeFeedbackVector] special ic slots for interpreter compare/binary ops. (Closed)
Patch Set: Code comments. Created 4 years, 3 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
OLDNEW
(Empty)
1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "src/compiler/type-hints.h"
6
7 namespace v8 {
8 namespace internal {
9 namespace compiler {
10
11 std::ostream& operator<<(std::ostream& os, BinaryOperationHint hint) {
12 switch (hint) {
13 case BinaryOperationHint::kNone:
14 return os << "None";
15 case BinaryOperationHint::kSignedSmall:
16 return os << "SignedSmall";
17 case BinaryOperationHint::kSigned32:
18 return os << "Signed32";
19 case BinaryOperationHint::kNumberOrOddball:
20 return os << "NumberOrOddball";
21 case BinaryOperationHint::kString:
22 return os << "String";
23 case BinaryOperationHint::kAny:
24 return os << "Any";
25 }
26 UNREACHABLE();
27 return os;
28 }
29
30 std::ostream& operator<<(std::ostream& os, CompareOperationHint hint) {
31 switch (hint) {
32 case CompareOperationHint::kNone:
33 return os << "None";
34 case CompareOperationHint::kSignedSmall:
35 return os << "SignedSmall";
36 case CompareOperationHint::kNumber:
37 return os << "Number";
38 case CompareOperationHint::kNumberOrOddball:
39 return os << "NumberOrOddball";
40 case CompareOperationHint::kAny:
41 return os << "Any";
42 }
43 UNREACHABLE();
44 return os;
45 }
46
47 std::ostream& operator<<(std::ostream& os, ToBooleanHint hint) {
48 switch (hint) {
49 case ToBooleanHint::kNone:
50 return os << "None";
51 case ToBooleanHint::kUndefined:
52 return os << "Undefined";
53 case ToBooleanHint::kBoolean:
54 return os << "Boolean";
55 case ToBooleanHint::kNull:
56 return os << "Null";
57 case ToBooleanHint::kSmallInteger:
58 return os << "SmallInteger";
59 case ToBooleanHint::kReceiver:
60 return os << "Receiver";
61 case ToBooleanHint::kString:
62 return os << "String";
63 case ToBooleanHint::kSymbol:
64 return os << "Symbol";
65 case ToBooleanHint::kHeapNumber:
66 return os << "HeapNumber";
67 case ToBooleanHint::kSimdValue:
68 return os << "SimdValue";
69 case ToBooleanHint::kAny:
70 return os << "Any";
71 }
72 UNREACHABLE();
73 return os;
74 }
75
76 std::ostream& operator<<(std::ostream& os, ToBooleanHints hints) {
77 if (hints == ToBooleanHint::kAny) return os << "Any";
78 if (hints == ToBooleanHint::kNone) return os << "None";
79 bool first = true;
80 for (ToBooleanHints::mask_type i = 0; i < sizeof(i) * 8; ++i) {
81 ToBooleanHint const hint = static_cast<ToBooleanHint>(1u << i);
82 if (hints & hint) {
83 if (!first) os << "|";
84 first = false;
85 os << hint;
86 }
87 }
88 return os;
89 }
90
91 } // namespace compiler
92 } // namespace internal
93 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698