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

#include <csa-generator.h>

Inheritance diagram for v8::internal::torque::CSAGenerator:
Collaboration diagram for v8::internal::torque::CSAGenerator:

Public Member Functions

 CSAGenerator (const ControlFlowGraph &cfg, std::ostream &out, std::optional< Builtin::Kind > linkage=std::nullopt)
 
std::optional< Stack< std::string > > EmitGraph (Stack< std::string > parameters)
 
- Public Member Functions inherited from v8::internal::torque::TorqueCodeGenerator
 TorqueCodeGenerator (const ControlFlowGraph &cfg, std::ostream &out)
 

Static Public Member Functions

static void EmitCSAValue (VisitResult result, const Stack< std::string > &values, std::ostream &out)
 

Static Public Attributes

static constexpr const char * ARGUMENTS_VARIABLE_STRING = "arguments"
 

Private Member Functions

void EmitSourcePosition (SourcePosition pos, bool always_emit=false) override
 
std::string PreCallableExceptionPreparation (std::optional< Block * > catch_block)
 
void PostCallableExceptionPreparation (const std::string &catch_name, const Type *return_type, std::optional< Block * > catch_block, Stack< std::string > *stack, const std::optional< DefinitionLocation > &exception_object_definition)
 
std::vector< std::string > ProcessArgumentsCommon (const TypeVector &parameter_types, std::vector< std::string > constexpr_arguments, Stack< std::string > *stack)
 
Stack< std::string > EmitBlock (const Block *block)
 

Private Attributes

std::optional< Builtin::Kindlinkage_
 

Additional Inherited Members

- Protected Member Functions inherited from v8::internal::torque::TorqueCodeGenerator
std::string DefinitionToVariable (const DefinitionLocation &location)
 
void SetDefinitionVariable (const DefinitionLocation &definition, const std::string &str)
 
std::ostream & out ()
 
std::ostream & decls ()
 
std::string FreshNodeName ()
 
std::string FreshCatchName ()
 
std::string FreshLabelName ()
 
std::string BlockName (const Block *block)
 
void EmitInstruction (const Instruction &instruction, Stack< std::string > *stack)
 
template<typename T >
void EmitIRAnnotation (const T &instruction, Stack< std::string > *stack)
 
- Static Protected Member Functions inherited from v8::internal::torque::TorqueCodeGenerator
static bool IsEmptyInstruction (const Instruction &instruction)
 
- Protected Attributes inherited from v8::internal::torque::TorqueCodeGenerator
const ControlFlowGraphcfg_
 
std::ostream * out_
 
std::ostream * out_decls_
 
size_t fresh_id_ = 0
 
SourcePosition previous_position_
 
std::map< DefinitionLocation, std::string > location_map_
 

Detailed Description

Definition at line 14 of file csa-generator.h.

Constructor & Destructor Documentation

◆ CSAGenerator()

v8::internal::torque::CSAGenerator::CSAGenerator ( const ControlFlowGraph & cfg,
std::ostream & out,
std::optional< Builtin::Kind > linkage = std::nullopt )
inline

Definition at line 16 of file csa-generator.h.

Member Function Documentation

◆ EmitBlock()

Stack< std::string > v8::internal::torque::CSAGenerator::EmitBlock ( const Block * block)
private

Definition at line 69 of file csa-generator.cc.

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

◆ EmitCSAValue()

void v8::internal::torque::CSAGenerator::EmitCSAValue ( VisitResult result,
const Stack< std::string > & values,
std::ostream & out )
static

Definition at line 1061 of file csa-generator.cc.

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

◆ EmitGraph()

std::optional< Stack< std::string > > v8::internal::torque::CSAGenerator::EmitGraph ( Stack< std::string > parameters)

Definition at line 17 of file csa-generator.cc.

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

◆ EmitSourcePosition()

void v8::internal::torque::CSAGenerator::EmitSourcePosition ( SourcePosition pos,
bool always_emit = false )
overrideprivatevirtual

Implements v8::internal::torque::TorqueCodeGenerator.

Definition at line 91 of file csa-generator.cc.

Here is the call graph for this function:

◆ PostCallableExceptionPreparation()

void v8::internal::torque::CSAGenerator::PostCallableExceptionPreparation ( const std::string & catch_name,
const Type * return_type,
std::optional< Block * > catch_block,
Stack< std::string > * stack,
const std::optional< DefinitionLocation > & exception_object_definition )
private

Definition at line 672 of file csa-generator.cc.

Here is the call graph for this function:

◆ PreCallableExceptionPreparation()

std::string v8::internal::torque::CSAGenerator::PreCallableExceptionPreparation ( std::optional< Block * > catch_block)
private

Definition at line 659 of file csa-generator.cc.

Here is the call graph for this function:

◆ ProcessArgumentsCommon()

std::vector< std::string > v8::internal::torque::CSAGenerator::ProcessArgumentsCommon ( const TypeVector & parameter_types,
std::vector< std::string > constexpr_arguments,
Stack< std::string > * stack )
private

Definition at line 154 of file csa-generator.cc.

Here is the call graph for this function:

Member Data Documentation

◆ ARGUMENTS_VARIABLE_STRING

const char* v8::internal::torque::CSAGenerator::ARGUMENTS_VARIABLE_STRING = "arguments"
staticconstexpr

Definition at line 21 of file csa-generator.h.

◆ linkage_

std::optional<Builtin::Kind> v8::internal::torque::CSAGenerator::linkage_
private

Definition at line 27 of file csa-generator.h.


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