v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::internal::compiler::RegisterAllocatorVerifier Class Referencefinal

#include <register-allocator-verifier.h>

Inheritance diagram for v8::internal::compiler::RegisterAllocatorVerifier:
Collaboration diagram for v8::internal::compiler::RegisterAllocatorVerifier:

Classes

class  DelayedAssessments
 
struct  InstructionConstraint
 
struct  OperandConstraint
 

Public Member Functions

 RegisterAllocatorVerifier (Zone *zone, const RegisterConfiguration *config, const InstructionSequence *sequence, const Frame *frame)
 
 RegisterAllocatorVerifier (const RegisterAllocatorVerifier &)=delete
 
RegisterAllocatorVerifieroperator= (const RegisterAllocatorVerifier &)=delete
 
void VerifyAssignment (const char *caller_info)
 
void VerifyGapMoves ()
 
- Public Member Functions inherited from v8::internal::ZoneObject
void * operator new (size_t, Zone *)=delete
 
void * operator new (size_t size, void *ptr)
 
void operator delete (void *, size_t)
 
void operator delete (void *pointer, Zone *zone)=delete
 

Private Types

enum  ConstraintType {
  kConstant , kImmediate , kRegister , kFixedRegister ,
  kFPRegister , kFixedFPRegister , kSlot , kFixedSlot ,
  kRegisterOrSlot , kRegisterOrSlotFP , kRegisterOrSlotOrConstant , kSameAsInput ,
  kRegisterAndSlot
}
 
using Constraints = ZoneVector<InstructionConstraint>
 

Private Member Functions

Zonezone () const
 
const RegisterConfigurationconfig ()
 
const InstructionSequencesequence () const
 
Constraintsconstraints ()
 
int spill_slot_delta () const
 
void BuildConstraint (const InstructionOperand *op, OperandConstraint *constraint)
 
void CheckConstraint (const InstructionOperand *op, const OperandConstraint *constraint)
 
BlockAssessmentsCreateForBlock (const InstructionBlock *block)
 
void ValidatePendingAssessment (RpoNumber block_id, InstructionOperand op, const BlockAssessments *current_assessments, PendingAssessment *const assessment, int virtual_register)
 
void ValidateUse (RpoNumber block_id, BlockAssessments *current_assessments, InstructionOperand op, int virtual_register)
 

Static Private Member Functions

static void VerifyInput (const OperandConstraint &constraint)
 
static void VerifyTemp (const OperandConstraint &constraint)
 
static void VerifyOutput (const OperandConstraint &constraint)
 

Private Attributes

Zone *const zone_
 
const RegisterConfigurationconfig_
 
const InstructionSequence *const sequence_
 
Constraints constraints_
 
ZoneMap< RpoNumber, BlockAssessments * > assessments_
 
ZoneMap< RpoNumber, DelayedAssessments * > outstanding_assessments_
 
int spill_slot_delta_
 
const char * caller_info_ = nullptr
 

Detailed Description

Definition at line 205 of file register-allocator-verifier.h.

Member Typedef Documentation

◆ Constraints

Member Enumeration Documentation

◆ ConstraintType

Enumerator
kConstant 
kImmediate 
kRegister 
kFixedRegister 
kFPRegister 
kFixedFPRegister 
kSlot 
kFixedSlot 
kRegisterOrSlot 
kRegisterOrSlotFP 
kRegisterOrSlotOrConstant 
kSameAsInput 
kRegisterAndSlot 

Definition at line 218 of file register-allocator-verifier.h.

Constructor & Destructor Documentation

◆ RegisterAllocatorVerifier() [1/2]

v8::internal::compiler::RegisterAllocatorVerifier::RegisterAllocatorVerifier ( Zone * zone,
const RegisterConfiguration * config,
const InstructionSequence * sequence,
const Frame * frame )

Definition at line 63 of file register-allocator-verifier.cc.

Here is the call graph for this function:

◆ RegisterAllocatorVerifier() [2/2]

v8::internal::compiler::RegisterAllocatorVerifier::RegisterAllocatorVerifier ( const RegisterAllocatorVerifier & )
delete

Member Function Documentation

◆ BuildConstraint()

void v8::internal::compiler::RegisterAllocatorVerifier::BuildConstraint ( const InstructionOperand * op,
OperandConstraint * constraint )
private

Definition at line 159 of file register-allocator-verifier.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckConstraint()

void v8::internal::compiler::RegisterAllocatorVerifier::CheckConstraint ( const InstructionOperand * op,
const OperandConstraint * constraint )
private

Definition at line 227 of file register-allocator-verifier.cc.

Here is the call graph for this function:

◆ config()

const RegisterConfiguration * v8::internal::compiler::RegisterAllocatorVerifier::config ( )
inlineprivate

Definition at line 273 of file register-allocator-verifier.h.

◆ constraints()

Constraints * v8::internal::compiler::RegisterAllocatorVerifier::constraints ( )
inlineprivate

Definition at line 275 of file register-allocator-verifier.h.

Here is the caller graph for this function:

◆ CreateForBlock()

BlockAssessments * v8::internal::compiler::RegisterAllocatorVerifier::CreateForBlock ( const InstructionBlock * block)
private

Definition at line 388 of file register-allocator-verifier.cc.

Here is the call graph for this function:

◆ operator=()

RegisterAllocatorVerifier & v8::internal::compiler::RegisterAllocatorVerifier::operator= ( const RegisterAllocatorVerifier & )
delete

◆ sequence()

const InstructionSequence * v8::internal::compiler::RegisterAllocatorVerifier::sequence ( ) const
inlineprivate

Definition at line 274 of file register-allocator-verifier.h.

◆ spill_slot_delta()

int v8::internal::compiler::RegisterAllocatorVerifier::spill_slot_delta ( ) const
inlineprivate

Definition at line 276 of file register-allocator-verifier.h.

◆ ValidatePendingAssessment()

void v8::internal::compiler::RegisterAllocatorVerifier::ValidatePendingAssessment ( RpoNumber block_id,
InstructionOperand op,
const BlockAssessments * current_assessments,
PendingAssessment *const assessment,
int virtual_register )
private

Definition at line 438 of file register-allocator-verifier.cc.

Here is the call graph for this function:

◆ ValidateUse()

void v8::internal::compiler::RegisterAllocatorVerifier::ValidateUse ( RpoNumber block_id,
BlockAssessments * current_assessments,
InstructionOperand op,
int virtual_register )
private

Definition at line 525 of file register-allocator-verifier.cc.

Here is the call graph for this function:

◆ VerifyAssignment()

void v8::internal::compiler::RegisterAllocatorVerifier::VerifyAssignment ( const char * caller_info)

Definition at line 132 of file register-allocator-verifier.cc.

Here is the caller graph for this function:

◆ VerifyGapMoves()

void v8::internal::compiler::RegisterAllocatorVerifier::VerifyGapMoves ( )

Definition at line 550 of file register-allocator-verifier.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyInput()

void v8::internal::compiler::RegisterAllocatorVerifier::VerifyInput ( const OperandConstraint & constraint)
staticprivate

Definition at line 109 of file register-allocator-verifier.cc.

◆ VerifyOutput()

void v8::internal::compiler::RegisterAllocatorVerifier::VerifyOutput ( const OperandConstraint & constraint)
staticprivate

Definition at line 125 of file register-allocator-verifier.cc.

Here is the caller graph for this function:

◆ VerifyTemp()

void v8::internal::compiler::RegisterAllocatorVerifier::VerifyTemp ( const OperandConstraint & constraint)
staticprivate

Definition at line 118 of file register-allocator-verifier.cc.

Here is the caller graph for this function:

◆ zone()

Zone * v8::internal::compiler::RegisterAllocatorVerifier::zone ( ) const
inlineprivate

Definition at line 272 of file register-allocator-verifier.h.

Member Data Documentation

◆ assessments_

ZoneMap<RpoNumber, BlockAssessments*> v8::internal::compiler::RegisterAllocatorVerifier::assessments_
private

Definition at line 301 of file register-allocator-verifier.h.

◆ caller_info_

const char* v8::internal::compiler::RegisterAllocatorVerifier::caller_info_ = nullptr
private

Definition at line 305 of file register-allocator-verifier.h.

◆ config_

const RegisterConfiguration* v8::internal::compiler::RegisterAllocatorVerifier::config_
private

Definition at line 298 of file register-allocator-verifier.h.

◆ constraints_

Constraints v8::internal::compiler::RegisterAllocatorVerifier::constraints_
private

Definition at line 300 of file register-allocator-verifier.h.

◆ outstanding_assessments_

ZoneMap<RpoNumber, DelayedAssessments*> v8::internal::compiler::RegisterAllocatorVerifier::outstanding_assessments_
private

Definition at line 302 of file register-allocator-verifier.h.

◆ sequence_

const InstructionSequence* const v8::internal::compiler::RegisterAllocatorVerifier::sequence_
private

Definition at line 299 of file register-allocator-verifier.h.

◆ spill_slot_delta_

int v8::internal::compiler::RegisterAllocatorVerifier::spill_slot_delta_
private

Definition at line 303 of file register-allocator-verifier.h.

◆ zone_

Zone* const v8::internal::compiler::RegisterAllocatorVerifier::zone_
private

Definition at line 297 of file register-allocator-verifier.h.


The documentation for this class was generated from the following files: