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

Side by Side Diff: src/typing.h

Issue 137403009: Adding a type vector to replace type cells. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Smarter vector allocation and refactoring. Created 6 years, 11 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 2013 the V8 project authors. All rights reserved. 1 // Copyright 2013 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 void operator delete(void* pointer, Zone* zone) { } 53 void operator delete(void* pointer, Zone* zone) { }
54 void operator delete(void* pointer) { } 54 void operator delete(void* pointer) { }
55 55
56 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS(); 56 DEFINE_AST_VISITOR_SUBCLASS_MEMBERS();
57 57
58 private: 58 private:
59 explicit AstTyper(CompilationInfo* info); 59 explicit AstTyper(CompilationInfo* info);
60 60
61 Effect ObservedOnStack(Object* value); 61 Effect ObservedOnStack(Object* value);
62 void ObserveTypesAtOsrEntry(IterationStatement* stmt); 62 void ObserveTypesAtOsrEntry(IterationStatement* stmt);
63 void InitializeFeedbackSlots(AstNode* expr);
63 64
64 static const int kNoVar = INT_MIN; 65 static const int kNoVar = INT_MIN;
65 typedef v8::internal::Effects<int, kNoVar> Effects; 66 typedef v8::internal::Effects<int, kNoVar> Effects;
66 typedef v8::internal::NestedEffects<int, kNoVar> Store; 67 typedef v8::internal::NestedEffects<int, kNoVar> Store;
67 68
68 CompilationInfo* info_; 69 CompilationInfo* info_;
69 TypeFeedbackOracle oracle_; 70 TypeFeedbackOracle oracle_;
70 Store store_; 71 Store store_;
72 int current_feedback_slot_;
71 73
72 TypeFeedbackOracle* oracle() { return &oracle_; } 74 TypeFeedbackOracle* oracle() { return &oracle_; }
73 75
74 void NarrowType(Expression* e, Bounds b) { 76 void NarrowType(Expression* e, Bounds b) {
75 e->set_bounds(Bounds::Both(e->bounds(), b, zone())); 77 e->set_bounds(Bounds::Both(e->bounds(), b, zone()));
76 } 78 }
77 void NarrowLowerType(Expression* e, Type* t) { 79 void NarrowLowerType(Expression* e, Type* t) {
78 e->set_bounds(Bounds::NarrowLower(e->bounds(), t, zone())); 80 e->set_bounds(Bounds::NarrowLower(e->bounds(), t, zone()));
79 } 81 }
80 82
(...skipping 20 matching lines...) Expand all
101 #define DECLARE_VISIT(type) virtual void Visit##type(type* node); 103 #define DECLARE_VISIT(type) virtual void Visit##type(type* node);
102 AST_NODE_LIST(DECLARE_VISIT) 104 AST_NODE_LIST(DECLARE_VISIT)
103 #undef DECLARE_VISIT 105 #undef DECLARE_VISIT
104 106
105 DISALLOW_COPY_AND_ASSIGN(AstTyper); 107 DISALLOW_COPY_AND_ASSIGN(AstTyper);
106 }; 108 };
107 109
108 } } // namespace v8::internal 110 } } // namespace v8::internal
109 111
110 #endif // V8_TYPING_H_ 112 #endif // V8_TYPING_H_
OLDNEW
« src/ia32/code-stubs-ia32.cc ('K') | « src/type-info.cc ('k') | src/typing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698