v8
3.14.5(node0.10.28)
V8 is Google's open source JavaScript engine
|
#include <lithium.h>
Public Member Functions | |
void | AddInstruction (LInstruction *instruction, HBasicBlock *block) |
LConstantOperand * | DefineConstantOperand (HConstant *constant) |
HConstant * | LookupConstant (LConstantOperand *operand) const |
Representation | LookupLiteralRepresentation (LConstantOperand *operand) const |
int | ParameterAt (int index) |
int | GetParameterStackSlot (int index) const |
int | spill_slot_count () const |
CompilationInfo * | info () const |
HGraph * | graph () const |
const ZoneList< LInstruction * > * | instructions () const |
void | AddGapMove (int index, LOperand *from, LOperand *to) |
LGap * | GetGapAt (int index) const |
bool | IsGapAt (int index) const |
int | NearestGapPos (int index) const |
void | MarkEmptyBlocks () |
const ZoneList< LPointerMap * > * | pointer_maps () const |
LLabel * | GetLabel (int block_id) const |
int | LookupDestination (int block_id) const |
Label * | GetAssemblyLabel (int block_id) const |
const ZoneList< Handle < JSFunction > > * | inlined_closures () const |
void | AddInlinedClosure (Handle< JSFunction > closure) |
Zone * | zone () const |
Handle< Code > | Codegen () |
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) |
Static Public Member Functions | |
static LChunk * | NewChunk (HGraph *graph) |
Protected Member Functions | |
LChunk (CompilationInfo *info, HGraph *graph) | |
Protected Attributes | |
int | spill_slot_count_ |
|
inlineprotected |
Definition at line 376 of file lithium.cc.
References LParallelMove::AddMove(), LChunk::GetGapAt(), LGap::GetOrCreateParallelMove(), LGap::START, and LChunk::zone().
|
inline |
Definition at line 679 of file lithium.h.
References LChunk::zone().
void AddInstruction | ( | LInstruction * | instruction, |
HBasicBlock * | block | ||
) |
Definition at line 317 of file lithium.cc.
References LInstruction::HasPointerMap(), LInstruction::IsControl(), LInstruction::pointer_map(), LPointerMap::set_lithium_position(), HGraph::zone(), and LChunk::zone().
Definition at line 417 of file lithium.cc.
References v8::internal::code(), Code::ComputeFlags(), v8::internal::flags, v8::internal::generator(), LChunk::info(), CodeGenerator::MakeCodeEpilogue(), CodeGenerator::MakeCodePrologue(), LChunk::MarkEmptyBlocks(), Handle< T >::null(), v8::internal::NULL, CodeGenerator::PrintCode(), and v8::internal::PrintF().
Referenced by OptimizingCompiler::GenerateAndInstallCode().
LConstantOperand * DefineConstantOperand | ( | HConstant * | constant | ) |
Definition at line 336 of file lithium.cc.
References LConstantOperand::Create(), HValue::id(), and LChunk::zone().
Label * GetAssemblyLabel | ( | int | block_id | ) | const |
Definition at line 275 of file lithium.cc.
References ASSERT, LChunk::GetLabel(), LLabel::HasReplacement(), and LLabel::label().
LGap * GetGapAt | ( | int | index | ) | const |
Definition at line 360 of file lithium.cc.
References LGap::cast().
Referenced by LChunk::AddGapMove().
LLabel * GetLabel | ( | int | block_id | ) | const |
Definition at line 260 of file lithium.cc.
References HGraph::blocks(), LGap::cast(), and HBasicBlock::first_instruction_index().
Referenced by LChunk::GetAssemblyLabel(), LChunk::LookupDestination(), and LChunk::MarkEmptyBlocks().
int GetParameterStackSlot | ( | int | index | ) | const |
Definition at line 341 of file lithium.cc.
References ASSERT, LChunk::info(), Scope::num_parameters(), and CompilationInfo::scope().
|
inline |
Definition at line 663 of file lithium.h.
Referenced by LChunk::MarkEmptyBlocks(), and HTracer::TraceLithium().
|
inline |
Definition at line 662 of file lithium.h.
Referenced by LChunk::Codegen(), LChunk::GetParameterStackSlot(), LChunk::NewChunk(), and LChunk::ParameterAt().
|
inline |
|
inline |
Definition at line 664 of file lithium.h.
Referenced by LChunk::MarkEmptyBlocks().
bool IsGapAt | ( | int | index | ) | const |
Definition at line 365 of file lithium.cc.
Referenced by LChunk::NearestGapPos().
HConstant * LookupConstant | ( | LConstantOperand * | operand | ) | const |
Definition at line 382 of file lithium.cc.
References HValue::cast(), LOperand::index(), and HGraph::LookupValue().
int LookupDestination | ( | int | block_id | ) | const |
Definition at line 267 of file lithium.cc.
References LLabel::block_id(), LChunk::GetLabel(), v8::internal::NULL, and LLabel::replacement().
Representation LookupLiteralRepresentation | ( | LConstantOperand * | operand | ) | const |
Definition at line 387 of file lithium.cc.
References LOperand::index(), and HGraph::LookupValue().
void MarkEmptyBlocks | ( | ) |
Definition at line 281 of file lithium.cc.
References LGoto::block_id(), HGraph::blocks(), LGap::cast(), HBasicBlock::first_instruction_index(), LChunk::GetLabel(), LChunk::graph(), LChunk::instructions(), LLabel::is_loop_header(), LInstruction::IsGap(), LGap::IsRedundant(), HBasicBlock::last_instruction_index(), and LLabel::set_replacement().
Referenced by LChunk::Codegen().
int NearestGapPos | ( | int | index | ) | const |
Definition at line 370 of file lithium.cc.
References LChunk::IsGapAt().
Definition at line 393 of file lithium.cc.
References HGraph::GetMaximumValueID(), HGraph::info(), LChunk::info(), LUnallocated::kMaxVirtualRegisters, v8::internal::NULL, and CompilationInfo::set_bailout_reason().
Referenced by OptimizingCompiler::OptimizeGraph().
int ParameterAt | ( | int | index | ) |
Definition at line 353 of file lithium.cc.
References ASSERT, LChunk::info(), and v8::internal::kPointerSize.
|
inline |
|
inline |
Definition at line 661 of file lithium.h.
References LChunk::spill_slot_count_.
|
inline |
Definition at line 683 of file lithium.h.
References CompilationInfo::zone().
Referenced by LChunk::AddGapMove(), LChunk::AddInlinedClosure(), LChunk::AddInstruction(), LChunk::DefineConstantOperand(), and LPlatformChunk::GetNextSpillSlot().
|
protected |
Definition at line 696 of file lithium.h.
Referenced by LPlatformChunk::GetNextSpillIndex(), and LChunk::spill_slot_count().