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

Unified Diff: src/compiler/js-global-specialization.h

Issue 1396333010: [turbofan] Initial support for monomorphic/polymorphic property loads. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Work-around register allocator bug. Created 5 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/compilation-dependencies.cc ('k') | src/compiler/js-global-specialization.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/compiler/js-global-specialization.h
diff --git a/src/compiler/js-global-specialization.h b/src/compiler/js-global-specialization.h
index a040e9bdbfcb345e41ce7eaa51a866f8d305d5f0..eed9de89f6fd023bff28d9717625eba1f112c2dd 100644
--- a/src/compiler/js-global-specialization.h
+++ b/src/compiler/js-global-specialization.h
@@ -22,6 +22,7 @@ namespace compiler {
class CommonOperatorBuilder;
class JSGraph;
class JSOperatorBuilder;
+class MachineOperatorBuilder;
// Specializes a given JSGraph to a given GlobalObject, potentially constant
@@ -38,13 +39,14 @@ class JSGlobalSpecialization final : public AdvancedReducer {
JSGlobalSpecialization(Editor* editor, JSGraph* jsgraph, Flags flags,
Handle<GlobalObject> global_object,
- CompilationDependencies* dependencies);
+ CompilationDependencies* dependencies, Zone* zone);
Reduction Reduce(Node* node) final;
private:
Reduction ReduceJSLoadGlobal(Node* node);
Reduction ReduceJSStoreGlobal(Node* node);
+ Reduction ReduceJSLoadNamed(Node* node);
Reduction Replace(Node* node, Node* value, Node* effect = nullptr,
Node* control = nullptr) {
@@ -53,6 +55,12 @@ class JSGlobalSpecialization final : public AdvancedReducer {
}
Reduction Replace(Node* node, Handle<Object> value);
+ class PropertyAccessInfo;
+ bool ComputePropertyAccessInfo(Handle<Map> map, Handle<Name> name,
+ PropertyAccessInfo* access_info);
+ bool ComputePropertyAccessInfos(MapHandleList const& maps, Handle<Name> name,
+ ZoneVector<PropertyAccessInfo>* access_infos);
+
struct ScriptContextTableLookupResult;
bool LookupInScriptContextTable(Handle<Name> name,
ScriptContextTableLookupResult* result);
@@ -63,14 +71,17 @@ class JSGlobalSpecialization final : public AdvancedReducer {
CommonOperatorBuilder* common() const;
JSOperatorBuilder* javascript() const;
SimplifiedOperatorBuilder* simplified() const;
+ MachineOperatorBuilder* machine() const;
Flags flags() const { return flags_; }
Handle<GlobalObject> global_object() const { return global_object_; }
CompilationDependencies* dependencies() const { return dependencies_; }
+ Zone* zone() const { return zone_; }
JSGraph* const jsgraph_;
Flags const flags_;
Handle<GlobalObject> global_object_;
CompilationDependencies* const dependencies_;
+ Zone* const zone_;
DISALLOW_COPY_AND_ASSIGN(JSGlobalSpecialization);
};
« no previous file with comments | « src/compilation-dependencies.cc ('k') | src/compiler/js-global-specialization.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698