v8
3.25.30(node0.11.13)
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 |
Isolate * | isolate () 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 () |
void | set_allocated_double_registers (BitVector *allocated_registers) |
BitVector * | allocated_double_registers () |
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_ |
|
protected |
Definition at line 253 of file lithium.cc.
Definition at line 381 of file lithium.cc.
References LChunk::GetGapAt(), LGap::GetOrCreateParallelMove(), LGap::START, and LChunk::zone().
|
inline |
Definition at line 659 of file lithium.h.
References LChunk::zone().
void AddInstruction | ( | LInstruction * | instruction, |
HBasicBlock * | block | ||
) |
Definition at line 320 of file lithium.cc.
References List< T, P >::Add(), LInstruction::HasPointerMap(), LInstruction::hydrogen_value(), LInstruction::IsControl(), LInstruction::pointer_map(), and LChunk::zone().
|
inline |
Definition at line 668 of file lithium.h.
Referenced by LChunk::set_allocated_double_registers().
Definition at line 425 of file lithium.cc.
References Assembler::AbortedCodeGeneration(), v8::internal::code(), LCodeGen::FinishCode(), CompilationInfo::flags(), v8::internal::flags, LCodeGen::GenerateCode(), LChunk::info(), LChunk::isolate(), LOG_CODE_EVENT, CodeGenerator::MakeCodeEpilogue(), CodeGenerator::MakeCodePrologue(), LChunk::MarkEmptyBlocks(), Handle< T >::null(), v8::internal::NULL, Assembler::positions_recorder(), and CodeGenerator::PrintCode().
Referenced by OptimizedCompileJob::GenerateCode().
LConstantOperand * DefineConstantOperand | ( | HConstant * | constant | ) |
Definition at line 340 of file lithium.cc.
References LChunk::zone().
Label * GetAssemblyLabel | ( | int | block_id | ) | const |
Definition at line 278 of file lithium.cc.
References ASSERT, and LChunk::GetLabel().
Referenced by LControlInstruction< 0, 1 >::FalseLabel(), and LControlInstruction< 0, 1 >::TrueLabel().
LGap * GetGapAt | ( | int | index | ) | const |
Definition at line 365 of file lithium.cc.
References LGap::cast().
Referenced by LChunk::AddGapMove().
LLabel * GetLabel | ( | int | block_id | ) | const |
Definition at line 263 of file lithium.cc.
Referenced by LChunk::GetAssemblyLabel(), LChunk::LookupDestination(), and LChunk::MarkEmptyBlocks().
int GetParameterStackSlot | ( | int | index | ) | const |
Definition at line 345 of file lithium.cc.
References ASSERT, LChunk::info(), and CompilationInfo::num_parameters().
|
inline |
Definition at line 642 of file lithium.h.
Referenced by LChunk::MarkEmptyBlocks().
|
inline |
Definition at line 641 of file lithium.h.
Referenced by LChunk::Codegen(), LChunk::GetParameterStackSlot(), LChunk::NewChunk(), LChunk::ParameterAt(), and LChunk::set_allocated_double_registers().
|
inline |
|
inline |
Definition at line 644 of file lithium.h.
Referenced by LChunk::MarkEmptyBlocks().
bool IsGapAt | ( | int | index | ) | const |
Definition at line 370 of file lithium.cc.
Referenced by LChunk::NearestGapPos().
|
inline |
Definition at line 643 of file lithium.h.
Referenced by LChunk::Codegen().
HConstant * LookupConstant | ( | LConstantOperand * | operand | ) | const |
Definition at line 387 of file lithium.cc.
int LookupDestination | ( | int | block_id | ) | const |
Definition at line 270 of file lithium.cc.
References LChunk::GetLabel(), and v8::internal::NULL.
Referenced by LControlInstruction< 0, 1 >::FalseDestination(), and LControlInstruction< 0, 1 >::TrueDestination().
Representation LookupLiteralRepresentation | ( | LConstantOperand * | operand | ) | const |
Definition at line 392 of file lithium.cc.
void MarkEmptyBlocks | ( | ) |
Definition at line 285 of file lithium.cc.
References LGap::cast(), LChunk::GetLabel(), LChunk::graph(), LChunk::instructions(), LInstruction::IsGap(), and LGap::IsRedundant().
Referenced by LChunk::Codegen().
int NearestGapPos | ( | int | index | ) | const |
Definition at line 375 of file lithium.cc.
References LChunk::IsGapAt().
|
static |
Definition at line 398 of file lithium.cc.
References LChunk::info(), LUnallocated::kMaxVirtualRegisters, v8::internal::NULL, LChunk::set_allocated_double_registers(), and CompilationInfo::set_bailout_reason().
Referenced by OptimizedCompileJob::OptimizeGraph().
int ParameterAt | ( | int | index | ) |
Definition at line 358 of file lithium.cc.
References ASSERT, LChunk::info(), and v8::internal::kPointerSize.
|
inline |
void set_allocated_double_registers | ( | BitVector * | allocated_registers | ) |
Definition at line 454 of file lithium.cc.
References LChunk::allocated_double_registers(), LChunk::info(), v8::internal::kDoubleSize, v8::internal::kPointerSize, CompilationInfo::saves_caller_doubles(), and LChunk::spill_slot_count_.
Referenced by LChunk::NewChunk().
|
inline |
Definition at line 640 of file lithium.h.
References LChunk::spill_slot_count_.
|
inline |
Definition at line 663 of file lithium.h.
References CompilationInfo::zone().
Referenced by LChunk::AddGapMove(), LChunk::AddInlinedClosure(), LChunk::AddInstruction(), and LChunk::DefineConstantOperand().
|
protected |
Definition at line 675 of file lithium.h.
Referenced by LChunk::set_allocated_double_registers(), and LChunk::spill_slot_count().