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

#include <implementation-visitor.h>

Collaboration diagram for v8::internal::torque::ImplementationVisitor:

Classes

struct  BindingsManagersScope
 
class  BreakContinueActivator
 
class  MacroInliningScope
 
class  StackScope
 

Public Member Functions

void GenerateBuiltinDefinitionsAndInterfaceDescriptors (const std::string &output_directory)
 
void GenerateVisitorLists (const std::string &output_directory)
 
void GenerateBitFields (const std::string &output_directory)
 
void GeneratePrintDefinitions (const std::string &output_directory)
 
void GenerateClassDefinitions (const std::string &output_directory)
 
void GenerateBodyDescriptors (const std::string &output_directory)
 
void GenerateInstanceTypes (const std::string &output_directory)
 
void GenerateClassVerifiers (const std::string &output_directory)
 
void GenerateEnumVerifiers (const std::string &output_directory)
 
void GenerateClassDebugReaders (const std::string &output_directory)
 
void GenerateExportedMacrosAssembler (const std::string &output_directory)
 
void GenerateCSATypes (const std::string &output_directory)
 
VisitResult Visit (Expression *expr)
 
const TypeVisit (Statement *stmt)
 
template<typename T >
void CheckInitializersWellformed (const std::string &aggregate_name, const std::vector< T > &aggregate_fields, const std::vector< NameAndExpression > &initializers, bool ignore_first_field=false)
 
InitializerResults VisitInitializerResults (const ClassType *class_type, const std::vector< NameAndExpression > &expressions)
 
LocationReference GenerateFieldReference (VisitResult object, const Field &field, const ClassType *class_type, bool treat_optional_as_indexed=false)
 
LocationReference GenerateFieldReferenceForInit (VisitResult object, const Field &field, const LayoutForInitialization &layout)
 
VisitResult GenerateArrayLength (Expression *array_length, Namespace *nspace, const std::map< std::string, LocalValue > &bindings)
 
VisitResult GenerateArrayLength (VisitResult object, const Field &field)
 
VisitResult GenerateArrayLength (const ClassType *class_type, const InitializerResults &initializer_results, const Field &field)
 
LayoutForInitialization GenerateLayoutForInitialization (const ClassType *class_type, const InitializerResults &initializer_results)
 
void InitializeClass (const ClassType *class_type, VisitResult allocate_result, const InitializerResults &initializer_results, const LayoutForInitialization &layout)
 
VisitResult Visit (StructExpression *decl)
 
LocationReference GetLocationReference (Expression *location)
 
LocationReference LookupLocalValue (const std::string &name)
 
LocationReference GetLocationReference (IdentifierExpression *expr)
 
LocationReference GetLocationReference (DereferenceExpression *expr)
 
LocationReference GetLocationReference (FieldAccessExpression *expr)
 
LocationReference GenerateFieldAccess (LocationReference reference, const std::string &fieldname, bool ignore_stuct_field_constness=false, std::optional< SourcePosition > pos={})
 
LocationReference GetLocationReference (ElementAccessExpression *expr)
 
LocationReference GenerateReferenceToItemInHeapSlice (LocationReference slice, VisitResult index)
 
VisitResult GenerateFetchFromLocation (const LocationReference &reference)
 
VisitResult GetBuiltinCode (Builtin *builtin)
 
VisitResult Visit (LocationExpression *expr)
 
VisitResult Visit (FieldAccessExpression *expr)
 
void VisitAllDeclarables ()
 
void Visit (Declarable *delarable, std::optional< SourceId > file={})
 
void Visit (TypeAlias *decl)
 
VisitResult InlineMacro (Macro *macro, std::optional< LocationReference > this_reference, const std::vector< VisitResult > &arguments, const std::vector< Block * > label_blocks)
 
void VisitMacroCommon (Macro *macro)
 
void Visit (ExternMacro *macro)
 
void Visit (TorqueMacro *macro)
 
void Visit (Method *macro)
 
void Visit (Builtin *builtin)
 
void Visit (NamespaceConstant *decl)
 
VisitResult Visit (CallExpression *expr, bool is_tail=false)
 
VisitResult Visit (CallMethodExpression *expr)
 
VisitResult Visit (IntrinsicCallExpression *intrinsic)
 
const TypeVisit (TailCallStatement *stmt)
 
VisitResult Visit (ConditionalExpression *expr)
 
VisitResult Visit (LogicalOrExpression *expr)
 
VisitResult Visit (LogicalAndExpression *expr)
 
VisitResult Visit (IncrementDecrementExpression *expr)
 
VisitResult Visit (AssignmentExpression *expr)
 
VisitResult Visit (StringLiteralExpression *expr)
 
VisitResult Visit (FloatingPointLiteralExpression *expr)
 
VisitResult Visit (IntegerLiteralExpression *expr)
 
VisitResult Visit (AssumeTypeImpossibleExpression *expr)
 
VisitResult Visit (TryLabelExpression *expr)
 
VisitResult Visit (StatementExpression *expr)
 
VisitResult Visit (NewExpression *expr)
 
VisitResult Visit (SpreadExpression *expr)
 
const TypeVisit (ReturnStatement *stmt)
 
const TypeVisit (GotoStatement *stmt)
 
const TypeVisit (IfStatement *stmt)
 
const TypeVisit (WhileStatement *stmt)
 
const TypeVisit (BreakStatement *stmt)
 
const TypeVisit (ContinueStatement *stmt)
 
const TypeVisit (ForLoopStatement *stmt)
 
const TypeVisit (VarDeclarationStatement *stmt)
 
const TypeVisit (VarDeclarationStatement *stmt, BlockBindings< LocalValue > *block_bindings)
 
const TypeVisit (BlockStatement *block)
 
const TypeVisit (ExpressionStatement *stmt)
 
const TypeVisit (DebugStatement *stmt)
 
const TypeVisit (AssertStatement *stmt)
 
void BeginGeneratedFiles ()
 
void EndGeneratedFiles ()
 
void BeginDebugMacrosFile ()
 
void EndDebugMacrosFile ()
 
void GenerateImplementation (const std::string &dir)
 
 DECLARE_CONTEXTUAL_VARIABLE (ValueBindingsManager, BindingsManager< LocalValue >)
 
 DECLARE_CONTEXTUAL_VARIABLE (LabelBindingsManager, BindingsManager< LocalLabel >)
 
 DECLARE_CONTEXTUAL_VARIABLE (CurrentCallable, Callable *)
 
 DECLARE_CONTEXTUAL_VARIABLE (CurrentFileStreams, GlobalContext::PerFileStreams *)
 
 DECLARE_CONTEXTUAL_VARIABLE (CurrentReturnValue, std::optional< VisitResult >)
 
void SetDryRun (bool is_dry_run)
 

Private Member Functions

std::optional< Block * > GetCatchBlock ()
 
void GenerateCatchBlock (std::optional< Block * > catch_block)
 
std::optional< Binding< LocalValue > * > TryLookupLocalValue (const std::string &name)
 
std::optional< Binding< LocalLabel > * > TryLookupLabel (const std::string &name)
 
Binding< LocalLabel > * LookupLabel (const std::string &name)
 
BlockLookupSimpleLabel (const std::string &name)
 
template<class Container >
CallableLookupCallable (const QualifiedName &name, const Container &declaration_container, const TypeVector &types, const std::vector< Binding< LocalLabel > * > &labels, const TypeVector &specialization_types, bool silence_errors=false)
 
bool TestLookupCallable (const QualifiedName &name, const TypeVector &parameter_types)
 
template<class Container >
CallableLookupCallable (const QualifiedName &name, const Container &declaration_container, const Arguments &arguments, const TypeVector &specialization_types)
 
MethodLookupMethod (const std::string &name, const AggregateType *receiver_type, const Arguments &arguments, const TypeVector &specialization_types)
 
TypeArgumentInference InferSpecializationTypes (GenericCallable *generic, const TypeVector &explicit_specialization_types, const TypeVector &explicit_arguments)
 
const TypeGetCommonType (const Type *left, const Type *right)
 
VisitResult GenerateCopy (const VisitResult &to_copy)
 
void GenerateAssignToLocation (const LocationReference &reference, const VisitResult &assignment_value)
 
void AddCallParameter (Callable *callable, VisitResult parameter, const Type *parameter_type, std::vector< VisitResult > *converted_arguments, StackRange *argument_range, std::vector< std::string > *constexpr_arguments, bool inline_macro)
 
VisitResult GenerateCall (Callable *callable, std::optional< LocationReference > this_parameter, Arguments parameters, const TypeVector &specialization_types={}, bool tail_call=false)
 
VisitResult GenerateCall (const QualifiedName &callable_name, Arguments parameters, const TypeVector &specialization_types={}, bool tail_call=false)
 
VisitResult GenerateCall (std::string callable_name, Arguments parameters, const TypeVector &specialization_types={}, bool tail_call=false)
 
VisitResult GeneratePointerCall (Expression *callee, const Arguments &parameters, bool tail_call)
 
void GenerateBranch (const VisitResult &condition, Block *true_block, Block *false_block)
 
VisitResult GenerateBoolConstant (bool constant)
 
void GenerateExpressionBranch (Expression *expression, Block *true_block, Block *false_block)
 
cpp::Function GenerateMacroFunctionDeclaration (Macro *macro)
 
cpp::Function GenerateFunction (cpp::Class *owner, const std::string &name, const Signature &signature, const NameVector &parameter_names, bool pass_code_assembler_state=true, std::vector< std::string > *generated_parameter_names=nullptr)
 
VisitResult GenerateImplicitConvert (const Type *destination_type, VisitResult source)
 
StackRange GenerateLabelGoto (LocalLabel *label, std::optional< StackRange > arguments={})
 
VisitResult GenerateSetBitField (const Type *bitfield_struct_type, const BitField &bitfield, VisitResult bitfield_struct, VisitResult value, bool starts_as_zero=false)
 
std::vector< Binding< LocalLabel > * > LabelsFromIdentifiers (const std::vector< Identifier * > &names)
 
StackRange LowerParameter (const Type *type, const std::string &parameter_name, Stack< std::string > *lowered_parameters)
 
void LowerLabelParameter (const Type *type, const std::string &parameter_name, std::vector< std::string > *lowered_parameters)
 
std::string ExternalLabelName (const std::string &label_name)
 
std::string ExternalLabelParameterName (const std::string &label_name, size_t i)
 
std::string ExternalParameterName (const std::string &name)
 
std::ostream & csa_ccfile ()
 
std::ostream & csa_headerfile ()
 
CfgAssemblerassembler ()
 
void SetReturnValue (VisitResult return_value)
 
VisitResult GetAndClearReturnValue ()
 
void WriteFile (const std::string &file, const std::string &content)
 
const IdentifierTryGetSourceForBitfieldExpression (const Expression *expr) const
 
void PropagateBitfieldMark (const Expression *original, const Expression *derived)
 

Private Attributes

std::optional< CfgAssemblerassembler_
 
NullOStream null_stream_
 
bool is_dry_run_
 
std::unordered_map< const Expression *, const Identifier * > bitfield_expressions_
 
std::unordered_set< const Macro * > inlining_macros_
 
std::stringstream debug_macros_cc_
 
std::stringstream debug_macros_h_
 
OutputType output_type_ = OutputType::kCSA
 

Detailed Description

Definition at line 449 of file implementation-visitor.h.

Member Function Documentation

◆ AddCallParameter()

void v8::internal::torque::ImplementationVisitor::AddCallParameter ( Callable * callable,
VisitResult parameter,
const Type * parameter_type,
std::vector< VisitResult > * converted_arguments,
StackRange * argument_range,
std::vector< std::string > * constexpr_arguments,
bool inline_macro )
private

Definition at line 2734 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ assembler()

CfgAssembler & v8::internal::torque::ImplementationVisitor::assembler ( )
inlineprivate

Definition at line 828 of file implementation-visitor.h.

Here is the caller graph for this function:

◆ BeginDebugMacrosFile()

void v8::internal::torque::ImplementationVisitor::BeginDebugMacrosFile ( )

Definition at line 174 of file implementation-visitor.cc.

◆ BeginGeneratedFiles()

void v8::internal::torque::ImplementationVisitor::BeginGeneratedFiles ( )

Definition at line 76 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ CheckInitializersWellformed()

template<typename T >
void v8::internal::torque::ImplementationVisitor::CheckInitializersWellformed ( const std::string & aggregate_name,
const std::vector< T > & aggregate_fields,
const std::vector< NameAndExpression > & initializers,
bool ignore_first_field = false )
inline

Definition at line 469 of file implementation-visitor.h.

Here is the call graph for this function:

◆ csa_ccfile()

std::ostream & v8::internal::torque::ImplementationVisitor::csa_ccfile ( )
inlineprivate

Definition at line 797 of file implementation-visitor.h.

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

◆ csa_headerfile()

std::ostream & v8::internal::torque::ImplementationVisitor::csa_headerfile ( )
inlineprivate

Definition at line 812 of file implementation-visitor.h.

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

◆ DECLARE_CONTEXTUAL_VARIABLE() [1/5]

v8::internal::torque::ImplementationVisitor::DECLARE_CONTEXTUAL_VARIABLE ( CurrentCallable ,
Callable *  )

◆ DECLARE_CONTEXTUAL_VARIABLE() [2/5]

v8::internal::torque::ImplementationVisitor::DECLARE_CONTEXTUAL_VARIABLE ( CurrentFileStreams ,
GlobalContext::PerFileStreams *  )

◆ DECLARE_CONTEXTUAL_VARIABLE() [3/5]

v8::internal::torque::ImplementationVisitor::DECLARE_CONTEXTUAL_VARIABLE ( CurrentReturnValue ,
std::optional< VisitResult >  )

◆ DECLARE_CONTEXTUAL_VARIABLE() [4/5]

v8::internal::torque::ImplementationVisitor::DECLARE_CONTEXTUAL_VARIABLE ( LabelBindingsManager ,
BindingsManager< LocalLabel >  )

◆ DECLARE_CONTEXTUAL_VARIABLE() [5/5]

v8::internal::torque::ImplementationVisitor::DECLARE_CONTEXTUAL_VARIABLE ( ValueBindingsManager ,
BindingsManager< LocalValue >  )

◆ EndDebugMacrosFile()

void v8::internal::torque::ImplementationVisitor::EndDebugMacrosFile ( )

Definition at line 205 of file implementation-visitor.cc.

◆ EndGeneratedFiles()

void v8::internal::torque::ImplementationVisitor::EndGeneratedFiles ( )

Definition at line 151 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ ExternalLabelName()

std::string v8::internal::torque::ImplementationVisitor::ExternalLabelName ( const std::string & label_name)
private

Definition at line 3470 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ ExternalLabelParameterName()

std::string v8::internal::torque::ImplementationVisitor::ExternalLabelParameterName ( const std::string & label_name,
size_t i )
private

Definition at line 3475 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ ExternalParameterName()

std::string v8::internal::torque::ImplementationVisitor::ExternalParameterName ( const std::string & name)
private

Definition at line 3480 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GenerateArrayLength() [1/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateArrayLength ( const ClassType * class_type,
const InitializerResults & initializer_results,
const Field & field )

Definition at line 1608 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateArrayLength() [2/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateArrayLength ( Expression * array_length,
Namespace * nspace,
const std::map< std::string, LocalValue > & bindings )

Definition at line 1555 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateArrayLength() [3/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateArrayLength ( VisitResult object,
const Field & field )

Definition at line 1575 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateAssignToLocation()

void v8::internal::torque::ImplementationVisitor::GenerateAssignToLocation ( const LocationReference & reference,
const VisitResult & assignment_value )
private

Definition at line 2600 of file implementation-visitor.cc.

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

◆ GenerateBitFields()

void v8::internal::torque::ImplementationVisitor::GenerateBitFields ( const std::string & output_directory)

Definition at line 3965 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateBodyDescriptors()

void v8::internal::torque::ImplementationVisitor::GenerateBodyDescriptors ( const std::string & output_directory)

Definition at line 5141 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateBoolConstant()

VisitResult v8::internal::torque::ImplementationVisitor::GenerateBoolConstant ( bool constant)
private

Definition at line 3364 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GenerateBranch()

void v8::internal::torque::ImplementationVisitor::GenerateBranch ( const VisitResult & condition,
Block * true_block,
Block * false_block )
private

Definition at line 3356 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GenerateBuiltinDefinitionsAndInterfaceDescriptors()

void v8::internal::torque::ImplementationVisitor::GenerateBuiltinDefinitionsAndInterfaceDescriptors ( const std::string & output_directory)

Definition at line 3624 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateCall() [1/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateCall ( Callable * callable,
std::optional< LocationReference > this_parameter,
Arguments parameters,
const TypeVector & specialization_types = {},
bool tail_call = false )
private

Definition at line 2778 of file implementation-visitor.cc.

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

◆ GenerateCall() [2/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateCall ( const QualifiedName & callable_name,
Arguments parameters,
const TypeVector & specialization_types = {},
bool tail_call = false )
private

Definition at line 3246 of file implementation-visitor.cc.

◆ GenerateCall() [3/3]

VisitResult v8::internal::torque::ImplementationVisitor::GenerateCall ( std::string callable_name,
Arguments parameters,
const TypeVector & specialization_types = {},
bool tail_call = false )
inlineprivate

Definition at line 747 of file implementation-visitor.h.

◆ GenerateCatchBlock()

void v8::internal::torque::ImplementationVisitor::GenerateCatchBlock ( std::optional< Block * > catch_block)
private

Definition at line 3510 of file implementation-visitor.cc.

◆ GenerateClassDebugReaders()

void v8::internal::torque::ImplementationVisitor::GenerateClassDebugReaders ( const std::string & output_directory)

Definition at line 523 of file class-debug-reader-generator.cc.

Here is the call graph for this function:

◆ GenerateClassDefinitions()

void v8::internal::torque::ImplementationVisitor::GenerateClassDefinitions ( const std::string & output_directory)

Definition at line 4829 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateClassVerifiers()

void v8::internal::torque::ImplementationVisitor::GenerateClassVerifiers ( const std::string & output_directory)

Definition at line 5364 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateCopy()

VisitResult v8::internal::torque::ImplementationVisitor::GenerateCopy ( const VisitResult & to_copy)
private

Definition at line 2207 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateCSATypes()

void v8::internal::torque::ImplementationVisitor::GenerateCSATypes ( const std::string & output_directory)

Definition at line 5564 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateEnumVerifiers()

void v8::internal::torque::ImplementationVisitor::GenerateEnumVerifiers ( const std::string & output_directory)

Definition at line 5441 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateExportedMacrosAssembler()

void v8::internal::torque::ImplementationVisitor::GenerateExportedMacrosAssembler ( const std::string & output_directory)

Definition at line 5483 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateExpressionBranch()

void v8::internal::torque::ImplementationVisitor::GenerateExpressionBranch ( Expression * expression,
Block * true_block,
Block * false_block )
private

Definition at line 3370 of file implementation-visitor.cc.

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

◆ GenerateFetchFromLocation()

VisitResult v8::internal::torque::ImplementationVisitor::GenerateFetchFromLocation ( const LocationReference & reference)

Definition at line 2548 of file implementation-visitor.cc.

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

◆ GenerateFieldAccess()

LocationReference v8::internal::torque::ImplementationVisitor::GenerateFieldAccess ( LocationReference reference,
const std::string & fieldname,
bool ignore_stuct_field_constness = false,
std::optional< SourcePosition > pos = {} )

Definition at line 2310 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateFieldReference()

LocationReference v8::internal::torque::ImplementationVisitor::GenerateFieldReference ( VisitResult object,
const Field & field,
const ClassType * class_type,
bool treat_optional_as_indexed = false )

Definition at line 1474 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateFieldReferenceForInit()

LocationReference v8::internal::torque::ImplementationVisitor::GenerateFieldReferenceForInit ( VisitResult object,
const Field & field,
const LayoutForInitialization & layout )

Definition at line 1504 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateFunction()

cpp::Function v8::internal::torque::ImplementationVisitor::GenerateFunction ( cpp::Class * owner,
const std::string & name,
const Signature & signature,
const NameVector & parameter_names,
bool pass_code_assembler_state = true,
std::vector< std::string > * generated_parameter_names = nullptr )
private

Definition at line 1884 of file implementation-visitor.cc.

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

◆ GenerateImplementation()

void v8::internal::torque::ImplementationVisitor::GenerateImplementation ( const std::string & dir)

Definition at line 1833 of file implementation-visitor.cc.

◆ GenerateImplicitConvert()

VisitResult v8::internal::torque::ImplementationVisitor::GenerateImplicitConvert ( const Type * destination_type,
VisitResult source )
private

Definition at line 3380 of file implementation-visitor.cc.

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

◆ GenerateInstanceTypes()

void v8::internal::torque::ImplementationVisitor::GenerateInstanceTypes ( const std::string & output_directory)

Definition at line 374 of file instance-type-generator.cc.

Here is the call graph for this function:

◆ GenerateLabelGoto()

StackRange v8::internal::torque::ImplementationVisitor::GenerateLabelGoto ( LocalLabel * label,
std::optional< StackRange > arguments = {} )
private

Definition at line 3412 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GenerateLayoutForInitialization()

LayoutForInitialization v8::internal::torque::ImplementationVisitor::GenerateLayoutForInitialization ( const ClassType * class_type,
const InitializerResults & initializer_results )

Definition at line 1631 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateMacroFunctionDeclaration()

cpp::Function v8::internal::torque::ImplementationVisitor::GenerateMacroFunctionDeclaration ( Macro * macro)
private

Definition at line 1873 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GeneratePointerCall()

VisitResult v8::internal::torque::ImplementationVisitor::GeneratePointerCall ( Expression * callee,
const Arguments & parameters,
bool tail_call )
private

Definition at line 2681 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GeneratePrintDefinitions()

void v8::internal::torque::ImplementationVisitor::GeneratePrintDefinitions ( const std::string & output_directory)

Definition at line 5070 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GenerateReferenceToItemInHeapSlice()

LocationReference v8::internal::torque::ImplementationVisitor::GenerateReferenceToItemInHeapSlice ( LocationReference slice,
VisitResult index )

Definition at line 2439 of file implementation-visitor.cc.

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

◆ GenerateSetBitField()

VisitResult v8::internal::torque::ImplementationVisitor::GenerateSetBitField ( const Type * bitfield_struct_type,
const BitField & bitfield,
VisitResult bitfield_struct,
VisitResult value,
bool starts_as_zero = false )
private

Definition at line 2275 of file implementation-visitor.cc.

◆ GenerateVisitorLists()

void v8::internal::torque::ImplementationVisitor::GenerateVisitorLists ( const std::string & output_directory)

Definition at line 3926 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GetAndClearReturnValue()

VisitResult v8::internal::torque::ImplementationVisitor::GetAndClearReturnValue ( )
inlineprivate

Definition at line 837 of file implementation-visitor.h.

Here is the caller graph for this function:

◆ GetBuiltinCode()

VisitResult v8::internal::torque::ImplementationVisitor::GetBuiltinCode ( Builtin * builtin)

Definition at line 1026 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GetCatchBlock()

std::optional< Block * > v8::internal::torque::ImplementationVisitor::GetCatchBlock ( )
private

Definition at line 3502 of file implementation-visitor.cc.

◆ GetCommonType()

const Type * v8::internal::torque::ImplementationVisitor::GetCommonType ( const Type * left,
const Type * right )
private

Definition at line 2193 of file implementation-visitor.cc.

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

◆ GetLocationReference() [1/5]

LocationReference v8::internal::torque::ImplementationVisitor::GetLocationReference ( DereferenceExpression * expr)

Definition at line 2537 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GetLocationReference() [2/5]

LocationReference v8::internal::torque::ImplementationVisitor::GetLocationReference ( ElementAccessExpression * expr)

Definition at line 2427 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ GetLocationReference() [3/5]

LocationReference v8::internal::torque::ImplementationVisitor::GetLocationReference ( Expression * location)

Definition at line 2285 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ GetLocationReference() [4/5]

LocationReference v8::internal::torque::ImplementationVisitor::GetLocationReference ( FieldAccessExpression * expr)

Definition at line 2304 of file implementation-visitor.cc.

◆ GetLocationReference() [5/5]

LocationReference v8::internal::torque::ImplementationVisitor::GetLocationReference ( IdentifierExpression * expr)

Definition at line 2453 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ InferSpecializationTypes()

TypeArgumentInference v8::internal::torque::ImplementationVisitor::InferSpecializationTypes ( GenericCallable * generic,
const TypeVector & explicit_specialization_types,
const TypeVector & explicit_arguments )
private

Definition at line 2056 of file implementation-visitor.cc.

◆ InitializeClass()

void v8::internal::torque::ImplementationVisitor::InitializeClass ( const ClassType * class_type,
VisitResult allocate_result,
const InitializerResults & initializer_results,
const LayoutForInitialization & layout )

Definition at line 1528 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ InlineMacro()

VisitResult v8::internal::torque::ImplementationVisitor::InlineMacro ( Macro * macro,
std::optional< LocationReference > this_reference,
const std::vector< VisitResult > & arguments,
const std::vector< Block * > label_blocks )

Definition at line 283 of file implementation-visitor.cc.

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

◆ LabelsFromIdentifiers()

std::vector< Binding< LocalLabel > * > v8::internal::torque::ImplementationVisitor::LabelsFromIdentifiers ( const std::vector< Identifier * > & names)
private

Definition at line 3417 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ LookupCallable() [1/2]

template<class Container >
Callable * v8::internal::torque::ImplementationVisitor::LookupCallable ( const QualifiedName & name,
const Container & declaration_container,
const Arguments & arguments,
const TypeVector & specialization_types )
private

Definition at line 2175 of file implementation-visitor.cc.

◆ LookupCallable() [2/2]

template<class Container >
Callable * v8::internal::torque::ImplementationVisitor::LookupCallable ( const QualifiedName & name,
const Container & declaration_container,
const TypeVector & types,
const std::vector< Binding< LocalLabel > * > & labels,
const TypeVector & specialization_types,
bool silence_errors = false )
private

Definition at line 2076 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ LookupLabel()

Binding< LocalLabel > * v8::internal::torque::ImplementationVisitor::LookupLabel ( const std::string & name)
private

Definition at line 2030 of file implementation-visitor.cc.

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

◆ LookupLocalValue()

LocationReference v8::internal::torque::ImplementationVisitor::LookupLocalValue ( const std::string & name)

◆ LookupMethod()

Method * v8::internal::torque::ImplementationVisitor::LookupMethod ( const std::string & name,
const AggregateType * receiver_type,
const Arguments & arguments,
const TypeVector & specialization_types )
private

Definition at line 2183 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ LookupSimpleLabel()

Block * v8::internal::torque::ImplementationVisitor::LookupSimpleLabel ( const std::string & name)
private

Definition at line 2037 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ LowerLabelParameter()

void v8::internal::torque::ImplementationVisitor::LowerLabelParameter ( const Type * type,
const std::string & parameter_name,
std::vector< std::string > * lowered_parameters )
private

Definition at line 3455 of file implementation-visitor.cc.

Here is the caller graph for this function:

◆ LowerParameter()

StackRange v8::internal::torque::ImplementationVisitor::LowerParameter ( const Type * type,
const std::string & parameter_name,
Stack< std::string > * lowered_parameters )
private

Definition at line 3437 of file implementation-visitor.cc.

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

◆ PropagateBitfieldMark()

void v8::internal::torque::ImplementationVisitor::PropagateBitfieldMark ( const Expression * original,
const Expression * derived )
inlineprivate

Definition at line 855 of file implementation-visitor.h.

Here is the call graph for this function:

◆ SetDryRun()

void v8::internal::torque::ImplementationVisitor::SetDryRun ( bool is_dry_run)
inline

Definition at line 612 of file implementation-visitor.h.

◆ SetReturnValue()

void v8::internal::torque::ImplementationVisitor::SetReturnValue ( VisitResult return_value)
inlineprivate

Definition at line 830 of file implementation-visitor.h.

Here is the caller graph for this function:

◆ TestLookupCallable()

bool v8::internal::torque::ImplementationVisitor::TestLookupCallable ( const QualifiedName & name,
const TypeVector & parameter_types )
private

Definition at line 2050 of file implementation-visitor.cc.

◆ TryGetSourceForBitfieldExpression()

const Identifier * v8::internal::torque::ImplementationVisitor::TryGetSourceForBitfieldExpression ( const Expression * expr) const
inlineprivate

Definition at line 848 of file implementation-visitor.h.

Here is the caller graph for this function:

◆ TryLookupLabel()

std::optional< Binding< LocalLabel > * > v8::internal::torque::ImplementationVisitor::TryLookupLabel ( const std::string & name)
private

Definition at line 2025 of file implementation-visitor.cc.

◆ TryLookupLocalValue()

std::optional< Binding< LocalValue > * > v8::internal::torque::ImplementationVisitor::TryLookupLocalValue ( const std::string & name)
private

Definition at line 2020 of file implementation-visitor.cc.

◆ Visit() [1/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( AssertStatement * stmt)

Definition at line 1259 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [2/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( AssignmentExpression * expr)

Definition at line 972 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [3/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( AssumeTypeImpossibleExpression * expr)

Definition at line 1007 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [4/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( BlockStatement * block)

Definition at line 1198 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [5/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( BreakStatement * stmt)

Definition at line 1755 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [6/42]

void v8::internal::torque::ImplementationVisitor::Visit ( Builtin * builtin)

Definition at line 587 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [7/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( CallExpression * expr,
bool is_tail = false )

Definition at line 3256 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [8/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( CallMethodExpression * expr)

Definition at line 3310 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [9/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( ConditionalExpression * expr)

Definition at line 828 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [10/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( ContinueStatement * stmt)

Definition at line 1765 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [11/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( DebugStatement * stmt)

Definition at line 1215 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [12/42]

void v8::internal::torque::ImplementationVisitor::Visit ( Declarable * delarable,
std::optional< SourceId > file = {} )

Definition at line 3577 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [13/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( Expression * expr)

Definition at line 44 of file implementation-visitor.cc.

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

◆ Visit() [14/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( ExpressionStatement * stmt)

Definition at line 1316 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [15/42]

void v8::internal::torque::ImplementationVisitor::Visit ( ExternMacro * macro)
inline

Definition at line 546 of file implementation-visitor.h.

◆ Visit() [16/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( FieldAccessExpression * expr)

Definition at line 1045 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [17/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( FloatingPointLiteralExpression * expr)

Definition at line 990 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [18/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( ForLoopStatement * stmt)

Definition at line 1775 of file implementation-visitor.cc.

◆ Visit() [19/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( GotoStatement * stmt)

Definition at line 1056 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [20/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( IfStatement * stmt)

Definition at line 1086 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [21/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( IncrementDecrementExpression * expr)

Definition at line 959 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [22/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( IntegerLiteralExpression * expr)

Definition at line 998 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [23/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( IntrinsicCallExpression * intrinsic)

Definition at line 3345 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [24/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( LocationExpression * expr)

Definition at line 1040 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [25/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( LogicalAndExpression * expr)

Definition at line 909 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [26/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( LogicalOrExpression * expr)

Definition at line 868 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [27/42]

void v8::internal::torque::ImplementationVisitor::Visit ( Method * macro)

Definition at line 557 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [28/42]

void v8::internal::torque::ImplementationVisitor::Visit ( NamespaceConstant * decl)

Definition at line 222 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [29/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( NewExpression * expr)

Definition at line 1678 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [30/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( ReturnStatement * stmt)

Definition at line 1321 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [31/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( SpreadExpression * expr)

Definition at line 1827 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [32/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( Statement * stmt)

Definition at line 57 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [33/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( StatementExpression * expr)

Definition at line 1444 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [34/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( StringLiteralExpression * expr)

Definition at line 1020 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [35/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( StructExpression * decl)

Definition at line 2215 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [36/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( TailCallStatement * stmt)

Definition at line 824 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [37/42]

void v8::internal::torque::ImplementationVisitor::Visit ( TorqueMacro * macro)

Definition at line 553 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [38/42]

VisitResult v8::internal::torque::ImplementationVisitor::Visit ( TryLabelExpression * expr)

Definition at line 1368 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [39/42]

void v8::internal::torque::ImplementationVisitor::Visit ( TypeAlias * decl)

Definition at line 255 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [40/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( VarDeclarationStatement * stmt)

Definition at line 769 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [41/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( VarDeclarationStatement * stmt,
BlockBindings< LocalValue > * block_bindings )

Definition at line 774 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ Visit() [42/42]

const Type * v8::internal::torque::ImplementationVisitor::Visit ( WhileStatement * stmt)

Definition at line 1175 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ VisitAllDeclarables()

void v8::internal::torque::ImplementationVisitor::VisitAllDeclarables ( )

Definition at line 3533 of file implementation-visitor.cc.

◆ VisitInitializerResults()

InitializerResults v8::internal::torque::ImplementationVisitor::VisitInitializerResults ( const ClassType * class_type,
const std::vector< NameAndExpression > & expressions )

Definition at line 1448 of file implementation-visitor.cc.

Here is the call graph for this function:

◆ VisitMacroCommon()

void v8::internal::torque::ImplementationVisitor::VisitMacroCommon ( Macro * macro)

Definition at line 403 of file implementation-visitor.cc.

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

◆ WriteFile()

void v8::internal::torque::ImplementationVisitor::WriteFile ( const std::string & file,
const std::string & content )
inlineprivate

Definition at line 843 of file implementation-visitor.h.

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

Member Data Documentation

◆ assembler_

std::optional<CfgAssembler> v8::internal::torque::ImplementationVisitor::assembler_
private

Definition at line 865 of file implementation-visitor.h.

◆ bitfield_expressions_

std::unordered_map<const Expression*, const Identifier*> v8::internal::torque::ImplementationVisitor::bitfield_expressions_
private

Definition at line 875 of file implementation-visitor.h.

◆ debug_macros_cc_

std::stringstream v8::internal::torque::ImplementationVisitor::debug_macros_cc_
private

Definition at line 883 of file implementation-visitor.h.

◆ debug_macros_h_

std::stringstream v8::internal::torque::ImplementationVisitor::debug_macros_h_
private

Definition at line 884 of file implementation-visitor.h.

◆ inlining_macros_

std::unordered_set<const Macro*> v8::internal::torque::ImplementationVisitor::inlining_macros_
private

Definition at line 879 of file implementation-visitor.h.

◆ is_dry_run_

bool v8::internal::torque::ImplementationVisitor::is_dry_run_
private

Definition at line 867 of file implementation-visitor.h.

◆ null_stream_

NullOStream v8::internal::torque::ImplementationVisitor::null_stream_
private

Definition at line 866 of file implementation-visitor.h.

◆ output_type_

OutputType v8::internal::torque::ImplementationVisitor::output_type_ = OutputType::kCSA
private

Definition at line 886 of file implementation-visitor.h.


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