V8 Project
|
#include <hydrogen-escape-analysis.h>
Public Member Functions | |
HEscapeAnalysisPhase (HGraph *graph) | |
void | Run () |
![]() | |
HPhase (const char *name, HGraph *graph) | |
~HPhase () | |
Private Member Functions | |
void | CollectCapturedValues () |
bool | HasNoEscapingUses (HValue *value, int size) |
void | PerformScalarReplacement () |
void | AnalyzeDataFlow (HInstruction *instr) |
HCapturedObject * | NewState (HInstruction *prev) |
HCapturedObject * | NewStateForAllocation (HInstruction *prev) |
HCapturedObject * | NewStateForLoopHeader (HInstruction *prev, HCapturedObject *) |
HCapturedObject * | NewStateCopy (HInstruction *prev, HCapturedObject *state) |
HPhi * | NewPhiAndInsert (HBasicBlock *block, HValue *incoming_value, int index) |
HValue * | NewMapCheckAndInsert (HCapturedObject *state, HCheckMaps *mapcheck) |
HValue * | NewLoadReplacement (HLoadNamedField *load, HValue *load_value) |
HCapturedObject * | StateAt (HBasicBlock *block) |
void | SetStateAt (HBasicBlock *block, HCapturedObject *state) |
Private Attributes | |
ZoneList< HInstruction * > | captured_ |
int | number_of_objects_ |
int | number_of_values_ |
int | cumulative_values_ |
ZoneList< HCapturedObject * > | block_states_ |
Additional Inherited Members | |
![]() | |
HGraph * | graph () const |
Definition at line 15 of file hydrogen-escape-analysis.h.
|
inlineexplicit |
Definition at line 17 of file hydrogen-escape-analysis.h.
|
private |
Definition at line 162 of file hydrogen-escape-analysis.cc.
References v8::internal::List< T, AllocationPolicy >::AddBlock(), v8::internal::HValue::block(), block_states_, DCHECK, v8::internal::HValue::DeleteAndReplaceWith(), v8::internal::HPhase::graph(), v8::internal::HValue::HasNoUses(), v8::internal::HValue::id(), v8::internal::HValue::IsPhi(), v8::internal::kPointerSize, v8::internal::HValue::Mnemonic(), NewLoadReplacement(), NewMapCheckAndInsert(), NewPhiAndInsert(), NewStateCopy(), NewStateForAllocation(), NewStateForLoopHeader(), NULL, number_of_values_, v8::internal::HValue::opcode(), v8::internal::HValue::OperandAt(), v8::internal::HValue::OperandCount(), v8::internal::PrintF(), v8::internal::HValue::SetOperandAt(), SetStateAt(), and StateAt().
Referenced by PerformScalarReplacement().
|
private |
Definition at line 41 of file hydrogen-escape-analysis.cc.
References captured_, v8::internal::HPhase::graph(), HasNoEscapingUses(), v8::internal::HValue::id(), v8::internal::HValue::Mnemonic(), and v8::internal::PrintF().
Referenced by Run().
Definition at line 11 of file hydrogen-escape-analysis.cc.
References v8::internal::HValue::id(), v8::internal::HValue::Mnemonic(), v8::internal::PrintF(), size, use(), and v8::internal::HValue::uses().
Referenced by CollectCapturedValues().
|
private |
Definition at line 143 of file hydrogen-escape-analysis.cc.
References v8::internal::HPhase::graph(), v8::internal::HInstruction::InsertAfter(), v8::internal::Representation::IsDouble(), v8::internal::Representation::IsSmiOrInteger32(), and NULL.
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 128 of file hydrogen-escape-analysis.cc.
References v8::internal::HPhase::graph(), and NULL.
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 114 of file hydrogen-escape-analysis.cc.
References v8::internal::HPhase::graph().
Referenced by AnalyzeDataFlow(), and NewStateForLoopHeader().
|
private |
Definition at line 63 of file hydrogen-escape-analysis.cc.
References v8::internal::HPhase::graph(), number_of_objects_, and number_of_values_.
Referenced by NewStateCopy(), NewStateForAllocation(), and NewStateForLoopHeader().
|
private |
Definition at line 100 of file hydrogen-escape-analysis.cc.
References NewState(), number_of_values_, v8::internal::HValue::OperandAt(), and v8::internal::HValue::SetOperandAt().
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 73 of file hydrogen-escape-analysis.cc.
References v8::internal::HPhase::graph(), NewState(), and number_of_values_.
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 85 of file hydrogen-escape-analysis.cc.
References v8::internal::HValue::block(), NewPhiAndInsert(), NewState(), number_of_values_, and v8::internal::HValue::OperandAt().
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 294 of file hydrogen-escape-analysis.cc.
References AnalyzeDataFlow(), block_states_, captured_, cumulative_values_, DCHECK, v8::internal::kPointerSize, number_of_objects_, and number_of_values_.
Referenced by Run().
void v8::internal::HEscapeAnalysisPhase::Run | ( | ) |
Definition at line 314 of file hydrogen-escape-analysis.cc.
References captured_, CollectCapturedValues(), v8::internal::HPhase::graph(), and PerformScalarReplacement().
|
inlineprivate |
Definition at line 48 of file hydrogen-escape-analysis.h.
References block_states_, and v8::internal::List< T, AllocationPolicy >::Set().
Referenced by AnalyzeDataFlow().
|
inlineprivate |
Definition at line 44 of file hydrogen-escape-analysis.h.
References v8::internal::List< T, AllocationPolicy >::at(), and block_states_.
Referenced by AnalyzeDataFlow().
|
private |
Definition at line 64 of file hydrogen-escape-analysis.h.
Referenced by AnalyzeDataFlow(), PerformScalarReplacement(), SetStateAt(), and StateAt().
|
private |
Definition at line 53 of file hydrogen-escape-analysis.h.
Referenced by CollectCapturedValues(), PerformScalarReplacement(), and Run().
|
private |
Definition at line 60 of file hydrogen-escape-analysis.h.
Referenced by PerformScalarReplacement().
|
private |
Definition at line 56 of file hydrogen-escape-analysis.h.
Referenced by NewState(), and PerformScalarReplacement().
|
private |
Definition at line 59 of file hydrogen-escape-analysis.h.
Referenced by AnalyzeDataFlow(), NewState(), NewStateCopy(), NewStateForAllocation(), NewStateForLoopHeader(), and PerformScalarReplacement().