5#ifndef V8_COMPILER_ESCAPE_ANALYSIS_H_
6#define V8_COMPILER_ESCAPE_ANALYSIS_H_
22class CommonOperatorBuilder;
24class EscapeAnalysisTracker;
V8_WARN_UNUSED_RESULT V8_INLINE bool To(T *out) const
Isolate * isolate() const
void push_back(const T &value)
void RevisitDependants(EffectGraphReducer *reducer)
void AddDependency(Node *node)
ZoneVector< Node * > dependants_
bool value_changed() const
bool effect_changed() const
void set_effect_changed()
NodeMarker< State > state_
ZoneStack< NodeState > stack_
std::function< void(Node *, Reduction *)> reduce_
ZoneStack< Node * > revisit_
void ReduceFrom(Node *node)
EffectGraphReducer(TFGraph *graph, std::function< void(Node *, Reduction *)> reduce, TickCounter *tick_counter, Zone *zone)
TickCounter * tick_counter() const
TickCounter *const tick_counter_
Node * GetVirtualObjectField(const VirtualObject *vobject, int field, Node *effect)
const VirtualObject * GetVirtualObject(Node *node)
EscapeAnalysisResult(EscapeAnalysisTracker *tracker)
Node * GetReplacementOf(Node *node)
EscapeAnalysisTracker * tracker_
Isolate * isolate() const
EscapeAnalysisResult analysis_result()
EscapeAnalysisTracker * tracker_
bool operator==(Variable other) const
static Variable Invalid()
friend V8_INLINE size_t hash_value(Variable v)
bool operator!=(Variable other) const
bool operator<(Variable other) const
friend std::ostream & operator<<(std::ostream &os, Variable var)
Maybe< Variable > FieldAt(int offset) const
const_iterator begin() const
Maybe< Variable > FieldAt(Maybe< int > maybe_offset) const
VirtualObject(VariableTracker *var_states, Id id, int size)
const_iterator end() const
ZoneVector< Variable > fields_
V8_INLINE size_t hash_value(unsigned int v)
constexpr int kTaggedSize
Maybe< T > Just(const T &t)
#define NON_EXPORTED_BASE(code)
#define DCHECK(condition)
#define DCHECK_EQ(v1, v2)
#define V8_EXPORT_PRIVATE
constexpr bool IsAligned(T value, U alignment)