v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <hydrogen.h>
Definition at line 55 of file hydrogen.h.
|
explicit |
Definition at line 55 of file hydrogen.cc.
|
inlinevirtual |
Definition at line 58 of file hydrogen.h.
void AddInstruction | ( | HInstruction * | instr | ) |
Definition at line 106 of file hydrogen.cc.
References ASSERT, HInstruction::InsertAfter(), HBasicBlock::IsFinished(), HInstruction::IsLinked(), HBasicBlock::IsStartBlock(), v8::internal::NULL, and HBasicBlock::zone().
Referenced by HGraphBuilder::AddInstruction(), HBasicBlock::AddLeaveInlined(), HBasicBlock::AddSimulate(), HBasicBlock::Finish(), and HBasicBlock::Goto().
void AddLeaveInlined | ( | HValue * | return_value, |
FunctionState * | state | ||
) |
Definition at line 183 of file hydrogen.cc.
References HBasicBlock::AddInstruction(), HBasicBlock::AddSimulate(), ASSERT, HEnvironment::DiscardInlined(), v8::internal::DROP_EXTRA_ON_RETURN, HBasicBlock::Finish(), FunctionState::function_return(), FunctionState::inlining_kind(), HBasicBlock::IsInlineReturnTarget(), HBasicBlock::last_environment(), BailoutId::None(), v8::internal::NULL, HEnvironment::Push(), and HBasicBlock::zone().
void AddPhi | ( | HPhi * | phi | ) |
Definition at line 89 of file hydrogen.cc.
References ASSERT, HBasicBlock::IsStartBlock(), HValue::SetBlock(), and HBasicBlock::zone().
Referenced by HEnvironment::AddIncomingEdge(), and HEnvironment::CopyAsLoopHeader().
|
inline |
Definition at line 128 of file hydrogen.h.
References HBasicBlock::AddInstruction().
Referenced by HBasicBlock::AddLeaveInlined(), HGraphBuilder::AddSimulate(), and HBasicBlock::Goto().
|
inline |
Definition at line 84 of file hydrogen.h.
void AssignCommonDominator | ( | HBasicBlock * | other | ) |
Definition at line 298 of file hydrogen.cc.
References ASSERT, HBasicBlock::block_id(), HBasicBlock::dominator(), HBasicBlock::first(), and v8::internal::NULL.
Referenced by HGraph::AssignDominators().
void AssignLoopSuccessorDominators | ( | ) |
Definition at line 325 of file hydrogen.cc.
References ASSERT, HBasicBlock::block_id(), HGraph::blocks(), HBasicBlock::end(), HLoopInformation::GetLastBackEdge(), HBasicBlock::IsLoopHeader(), HBasicBlock::last(), HBasicBlock::loop_information(), HBasicBlock::MarkAsLoopSuccessorDominator(), and HBasicBlock::parent_loop_header().
Referenced by HGraph::AssignDominators().
void AttachLoopInformation | ( | ) |
Definition at line 77 of file hydrogen.cc.
References ASSERT, HBasicBlock::IsLoopHeader(), and HBasicBlock::zone().
|
inline |
Definition at line 61 of file hydrogen.h.
Referenced by HBasicBlock::AssignCommonDominator(), HBasicBlock::AssignLoopSuccessorDominators(), LLabel::block_id(), LControlInstruction< 1, 0 >::false_block_id(), HLoopInformation::GetLastBackEdge(), HValue::IsDefinedAfter(), HBasicBlock::IsStartBlock(), and LControlInstruction< 1, 0 >::true_block_id().
|
inline |
Definition at line 109 of file hydrogen.h.
References v8::internal::NULL.
Referenced by HBasicBlock::FinishExit().
|
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().
|
inline |
Definition at line 73 of file hydrogen.h.
bool Dominates | ( | HBasicBlock * | other | ) | const |
Definition at line 222 of file hydrogen.cc.
References HBasicBlock::dominator(), and v8::internal::NULL.
|
inline |
Definition at line 82 of file hydrogen.h.
Referenced by HBasicBlock::AssignCommonDominator(), and HBasicBlock::Dominates().
|
inline |
Definition at line 69 of file hydrogen.h.
Referenced by HBasicBlock::AssignLoopSuccessorDominators(), HBasicBlock::Finish(), HInstruction::InsertAfter(), and HBasicBlock::SetJoinId().
void Finish | ( | HControlInstruction * | last | ) |
Definition at line 158 of file hydrogen.cc.
References HBasicBlock::AddInstruction(), ASSERT, HBasicBlock::end(), and HBasicBlock::IsFinished().
Referenced by HBasicBlock::AddLeaveInlined(), HBasicBlock::FinishExit(), HBasicBlock::Goto(), EffectContext::ReturnControl(), ValueContext::ReturnControl(), and TestContext::ReturnControl().
void FinishExit | ( | HControlInstruction * | instruction | ) |
Definition at line 682 of file hydrogen.cc.
References HBasicBlock::ClearEnvironment(), and HBasicBlock::Finish().
Referenced by HGraphBuilder::CreateGraph(), and HBasicBlock::FinishExitWithDeoptimization().
|
inline |
Definition at line 132 of file hydrogen.h.
References HBasicBlock::FinishExit().
|
inline |
Definition at line 65 of file hydrogen.h.
Referenced by HBasicBlock::AssignCommonDominator(), HInstruction::InsertAfter(), and HBasicBlock::SetInitialEnvironment().
|
inline |
Definition at line 86 of file hydrogen.h.
Referenced by LChunk::GetLabel(), and LChunk::MarkEmptyBlocks().
HInstruction* GetLastInstruction | ( | ) |
void Goto | ( | HBasicBlock * | block, |
FunctionState * | state = NULL |
||
) |
Definition at line 168 of file hydrogen.cc.
References HBasicBlock::AddInstruction(), HBasicBlock::AddSimulate(), HEnvironment::DiscardInlined(), v8::internal::DROP_EXTRA_ON_RETURN, HBasicBlock::Finish(), FunctionState::inlining_kind(), HBasicBlock::IsInlineReturnTarget(), HBasicBlock::last_environment(), BailoutId::None(), v8::internal::NULL, and HBasicBlock::zone().
Referenced by HGraphBuilder::CreateGraph(), HGraphBuilder::CreateJoin(), and TestContext::ReturnControl().
|
inline |
Definition at line 63 of file hydrogen.h.
Referenced by HValue::SetBlock().
|
inline |
Definition at line 110 of file hydrogen.h.
References v8::internal::NULL.
Referenced by HBasicBlock::SetInitialEnvironment().
|
inline |
Definition at line 119 of file hydrogen.h.
References v8::internal::NULL.
|
inline |
Definition at line 72 of file hydrogen.h.
|
inline |
Definition at line 149 of file hydrogen.h.
|
inline |
Definition at line 101 of file hydrogen.h.
References v8::internal::NULL.
Referenced by HBasicBlock::AddInstruction(), HBasicBlock::Finish(), and HInstruction::InsertAfter().
|
inline |
Definition at line 146 of file hydrogen.h.
Referenced by HBasicBlock::AddLeaveInlined(), and HBasicBlock::Goto().
|
inline |
Definition at line 97 of file hydrogen.h.
References HBasicBlock::loop_information(), and v8::internal::NULL.
Referenced by HEnvironment::AddIncomingEdge(), HGraph::AssignDominators(), HBasicBlock::AssignLoopSuccessorDominators(), HBasicBlock::AttachLoopInformation(), HBasicBlock::DetachLoopInformation(), LLabel::is_loop_header(), HBasicBlock::LoopNestingDepth(), and HBasicBlock::PostProcessLoopHeader().
|
inline |
Definition at line 152 of file hydrogen.h.
|
inline |
Definition at line 98 of file hydrogen.h.
References HBasicBlock::block_id().
Referenced by HBasicBlock::AddInstruction(), HBasicBlock::AddPhi(), HInstruction::InsertAfter(), HInstruction::InsertBefore(), and HValue::ReplaceAllUsesWith().
|
inline |
Definition at line 66 of file hydrogen.h.
Referenced by HBasicBlock::AssignLoopSuccessorDominators(), and HInstruction::InsertAfter().
|
inline |
Definition at line 83 of file hydrogen.h.
Referenced by HBasicBlock::AddLeaveInlined(), HGraphBuilder::environment(), HBasicBlock::Goto(), and HBasicBlock::SetJoinId().
|
inline |
Definition at line 90 of file hydrogen.h.
Referenced by LChunk::MarkEmptyBlocks().
|
inline |
Definition at line 70 of file hydrogen.h.
Referenced by HBasicBlock::AssignLoopSuccessorDominators(), HBasicBlock::IsLoopHeader(), and HBasicBlock::PostProcessLoopHeader().
int LoopNestingDepth | ( | ) | const |
Definition at line 232 of file hydrogen.cc.
References HBasicBlock::IsLoopHeader(), v8::internal::NULL, and HBasicBlock::parent_loop_header().
|
inline |
Definition at line 150 of file hydrogen.h.
|
inline |
Definition at line 147 of file hydrogen.h.
Referenced by FunctionState::FunctionState().
|
inline |
Definition at line 155 of file hydrogen.h.
Referenced by HBasicBlock::AssignLoopSuccessorDominators().
|
inline |
Definition at line 112 of file hydrogen.h.
Referenced by HBasicBlock::AssignLoopSuccessorDominators(), and HBasicBlock::LoopNestingDepth().
Definition at line 64 of file hydrogen.h.
Referenced by HGraph::Optimize().
void PostProcessLoopHeader | ( | IterationStatement * | stmt | ) |
Definition at line 243 of file hydrogen.cc.
References ASSERT, HBasicBlock::DetachLoopInformation(), BreakableStatement::EntryId(), HBasicBlock::IsLoopHeader(), HBasicBlock::loop_information(), HBasicBlock::predecessors(), HLoopInformation::RegisterBackEdge(), and HBasicBlock::SetJoinId().
int PredecessorIndexOf | ( | HBasicBlock * | predecessor | ) | const |
Definition at line 381 of file hydrogen.cc.
References UNREACHABLE.
|
inline |
Definition at line 71 of file hydrogen.h.
Referenced by HEnvironment::AddIncomingEdge(), HGraph::AssignDominators(), and HBasicBlock::PostProcessLoopHeader().
|
inline |
Definition at line 79 of file hydrogen.h.
References List< T, P >::Add(), and HBasicBlock::zone().
Referenced by HGraph::EliminateUnreachablePhis().
void RemovePhi | ( | HPhi * | phi | ) |
Definition at line 96 of file hydrogen.cc.
References ASSERT, HValue::block(), HValue::HasNoUses(), HPhi::is_live(), HValue::Kill(), v8::internal::NULL, and HValue::SetBlock().
Referenced by HPhi::DeleteFromGraph(), HGraph::EliminateRedundantPhis(), and HGraph::EliminateUnreachablePhis().
|
inline |
Definition at line 85 of file hydrogen.h.
|
inline |
Definition at line 62 of file hydrogen.h.
Referenced by HGraph::OrderBlocks().
|
inline |
Definition at line 87 of file hydrogen.h.
|
inline |
Definition at line 67 of file hydrogen.h.
Referenced by HInstruction::InsertAfter(), and HInstruction::Unlink().
|
inline |
Definition at line 91 of file hydrogen.h.
|
inline |
Definition at line 114 of file hydrogen.h.
References ASSERT, and v8::internal::NULL.
void SetInitialEnvironment | ( | HEnvironment * | env | ) |
Definition at line 199 of file hydrogen.cc.
References ASSERT, HBasicBlock::first(), HBasicBlock::HasEnvironment(), v8::internal::NULL, and HBasicBlock::UpdateEnvironment().
Referenced by HGraph::HGraph().
void SetJoinId | ( | BailoutId | ast_id | ) |
Definition at line 206 of file hydrogen.cc.
References ASSERT, HValue::cast(), HEnvironment::closure(), HBasicBlock::end(), HBasicBlock::last_environment(), and HInstruction::previous().
Referenced by HGraphBuilder::CreateGraph(), HGraphBuilder::CreateJoin(), and HBasicBlock::PostProcessLoopHeader().
|
inline |
Definition at line 111 of file hydrogen.h.
Referenced by HBasicBlock::SetInitialEnvironment().
|
inline |
Definition at line 418 of file hydrogen.h.
References HGraph::zone().
Referenced by HPhi::AddInput(), HBasicBlock::AddInstruction(), HBasicBlock::AddLeaveInlined(), HBasicBlock::AddPhi(), HBasicBlock::AttachLoopInformation(), HUnaryMathOperation::Canonicalize(), HLoadKeyedGeneric::Canonicalize(), HBasicBlock::Goto(), HBasicBlock::RecordDeletedPhi(), HLoopInformation::RegisterBackEdge(), HValue::RegisterUse(), and HValue::RemoveUse().