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

#include <maglev-ir.h>

Inheritance diagram for v8::internal::maglev::CallBuiltin:
Collaboration diagram for v8::internal::maglev::CallBuiltin:

Public Types

enum  FeedbackSlotType { kTaggedIndex , kSmi }
 

Public Member Functions

 CallBuiltin (uint64_t bitfield, Builtin builtin)
 
 CallBuiltin (uint64_t bitfield, Builtin builtin, ValueNode *context)
 
bool has_feedback () const
 
compiler::FeedbackSource feedback () const
 
FeedbackSlotType slot_type () const
 
void set_feedback (compiler::FeedbackSource const &feedback, FeedbackSlotType slot_type)
 
Builtin builtin () const
 
Inputcontext_input ()
 
int InputCountWithoutContext () const
 
int InputsInRegisterCount () const
 
auto stack_args ()
 
void set_arg (int i, ValueNode *node)
 
int ReturnCount () const
 
void VerifyInputs (MaglevGraphLabeller *graph_labeller) const
 
int MaxCallStackArgs () const
 
void SetValueLocationConstraints ()
 
void GenerateCode (MaglevAssembler *, const ProcessingState &)
 
void PrintParams (std::ostream &, MaglevGraphLabeller *) const
 
- Public Member Functions inherited from v8::internal::maglev::NodeTMixin< Base, Derived >
constexpr Opcode opcode () const
 
constexpr const OpPropertiesproperties () const
 

Static Public Attributes

static constexpr OpProperties kProperties = OpProperties::JSCall()
 

Private Types

using Base = ValueNodeT<CallBuiltin>
 

Private Member Functions

template<typename... Args>
void PushArguments (MaglevAssembler *masm, Args... extra_args)
 
void PassFeedbackSlotInRegister (MaglevAssembler *)
 
void PushFeedbackAndArguments (MaglevAssembler *)
 

Private Attributes

Builtin builtin_
 
std::optional< compiler::FeedbackSourcefeedback_
 
FeedbackSlotType slot_type_ = kTaggedIndex
 

Additional Inherited Members

- Static Public Member Functions inherited from v8::internal::maglev::NodeTMixin< Base, Derived >
template<typename... Args>
static Derived * New (Zone *zone, std::initializer_list< ValueNode * > inputs, Args &&... args)
 
template<typename... Args>
static Derived * New (Zone *zone, size_t input_count, Args &&... args)
 
- Protected Member Functions inherited from v8::internal::maglev::NodeTMixin< Base, Derived >
template<typename... Args>
 NodeTMixin (uint64_t bitfield, Args &&... args)
 

Detailed Description

Definition at line 9676 of file maglev-ir.h.

Member Typedef Documentation

◆ Base

Definition at line 9677 of file maglev-ir.h.

Member Enumeration Documentation

◆ FeedbackSlotType

Enumerator
kTaggedIndex 
kSmi 

Definition at line 9680 of file maglev-ir.h.

Constructor & Destructor Documentation

◆ CallBuiltin() [1/2]

v8::internal::maglev::CallBuiltin::CallBuiltin ( uint64_t bitfield,
Builtin builtin )
inline

Definition at line 9684 of file maglev-ir.h.

Here is the call graph for this function:

◆ CallBuiltin() [2/2]

v8::internal::maglev::CallBuiltin::CallBuiltin ( uint64_t bitfield,
Builtin builtin,
ValueNode * context )
inline

Definition at line 9692 of file maglev-ir.h.

Here is the call graph for this function:

Member Function Documentation

◆ builtin()

Builtin v8::internal::maglev::CallBuiltin::builtin ( ) const
inline

Definition at line 9717 of file maglev-ir.h.

Here is the caller graph for this function:

◆ context_input()

Input & v8::internal::maglev::CallBuiltin::context_input ( )
inline

Definition at line 9718 of file maglev-ir.h.

Here is the call graph for this function:

◆ feedback()

compiler::FeedbackSource v8::internal::maglev::CallBuiltin::feedback ( ) const
inline

Definition at line 9703 of file maglev-ir.h.

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

◆ GenerateCode()

void v8::internal::maglev::CallBuiltin::GenerateCode ( MaglevAssembler * ,
const ProcessingState &  )

◆ has_feedback()

bool v8::internal::maglev::CallBuiltin::has_feedback ( ) const
inline

Definition at line 9702 of file maglev-ir.h.

Here is the caller graph for this function:

◆ InputCountWithoutContext()

int v8::internal::maglev::CallBuiltin::InputCountWithoutContext ( ) const
inline

Definition at line 9724 of file maglev-ir.h.

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

◆ InputsInRegisterCount()

int v8::internal::maglev::CallBuiltin::InputsInRegisterCount ( ) const
inline

Definition at line 9731 of file maglev-ir.h.

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

◆ MaxCallStackArgs()

int v8::internal::maglev::CallBuiltin::MaxCallStackArgs ( ) const

◆ PassFeedbackSlotInRegister()

void v8::internal::maglev::CallBuiltin::PassFeedbackSlotInRegister ( MaglevAssembler * )
private

◆ PrintParams()

void v8::internal::maglev::CallBuiltin::PrintParams ( std::ostream & os,
MaglevGraphLabeller * graph_labeller ) const

Definition at line 7966 of file maglev-ir.cc.

Here is the call graph for this function:

◆ PushArguments()

template<typename... Args>
void v8::internal::maglev::CallBuiltin::PushArguments ( MaglevAssembler * masm,
Args... extra_args )
private

◆ PushFeedbackAndArguments()

void v8::internal::maglev::CallBuiltin::PushFeedbackAndArguments ( MaglevAssembler * )
private

◆ ReturnCount()

int v8::internal::maglev::CallBuiltin::ReturnCount ( ) const
inline

Definition at line 9760 of file maglev-ir.h.

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

◆ set_arg()

void v8::internal::maglev::CallBuiltin::set_arg ( int i,
ValueNode * node )
inline

Definition at line 9758 of file maglev-ir.h.

◆ set_feedback()

void v8::internal::maglev::CallBuiltin::set_feedback ( compiler::FeedbackSource const & feedback,
FeedbackSlotType slot_type )
inline

Definition at line 9711 of file maglev-ir.h.

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

◆ SetValueLocationConstraints()

void v8::internal::maglev::CallBuiltin::SetValueLocationConstraints ( )

◆ slot_type()

FeedbackSlotType v8::internal::maglev::CallBuiltin::slot_type ( ) const
inline

Definition at line 9707 of file maglev-ir.h.

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

◆ stack_args()

auto v8::internal::maglev::CallBuiltin::stack_args ( )
inline

Definition at line 9752 of file maglev-ir.h.

Here is the call graph for this function:

◆ VerifyInputs()

void v8::internal::maglev::CallBuiltin::VerifyInputs ( MaglevGraphLabeller * graph_labeller) const

Definition at line 728 of file maglev-ir.cc.

Here is the call graph for this function:

Member Data Documentation

◆ builtin_

Builtin v8::internal::maglev::CallBuiltin::builtin_
private

Definition at line 9779 of file maglev-ir.h.

◆ feedback_

std::optional<compiler::FeedbackSource> v8::internal::maglev::CallBuiltin::feedback_
private

Definition at line 9780 of file maglev-ir.h.

◆ kProperties

OpProperties v8::internal::maglev::CallBuiltin::kProperties = OpProperties::JSCall()
staticconstexpr

Definition at line 9700 of file maglev-ir.h.

◆ slot_type_

FeedbackSlotType v8::internal::maglev::CallBuiltin::slot_type_ = kTaggedIndex
private

Definition at line 9781 of file maglev-ir.h.


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