v8
3.11.10(node0.8.26)
V8 is Google's open source JavaScript engine
|
#include <hydrogen.h>
Data Structures | |
class | BASE_EMBEDDED |
Public Types | |
enum | BreakType { BREAK, CONTINUE } |
enum | SwitchType { UNKNOWN_SWITCH, SMI_SWITCH, STRING_SWITCH } |
Public Member Functions | |
HGraphBuilder (CompilationInfo *info, TypeFeedbackOracle *oracle, Zone *zone) | |
HGraph * | CreateGraph () |
HGraph * | graph () const |
BreakAndContinueScope * | break_scope () const |
void | set_break_scope (BreakAndContinueScope *head) |
HBasicBlock * | current_block () const |
void | set_current_block (HBasicBlock *block) |
HEnvironment * | environment () const |
bool | inline_bailout () |
HInstruction * | AddInstruction (HInstruction *instr) |
void | AddSimulate (int ast_id) |
void | Push (HValue *value) |
HValue * | Pop () |
void | Bailout (const char *reason) |
HBasicBlock * | CreateJoin (HBasicBlock *first, HBasicBlock *second, int join_id) |
TypeFeedbackOracle * | oracle () const |
FunctionState * | function_state () const |
void | VisitDeclarations (ZoneList< Declaration * > *declarations) |
Friends | |
class | FunctionState |
class | AstContext |
Definition at line 785 of file hydrogen.h.
enum BreakType |
Enumerator | |
---|---|
BREAK | |
CONTINUE |
Definition at line 787 of file hydrogen.h.
enum SwitchType |
Enumerator | |
---|---|
UNKNOWN_SWITCH | |
SMI_SWITCH | |
STRING_SWITCH |
Definition at line 788 of file hydrogen.h.
HGraphBuilder | ( | CompilationInfo * | info, |
TypeFeedbackOracle * | oracle, | ||
Zone * | zone | ||
) |
Definition at line 607 of file hydrogen.cc.
HInstruction * AddInstruction | ( | HInstruction * | instr | ) |
Definition at line 3333 of file hydrogen.cc.
References HBasicBlock::AddInstruction(), ASSERT, HGraphBuilder::current_block(), and v8::internal::NULL.
Referenced by HGraphBuilder::CreateGraph(), EffectContext::ReturnInstruction(), ValueContext::ReturnInstruction(), and HGraphBuilder::VisitDeclarations().
void AddSimulate | ( | int | ast_id | ) |
Definition at line 3340 of file hydrogen.cc.
References HBasicBlock::AddSimulate(), ASSERT, HGraphBuilder::current_block(), and v8::internal::NULL.
Referenced by HGraphBuilder::CreateGraph(), EffectContext::ReturnInstruction(), and ValueContext::ReturnInstruction().
void Bailout | ( | const char * | reason | ) |
Definition at line 2736 of file hydrogen.cc.
References v8::internal::PrintF(), and ToCString().
Referenced by HGraphBuilder::CreateGraph(), ValueContext::ReturnControl(), ValueContext::ReturnInstruction(), and ValueContext::ReturnValue().
|
inline |
Definition at line 847 of file hydrogen.h.
HGraph * CreateGraph | ( | ) |
Definition at line 2797 of file hydrogen.cc.
References HGraphBuilder::AddInstruction(), HGraphBuilder::AddSimulate(), ASSERT, HGraph::AssignDominators(), List< T, ZoneAllocationPolicy >::at(), HGraphBuilder::Bailout(), Scope::calls_eval(), HGraph::Canonicalize(), HGraph::CollectPhis(), HGraph::ComputeMinusZeroChecks(), HEnvironment::CopyWithoutHistory(), HGraphBuilder::current_block(), Scope::declarations(), HGraph::DehoistSimpleArrayIndexComputations(), HGraph::EliminateRedundantBoundsChecks(), HGraph::EliminateRedundantPhis(), HGraph::EliminateUnreachablePhis(), HGraph::entry_block(), HGraphBuilder::environment(), HBasicBlock::FinishExit(), Scope::function(), HGraph::GetConstantUndefined(), HBasicBlock::Goto(), HGraphBuilder::graph(), Scope::HasIllegalRedeclaration(), HStatistics::Initialize(), HGraph::InitializeInferredTypes(), HGraph::InsertRepresentationChanges(), HStatistics::Instance(), Scope::is_function_scope(), AstNode::kDeclarationsId, HStackCheck::kFunctionEntry, AstNode::kFunctionEntryId, HEnvironment::LookupContext(), HGraph::MarkDeoptimizeOnUndefined(), HPhi::merged_index(), v8::internal::NULL, HGraph::OrderBlocks(), HGraph::osr_loop_entry(), HGraph::osr_values(), HBasicBlock::phis(), HGraph::PropagateDeoptimizingMark(), HGraphBuilder::set_current_block(), HBasicBlock::SetJoinId(), and HGraphBuilder::VisitDeclarations().
HBasicBlock * CreateJoin | ( | HBasicBlock * | first, |
HBasicBlock * | second, | ||
int | join_id | ||
) |
Definition at line 626 of file hydrogen.cc.
References HGraph::CreateBasicBlock(), HBasicBlock::Goto(), v8::internal::NULL, and HBasicBlock::SetJoinId().
Referenced by EffectContext::ReturnControl(), and ValueContext::ReturnControl().
|
inline |
Definition at line 850 of file hydrogen.h.
Referenced by HGraphBuilder::AddInstruction(), HGraphBuilder::AddSimulate(), HGraphBuilder::CreateGraph(), HGraphBuilder::environment(), EffectContext::ReturnControl(), ValueContext::ReturnControl(), and TestContext::ReturnControl().
|
inline |
Definition at line 852 of file hydrogen.h.
References HGraphBuilder::current_block(), and HBasicBlock::last_environment().
Referenced by AstContext::AstContext(), HGraphBuilder::CreateGraph(), HGraphBuilder::Pop(), HGraphBuilder::Push(), and HGraphBuilder::VisitDeclarations().
|
inline |
Definition at line 874 of file hydrogen.h.
Referenced by HGraphBuilder::oracle().
|
inline |
Definition at line 846 of file hydrogen.h.
Referenced by HGraphBuilder::CreateGraph(), FunctionState::FunctionState(), EffectContext::ReturnControl(), ValueContext::ReturnControl(), and TestContext::ReturnControl().
|
inline |
Definition at line 856 of file hydrogen.h.
|
inline |
Definition at line 872 of file hydrogen.h.
References HGraphBuilder::function_state(), and FunctionState::oracle().
|
inline |
Definition at line 864 of file hydrogen.h.
References HGraphBuilder::environment(), and HEnvironment::Pop().
|
inline |
Definition at line 863 of file hydrogen.h.
References HGraphBuilder::environment(), and HEnvironment::Push().
Referenced by ValueContext::ReturnControl(), ValueContext::ReturnInstruction(), and ValueContext::ReturnValue().
|
inline |
Definition at line 848 of file hydrogen.h.
Referenced by HGraphBuilder::BASE_EMBEDDED::BreakAndContinueScope().
|
inline |
Definition at line 851 of file hydrogen.h.
Referenced by HGraphBuilder::CreateGraph(), EffectContext::ReturnControl(), ValueContext::ReturnControl(), and TestContext::ReturnControl().
void VisitDeclarations | ( | ZoneList< Declaration * > * | declarations | ) |
Definition at line 7976 of file hydrogen.cc.
References HGraphBuilder::AddInstruction(), ASSERT, List< T, P >::at(), BitField< bool, 1, 1 >::encode(), BitField< bool, 0, 1 >::encode(), BitField< LanguageMode, 2, 2 >::encode(), HGraphBuilder::environment(), v8::internal::flags, HEnvironment::LookupContext(), and v8::internal::TENURED.
Referenced by HGraphBuilder::CreateGraph().
|
friend |
Definition at line 1190 of file hydrogen.h.
|
friend |
Definition at line 1189 of file hydrogen.h.