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

Side by Side Diff: src/compiler/types.h

Issue 2416243002: Make unittests work in component build (Closed)
Patch Set: updates Created 4 years, 2 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
« no previous file with comments | « src/compiler/typer.h ('k') | src/compiler/value-numbering-reducer.h » ('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 2014 the V8 project authors. All rights reserved. 1 // Copyright 2014 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_COMPILER_TYPES_H_ 5 #ifndef V8_COMPILER_TYPES_H_
6 #define V8_COMPILER_TYPES_H_ 6 #define V8_COMPILER_TYPES_H_
7 7
8 #include "src/base/compiler-specific.h"
8 #include "src/conversions.h" 9 #include "src/conversions.h"
10 #include "src/globals.h"
9 #include "src/handles.h" 11 #include "src/handles.h"
10 #include "src/objects.h" 12 #include "src/objects.h"
11 #include "src/ostreams.h" 13 #include "src/ostreams.h"
12 14
13 namespace v8 { 15 namespace v8 {
14 namespace internal { 16 namespace internal {
15 namespace compiler { 17 namespace compiler {
16 18
17 // SUMMARY 19 // SUMMARY
18 // 20 //
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
183 185
184 #define BITSET_TYPE_LIST(V) \ 186 #define BITSET_TYPE_LIST(V) \
185 INTERNAL_BITSET_TYPE_LIST(V) \ 187 INTERNAL_BITSET_TYPE_LIST(V) \
186 PROPER_BITSET_TYPE_LIST(V) 188 PROPER_BITSET_TYPE_LIST(V)
187 189
188 class Type; 190 class Type;
189 191
190 // ----------------------------------------------------------------------------- 192 // -----------------------------------------------------------------------------
191 // Bitset types (internal). 193 // Bitset types (internal).
192 194
193 class BitsetType { 195 class V8_EXPORT_PRIVATE BitsetType {
194 public: 196 public:
195 typedef uint32_t bitset; // Internal 197 typedef uint32_t bitset; // Internal
196 198
197 enum : uint32_t { 199 enum : uint32_t {
198 #define DECLARE_TYPE(type, value) k##type = (value), 200 #define DECLARE_TYPE(type, value) k##type = (value),
199 BITSET_TYPE_LIST(DECLARE_TYPE) 201 BITSET_TYPE_LIST(DECLARE_TYPE)
200 #undef DECLARE_TYPE 202 #undef DECLARE_TYPE
201 kUnusedEOL = 0 203 kUnusedEOL = 0
202 }; 204 };
203 205
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 explicit OtherNumberConstantType(double value) 313 explicit OtherNumberConstantType(double value)
312 : TypeBase(kOtherNumberConstant), value_(value) { 314 : TypeBase(kOtherNumberConstant), value_(value) {
313 CHECK(IsOtherNumberConstant(value)); 315 CHECK(IsOtherNumberConstant(value));
314 } 316 }
315 317
316 BitsetType::bitset Lub() { return BitsetType::kOtherNumber; } 318 BitsetType::bitset Lub() { return BitsetType::kOtherNumber; }
317 319
318 double value_; 320 double value_;
319 }; 321 };
320 322
321 class HeapConstantType : public TypeBase { 323 class V8_EXPORT_PRIVATE HeapConstantType : public NON_EXPORTED_BASE(TypeBase) {
322 public: 324 public:
323 i::Handle<i::HeapObject> Value() { return object_; } 325 i::Handle<i::HeapObject> Value() { return object_; }
324 326
325 private: 327 private:
326 friend class Type; 328 friend class Type;
327 friend class BitsetType; 329 friend class BitsetType;
328 330
329 static Type* New(i::Handle<i::HeapObject> value, Zone* zone) { 331 static Type* New(i::Handle<i::HeapObject> value, Zone* zone) {
330 BitsetType::bitset bitset = BitsetType::Lub(*value); 332 BitsetType::bitset bitset = BitsetType::Lub(*value);
331 return AsType(new (zone->New(sizeof(HeapConstantType))) 333 return AsType(new (zone->New(sizeof(HeapConstantType)))
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 } 481 }
480 482
481 static UnionType* cast(Type* type) { 483 static UnionType* cast(Type* type) {
482 DCHECK(IsKind(type, kUnion)); 484 DCHECK(IsKind(type, kUnion));
483 return static_cast<UnionType*>(FromType(type)); 485 return static_cast<UnionType*>(FromType(type));
484 } 486 }
485 487
486 bool Wellformed(); 488 bool Wellformed();
487 }; 489 };
488 490
489 class Type { 491 class V8_EXPORT_PRIVATE Type {
490 public: 492 public:
491 typedef BitsetType::bitset bitset; // Internal 493 typedef BitsetType::bitset bitset; // Internal
492 494
493 // Constructors. 495 // Constructors.
494 #define DEFINE_TYPE_CONSTRUCTOR(type, value) \ 496 #define DEFINE_TYPE_CONSTRUCTOR(type, value) \
495 static Type* type() { return BitsetType::New(BitsetType::k##type); } 497 static Type* type() { return BitsetType::New(BitsetType::k##type); }
496 PROPER_BITSET_TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR) 498 PROPER_BITSET_TYPE_LIST(DEFINE_TYPE_CONSTRUCTOR)
497 #undef DEFINE_TYPE_CONSTRUCTOR 499 #undef DEFINE_TYPE_CONSTRUCTOR
498 500
499 static Type* SignedSmall() { 501 static Type* SignedSmall() {
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 RangeType::Limits* limits, Zone* zone); 641 RangeType::Limits* limits, Zone* zone);
640 static Type* NormalizeUnion(Type* unioned, int size, Zone* zone); 642 static Type* NormalizeUnion(Type* unioned, int size, Zone* zone);
641 static Type* NormalizeRangeAndBitset(Type* range, bitset* bits, Zone* zone); 643 static Type* NormalizeRangeAndBitset(Type* range, bitset* bits, Zone* zone);
642 }; 644 };
643 645
644 } // namespace compiler 646 } // namespace compiler
645 } // namespace internal 647 } // namespace internal
646 } // namespace v8 648 } // namespace v8
647 649
648 #endif // V8_COMPILER_TYPES_H_ 650 #endif // V8_COMPILER_TYPES_H_
OLDNEW
« no previous file with comments | « src/compiler/typer.h ('k') | src/compiler/value-numbering-reducer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698