| Index: src/compiler/js-type-feedback.h
|
| diff --git a/src/compiler/js-type-feedback.h b/src/compiler/js-type-feedback.h
|
| deleted file mode 100644
|
| index a5d6bee8a96aa350171ed4808f0392211d381130..0000000000000000000000000000000000000000
|
| --- a/src/compiler/js-type-feedback.h
|
| +++ /dev/null
|
| @@ -1,114 +0,0 @@
|
| -// Copyright 2015 the V8 project authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef V8_COMPILER_JS_TYPE_FEEDBACK_H_
|
| -#define V8_COMPILER_JS_TYPE_FEEDBACK_H_
|
| -
|
| -#include "src/utils.h"
|
| -
|
| -#include "src/compiler/graph-reducer.h"
|
| -#include "src/compiler/js-graph.h"
|
| -#include "src/compiler/node-aux-data.h"
|
| -
|
| -namespace v8 {
|
| -namespace internal {
|
| -
|
| -class TypeFeedbackOracle;
|
| -class SmallMapList;
|
| -class CompilationDependencies;
|
| -
|
| -namespace compiler {
|
| -
|
| -// Stores type feedback information for nodes in the graph in a separate
|
| -// data structure.
|
| -class JSTypeFeedbackTable : public ZoneObject {
|
| - public:
|
| - explicit JSTypeFeedbackTable(Zone* zone);
|
| -
|
| - void Record(Node* node, TypeFeedbackId id);
|
| - void Record(Node* node, FeedbackVectorSlot slot);
|
| -
|
| - private:
|
| - friend class JSTypeFeedbackSpecializer;
|
| - typedef std::map<NodeId, TypeFeedbackId, std::less<NodeId>,
|
| - zone_allocator<TypeFeedbackId> > TypeFeedbackIdMap;
|
| - typedef std::map<NodeId, FeedbackVectorSlot, std::less<NodeId>,
|
| - zone_allocator<FeedbackVectorSlot> > FeedbackVectorSlotMap;
|
| -
|
| - TypeFeedbackIdMap type_feedback_id_map_;
|
| - FeedbackVectorSlotMap feedback_vector_slot_map_;
|
| -
|
| - TypeFeedbackId FindTypeFeedbackId(Node* node) {
|
| - TypeFeedbackIdMap::const_iterator it =
|
| - type_feedback_id_map_.find(node->id());
|
| - return it == type_feedback_id_map_.end() ? TypeFeedbackId::None()
|
| - : it->second;
|
| - }
|
| -
|
| - FeedbackVectorSlot FindFeedbackVectorSlot(Node* node) {
|
| - FeedbackVectorSlotMap::const_iterator it =
|
| - feedback_vector_slot_map_.find(node->id());
|
| - return it == feedback_vector_slot_map_.end() ? FeedbackVectorSlot::Invalid()
|
| - : it->second;
|
| - }
|
| -};
|
| -
|
| -
|
| -// Specializes a graph to the type feedback recorded in the
|
| -// {js_type_feedback} provided to the constructor.
|
| -class JSTypeFeedbackSpecializer : public AdvancedReducer {
|
| - public:
|
| - enum DeoptimizationMode { kDeoptimizationEnabled, kDeoptimizationDisabled };
|
| -
|
| - JSTypeFeedbackSpecializer(Editor* editor, JSGraph* jsgraph,
|
| - JSTypeFeedbackTable* js_type_feedback,
|
| - TypeFeedbackOracle* oracle,
|
| - Handle<GlobalObject> global_object,
|
| - DeoptimizationMode mode,
|
| - CompilationDependencies* dependencies)
|
| - : AdvancedReducer(editor),
|
| - jsgraph_(jsgraph),
|
| - js_type_feedback_(js_type_feedback),
|
| - oracle_(oracle),
|
| - global_object_(global_object),
|
| - mode_(mode),
|
| - dependencies_(dependencies) {
|
| - CHECK_NOT_NULL(js_type_feedback);
|
| - }
|
| -
|
| - Reduction Reduce(Node* node) override;
|
| -
|
| - // Visible for unit testing.
|
| - Reduction ReduceJSLoadGlobal(Node* node);
|
| - Reduction ReduceJSLoadNamed(Node* node);
|
| - Reduction ReduceJSLoadProperty(Node* node);
|
| - Reduction ReduceJSStoreNamed(Node* node);
|
| - Reduction ReduceJSStoreProperty(Node* node);
|
| -
|
| - private:
|
| - JSGraph* jsgraph_;
|
| - JSTypeFeedbackTable* js_type_feedback_;
|
| - TypeFeedbackOracle* oracle_;
|
| - Handle<GlobalObject> global_object_;
|
| - DeoptimizationMode const mode_;
|
| - CompilationDependencies* dependencies_;
|
| -
|
| - TypeFeedbackOracle* oracle() { return oracle_; }
|
| - Graph* graph() { return jsgraph_->graph(); }
|
| - JSGraph* jsgraph() { return jsgraph_; }
|
| - CommonOperatorBuilder* common() { return jsgraph_->common(); }
|
| - SimplifiedOperatorBuilder* simplified() { return jsgraph_->simplified(); }
|
| - DeoptimizationMode mode() const { return mode_; }
|
| -
|
| - void BuildMapCheck(Node* receiver, Handle<Map> map, bool smi_check,
|
| - Node* effect, Node* control, Node** success, Node** fail);
|
| -
|
| - Node* GetFrameStateBefore(Node* node);
|
| -};
|
| -
|
| -} // namespace compiler
|
| -} // namespace internal
|
| -} // namespace v8
|
| -
|
| -#endif
|
|
|