V8 Project
|
#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) |
void | AddDeprecationDependency (Handle< Map > map) |
void | AddStabilityDependency (Handle< Map > map) |
Zone * | zone () const |
Handle< Code > | Codegen () |
void | set_allocated_double_registers (BitVector *allocated_registers) |
BitVector * | allocated_double_registers () |
![]() | |
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_ |
Private Types | |
typedef std::less< Handle< Map > > | MapLess |
typedef zone_allocator< Handle< Map > > | MapAllocator |
typedef std::set< Handle< Map >, MapLess, MapAllocator > | MapSet |
Private Member Functions | |
void | CommitDependencies (Handle< Code > code) const |
Private Attributes | |
CompilationInfo * | info_ |
HGraph *const | graph_ |
BitVector * | allocated_double_registers_ |
ZoneList< LInstruction * > | instructions_ |
ZoneList< LPointerMap * > | pointer_maps_ |
ZoneList< Handle< JSFunction > > | inlined_closures_ |
MapSet | deprecation_dependencies_ |
MapSet | stability_dependencies_ |
|
private |
|
private |
|
private |
|
protected |
Definition at line 267 of file lithium.cc.
Definition at line 653 of file lithium.h.
References DCHECK, deprecation_dependencies_, info_, v8::internal::CompilationInfo::IsStub(), and map.
Definition at line 396 of file lithium.cc.
References GetGapAt(), v8::internal::LGap::GetOrCreateParallelMove(), v8::internal::LGap::START, to(), and zone().
|
inline |
Definition at line 649 of file lithium.h.
References inlined_closures_, and zone().
void v8::internal::LChunk::AddInstruction | ( | LInstruction * | instruction, |
HBasicBlock * | block | ||
) |
Definition at line 335 of file lithium.cc.
References v8::internal::List< T, AllocationPolicy >::Add(), v8::internal::LInstruction::HasPointerMap(), v8::internal::LInstruction::hydrogen_value(), instructions_, v8::internal::LInstruction::IsControl(), v8::internal::LInstruction::pointer_map(), pointer_maps_, and zone().
Definition at line 660 of file lithium.h.
References DCHECK, info_, v8::internal::CompilationInfo::IsStub(), map, and stability_dependencies_.
|
inline |
Definition at line 672 of file lithium.h.
References allocated_double_registers_.
Referenced by set_allocated_double_registers().
Definition at line 461 of file lithium.cc.
References v8::internal::Assembler::AbortedCodeGeneration(), CommitDependencies(), DCHECK, v8::internal::AssemblerBase::enable_serializer(), v8::internal::LCodeGen::FinishCode(), v8::internal::CompilationInfo::flags(), v8::internal::anonymous_namespace{flags.cc}::flags, v8::internal::LCodeGen::GenerateCode(), info(), isolate(), LOG_CODE_EVENT, v8::internal::CodeGenerator::MakeCodeEpilogue(), v8::internal::CodeGenerator::MakeCodePrologue(), MarkEmptyBlocks(), v8::internal::LCodeGen::NeedsEagerFrame(), NULL, v8::internal::Handle< T >::null(), v8::internal::Assembler::positions_recorder(), and v8::internal::CodeGenerator::PrintCode().
Referenced by v8::internal::DoGenerateCode(), and v8::internal::OptimizedCompileJob::GenerateCode().
Definition at line 413 of file lithium.cc.
References v8::internal::Map::AddDependentCode(), v8::internal::CompilationInfo::CommitDependencies(), DCHECK, deprecation_dependencies_, info_, v8::internal::DependentCode::kPrototypeCheckGroup, v8::internal::DependentCode::kTransitionGroup, map, and stability_dependencies_.
Referenced by Codegen().
LConstantOperand * v8::internal::LChunk::DefineConstantOperand | ( | HConstant * | constant | ) |
Definition at line 355 of file lithium.cc.
References zone().
Label * v8::internal::LChunk::GetAssemblyLabel | ( | int | block_id | ) | const |
Definition at line 293 of file lithium.cc.
References DCHECK, and GetLabel().
Referenced by v8::internal::LControlInstruction< I, T >::FalseLabel(), and v8::internal::LControlInstruction< I, T >::TrueLabel().
Definition at line 380 of file lithium.cc.
References v8::internal::LGap::cast(), and instructions_.
Referenced by AddGapMove().
LLabel * v8::internal::LChunk::GetLabel | ( | int | block_id | ) | const |
Definition at line 278 of file lithium.cc.
References graph_, and instructions_.
Referenced by GetAssemblyLabel(), LookupDestination(), and MarkEmptyBlocks().
Definition at line 360 of file lithium.cc.
References DCHECK, info(), and v8::internal::CompilationInfo::num_parameters().
|
inline |
Definition at line 632 of file lithium.h.
References graph_.
Referenced by MarkEmptyBlocks(), and NewChunk().
|
inline |
Definition at line 631 of file lithium.h.
References info_.
Referenced by Codegen(), v8::internal::DoGenerateCode(), GetParameterStackSlot(), NewChunk(), ParameterAt(), and set_allocated_double_registers().
|
inline |
Definition at line 645 of file lithium.h.
References inlined_closures_.
|
inline |
Definition at line 634 of file lithium.h.
References instructions_.
Referenced by MarkEmptyBlocks().
Definition at line 385 of file lithium.cc.
References instructions_.
Referenced by NearestGapPos().
|
inline |
HConstant * v8::internal::LChunk::LookupConstant | ( | LConstantOperand * | operand | ) | const |
Definition at line 402 of file lithium.cc.
References graph_.
Definition at line 285 of file lithium.cc.
References GetLabel(), and NULL.
Referenced by v8::internal::LControlInstruction< I, T >::FalseDestination(), and v8::internal::LControlInstruction< I, T >::TrueDestination().
Representation v8::internal::LChunk::LookupLiteralRepresentation | ( | LConstantOperand * | operand | ) | const |
Definition at line 407 of file lithium.cc.
References graph_.
void v8::internal::LChunk::MarkEmptyBlocks | ( | ) |
Definition at line 300 of file lithium.cc.
References v8::internal::LGap::cast(), GetLabel(), graph(), instructions(), v8::internal::LInstruction::IsGap(), and v8::internal::LGap::IsRedundant().
Referenced by Codegen().
Definition at line 390 of file lithium.cc.
References IsGapAt().
|
static |
Definition at line 434 of file lithium.cc.
References v8::internal::CompilationInfo::AbortOptimization(), graph(), info(), v8::internal::LUnallocated::kMaxVirtualRegisters, NULL, and set_allocated_double_registers().
Referenced by v8::internal::OptimizedCompileJob::OptimizeGraph(), and v8::internal::OptimizeGraph().
Definition at line 373 of file lithium.cc.
References DCHECK, info(), and v8::internal::kPointerSize.
|
inline |
void v8::internal::LChunk::set_allocated_double_registers | ( | BitVector * | allocated_registers | ) |
Definition at line 497 of file lithium.cc.
References allocated_double_registers(), allocated_double_registers_, info(), v8::internal::kDoubleSize, v8::internal::kPointerSize, and spill_slot_count_.
Referenced by NewChunk().
|
inline |
|
inline |
Definition at line 667 of file lithium.h.
References info_, and v8::internal::CompilationInfo::zone().
Referenced by AddGapMove(), AddInlinedClosure(), AddInstruction(), and DefineConstantOperand().
|
private |
Definition at line 690 of file lithium.h.
Referenced by allocated_double_registers(), and set_allocated_double_registers().
|
private |
Definition at line 694 of file lithium.h.
Referenced by AddDeprecationDependency(), and CommitDependencies().
|
private |
Definition at line 689 of file lithium.h.
Referenced by GetLabel(), graph(), isolate(), LookupConstant(), and LookupLiteralRepresentation().
|
private |
Definition at line 688 of file lithium.h.
Referenced by AddDeprecationDependency(), AddStabilityDependency(), CommitDependencies(), info(), and zone().
|
private |
Definition at line 693 of file lithium.h.
Referenced by AddInlinedClosure(), and inlined_closures().
|
private |
Definition at line 691 of file lithium.h.
Referenced by AddInstruction(), GetGapAt(), GetLabel(), instructions(), and IsGapAt().
|
private |
Definition at line 692 of file lithium.h.
Referenced by AddInstruction(), and pointer_maps().
|
protected |
Definition at line 679 of file lithium.h.
Referenced by set_allocated_double_registers(), and spill_slot_count().
|
private |
Definition at line 695 of file lithium.h.
Referenced by AddStabilityDependency(), and CommitDependencies().