v8  3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
HBasicBlock Class Reference

#include <hydrogen.h>

Inheritance diagram for HBasicBlock:
Collaboration diagram for HBasicBlock:

Public Member Functions

 HBasicBlock (HGraph *graph)
 
virtual ~HBasicBlock ()
 
int block_id () const
 
void set_block_id (int id)
 
HGraphgraph () const
 
const ZoneList< HPhi * > * phis () const
 
HInstructionfirst () const
 
HInstructionlast () const
 
void set_last (HInstruction *instr)
 
HInstructionGetLastInstruction ()
 
HControlInstructionend () const
 
HLoopInformationloop_information () const
 
const ZoneList< HBasicBlock * > * predecessors () const
 
bool HasPredecessor () const
 
const ZoneList< HBasicBlock * > * dominated_blocks () const
 
const ZoneList< int > * deleted_phis () const
 
void RecordDeletedPhi (int merge_index)
 
HBasicBlockdominator () const
 
HEnvironmentlast_environment () const
 
int argument_count () const
 
void set_argument_count (int count)
 
int first_instruction_index () const
 
void set_first_instruction_index (int index)
 
int last_instruction_index () const
 
void set_last_instruction_index (int index)
 
void AttachLoopInformation ()
 
void DetachLoopInformation ()
 
bool IsLoopHeader () const
 
bool IsStartBlock () const
 
void PostProcessLoopHeader (IterationStatement *stmt)
 
bool IsFinished () const
 
void AddPhi (HPhi *phi)
 
void RemovePhi (HPhi *phi)
 
void AddInstruction (HInstruction *instr)
 
bool Dominates (HBasicBlock *other) const
 
int LoopNestingDepth () const
 
void SetInitialEnvironment (HEnvironment *env)
 
void ClearEnvironment ()
 
bool HasEnvironment () const
 
void UpdateEnvironment (HEnvironment *env)
 
HBasicBlockparent_loop_header () const
 
void set_parent_loop_header (HBasicBlock *block)
 
bool HasParentLoopHeader () const
 
void SetJoinId (int ast_id)
 
void Finish (HControlInstruction *last)
 
void FinishExit (HControlInstruction *instruction)
 
void Goto (HBasicBlock *block, FunctionState *state=NULL)
 
int PredecessorIndexOf (HBasicBlock *predecessor) const
 
void AddSimulate (int ast_id)
 
void AssignCommonDominator (HBasicBlock *other)
 
void AssignLoopSuccessorDominators ()
 
void FinishExitWithDeoptimization (HDeoptimize::UseEnvironment has_uses)
 
void AddLeaveInlined (HValue *return_value, HBasicBlock *target, FunctionState *state=NULL)
 
bool IsInlineReturnTarget () const
 
void MarkAsInlineReturnTarget ()
 
bool IsDeoptimizing () const
 
void MarkAsDeoptimizing ()
 
bool IsLoopSuccessorDominator () const
 
void MarkAsLoopSuccessorDominator ()
 
Zonezone () const
 
- Public Member Functions inherited from ZoneObject
 INLINE (void *operator new(size_t size, Zone *zone))
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)
 

Detailed Description

Definition at line 55 of file hydrogen.h.

Constructor & Destructor Documentation

HBasicBlock ( HGraph graph)
explicit

Definition at line 55 of file hydrogen.cc.

virtual ~HBasicBlock ( )
inlinevirtual

Definition at line 58 of file hydrogen.h.

Member Function Documentation

void AddPhi ( HPhi phi)
void AddSimulate ( int  ast_id)
inline
int argument_count ( ) const
inline

Definition at line 84 of file hydrogen.h.

void AssignCommonDominator ( HBasicBlock other)
void AttachLoopInformation ( )

Definition at line 77 of file hydrogen.cc.

References ASSERT, HBasicBlock::IsLoopHeader(), and HBasicBlock::zone().

void ClearEnvironment ( )
inline

Definition at line 109 of file hydrogen.h.

References v8::internal::NULL.

Referenced by HBasicBlock::FinishExit().

const ZoneList<int>* deleted_phis ( ) const
inline

Definition at line 76 of file hydrogen.h.

void DetachLoopInformation ( )

Definition at line 83 of file hydrogen.cc.

References ASSERT, HBasicBlock::IsLoopHeader(), and v8::internal::NULL.

Referenced by HBasicBlock::PostProcessLoopHeader().

const ZoneList<HBasicBlock*>* dominated_blocks ( ) const
inline

Definition at line 73 of file hydrogen.h.

bool Dominates ( HBasicBlock other) const

Definition at line 223 of file hydrogen.cc.

References HBasicBlock::dominator(), and v8::internal::NULL.

HBasicBlock* dominator ( ) const
inline

Definition at line 82 of file hydrogen.h.

Referenced by HBasicBlock::AssignCommonDominator(), and HBasicBlock::Dominates().

void FinishExit ( HControlInstruction instruction)
void FinishExitWithDeoptimization ( HDeoptimize::UseEnvironment  has_uses)
inline

Definition at line 132 of file hydrogen.h.

References HBasicBlock::FinishExit().

int first_instruction_index ( ) const
inline

Definition at line 86 of file hydrogen.h.

Referenced by LChunk::GetLabel(), and LChunk::MarkEmptyBlocks().

HInstruction* GetLastInstruction ( )
HGraph* graph ( ) const
inline

Definition at line 63 of file hydrogen.h.

Referenced by HValue::SetBlock().

bool HasEnvironment ( ) const
inline

Definition at line 110 of file hydrogen.h.

References v8::internal::NULL.

Referenced by HBasicBlock::SetInitialEnvironment().

bool HasParentLoopHeader ( ) const
inline

Definition at line 119 of file hydrogen.h.

References v8::internal::NULL.

bool HasPredecessor ( ) const
inline

Definition at line 72 of file hydrogen.h.

bool IsDeoptimizing ( ) const
inline

Definition at line 151 of file hydrogen.h.

bool IsFinished ( ) const
inline
bool IsInlineReturnTarget ( ) const
inline

Definition at line 148 of file hydrogen.h.

Referenced by HBasicBlock::AddLeaveInlined(), and HBasicBlock::Goto().

bool IsLoopSuccessorDominator ( ) const
inline

Definition at line 154 of file hydrogen.h.

HInstruction* last ( ) const
inline
HEnvironment* last_environment ( ) const
inline
int last_instruction_index ( ) const
inline

Definition at line 90 of file hydrogen.h.

Referenced by LChunk::MarkEmptyBlocks().

HLoopInformation* loop_information ( ) const
inline
int LoopNestingDepth ( ) const
void MarkAsDeoptimizing ( )
inline

Definition at line 152 of file hydrogen.h.

void MarkAsInlineReturnTarget ( )
inline

Definition at line 149 of file hydrogen.h.

Referenced by FunctionState::FunctionState().

void MarkAsLoopSuccessorDominator ( )
inline

Definition at line 157 of file hydrogen.h.

Referenced by HBasicBlock::AssignLoopSuccessorDominators().

HBasicBlock* parent_loop_header ( ) const
inline
const ZoneList<HPhi*>* phis ( ) const
inline

Definition at line 64 of file hydrogen.h.

Referenced by HGraphBuilder::CreateGraph().

int PredecessorIndexOf ( HBasicBlock predecessor) const

Definition at line 382 of file hydrogen.cc.

References UNREACHABLE.

const ZoneList<HBasicBlock*>* predecessors ( ) const
inline
void RecordDeletedPhi ( int  merge_index)
inline

Definition at line 79 of file hydrogen.h.

References List< T, P >::Add(), and HBasicBlock::zone().

Referenced by HGraph::EliminateUnreachablePhis().

void set_argument_count ( int  count)
inline

Definition at line 85 of file hydrogen.h.

void set_block_id ( int  id)
inline

Definition at line 62 of file hydrogen.h.

Referenced by HGraph::OrderBlocks().

void set_first_instruction_index ( int  index)
inline

Definition at line 87 of file hydrogen.h.

void set_last ( HInstruction instr)
inline

Definition at line 67 of file hydrogen.h.

Referenced by HInstruction::InsertAfter(), and HInstruction::Unlink().

void set_last_instruction_index ( int  index)
inline

Definition at line 91 of file hydrogen.h.

void set_parent_loop_header ( HBasicBlock block)
inline

Definition at line 114 of file hydrogen.h.

References ASSERT, and v8::internal::NULL.

void SetInitialEnvironment ( HEnvironment env)
void UpdateEnvironment ( HEnvironment env)
inline

Definition at line 111 of file hydrogen.h.

Referenced by HBasicBlock::SetInitialEnvironment().


The documentation for this class was generated from the following files: