// Copyright 2019 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_MAP_INFERENCE_H_ #define V8_COMPILER_MAP_INFERENCE_H_ #include "src/compiler/graph-reducer.h" #include "src/objects/instance-type.h" #include "src/objects/map.h" namespace v8 { namespace internal { namespace compiler { class CompilationDependencies; struct FeedbackSource; class JSGraph; class JSHeapBroker; class Node; // The MapInference class provides access to the "inferred" maps of an // {object}. This information can be either "reliable", meaning that the object // is guaranteed to have one of these maps at runtime, or "unreliable", meaning // that the object is guaranteed to have HAD one of these maps. // // The MapInference class does not expose whether or not the information is // reliable. A client is expected to eventually make the information reliable by // calling one of several methods that will either insert map checks, or record // stability dependencies (or do nothing if the information was already // reliable). class MapInference { … }; } // namespace compiler } // namespace internal } // namespace v8 #endif // V8_COMPILER_MAP_INFERENCE_H_