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

#include <maglev-ir.h>

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

Public Member Functions

Inputvalue_input ()
 
 BranchIfTypeOf (uint64_t bitfield, interpreter::TestTypeOfFlags::LiteralFlag literal, BasicBlockRef *if_true_refs, BasicBlockRef *if_false_refs)
 
void SetValueLocationConstraints ()
 
void GenerateCode (MaglevAssembler *, const ProcessingState &)
 
void PrintParams (std::ostream &, MaglevGraphLabeller *) const
 
- Public Member Functions inherited from v8::internal::maglev::FixedInputNodeTMixin< InputCount, BranchControlNode, BranchIfTypeOf >
constexpr bool has_inputs () const
 
constexpr uint16_t input_count () const
 
constexpr auto end ()
 
void VerifyInputs (MaglevGraphLabeller *graph_labeller) const
 
- Public Member Functions inherited from v8::internal::maglev::NodeTMixin< BranchControlNode, BranchIfTypeOf >
constexpr Opcode opcode () const
 
constexpr const OpPropertiesproperties () const
 
- Public Member Functions inherited from v8::internal::maglev::BranchControlNode
 BranchControlNode (uint64_t bitfield, BasicBlockRef *if_true_refs, BasicBlockRef *if_false_refs)
 
BasicBlockif_true () const
 
BasicBlockif_false () const
 
void set_if_true (BasicBlock *block)
 
void set_if_false (BasicBlock *block)
 
- Public Member Functions inherited from v8::internal::maglev::ConditionalControlNode
 ConditionalControlNode (uint64_t bitfield)
 
- Public Member Functions inherited from v8::internal::maglev::ControlNode
ControlNodenext_post_dominating_hole () const
 
void set_next_post_dominating_hole (ControlNode *node)
 
- Public Member Functions inherited from v8::internal::maglev::NodeBase
constexpr Opcode opcode () const
 
constexpr OpProperties properties () const
 
void set_properties (OpProperties properties)
 
void set_input (int index, ValueNode *node)
 
template<class T >
constexpr bool Is () const
 
template<class T >
constexpr TCast ()
 
template<class T >
constexpr const TCast () const
 
template<class T >
constexpr TTryCast ()
 
template<class T >
constexpr const TTryCast () const
 
constexpr bool has_inputs () const
 
constexpr int input_count () const
 
constexpr Inputinput (int index)
 
constexpr const Inputinput (int index) const
 
std::optional< int32_t > TryGetInt32ConstantInput (int index)
 
constexpr auto begin ()
 
constexpr auto end ()
 
constexpr bool has_id () const
 
constexpr NodeIdT id () const
 
void set_id (NodeIdT id)
 
template<typename RegisterT >
uint8_t num_temporaries_needed () const
 
template<typename RegisterT >
RegListBase< RegisterT > & temporaries ()
 
RegListgeneral_temporaries ()
 
DoubleRegListdouble_temporaries ()
 
template<typename RegisterT >
void assign_temporaries (RegListBase< RegisterT > list)
 
template<typename Function >
void ForAllInputsInRegallocAssignmentOrder (Function &&f)
 
void Print (std::ostream &os, MaglevGraphLabeller *, bool skip_targets=false) const
 
void Print () const
 
EagerDeoptInfoeager_deopt_info ()
 
LazyDeoptInfolazy_deopt_info ()
 
const RegisterSnapshotregister_snapshot () const
 
ExceptionHandlerInfoexception_handler_info ()
 
void set_register_snapshot (RegisterSnapshot snapshot)
 
void change_input (int index, ValueNode *node)
 
void change_representation (ValueRepresentation new_repr)
 
void set_opcode (Opcode new_opcode)
 
void CopyEagerDeoptInfoOf (NodeBase *other, Zone *zone)
 
void SetEagerDeoptInfo (Zone *zone, DeoptFrame deopt_frame, compiler::FeedbackSource feedback_to_update=compiler::FeedbackSource())
 
template<typename NodeT >
void OverwriteWith ()
 
void OverwriteWith (Opcode new_opcode, std::optional< OpProperties > maybe_new_properties=std::nullopt)
 
void OverwriteWithIdentityTo (ValueNode *node)
 
auto options () const
 
void ClearUnstableNodeAspects (KnownNodeAspects &)
 
void ClearElementsProperties (KnownNodeAspects &)
 
void set_owner (BasicBlock *block)
 
BasicBlockowner () const
 
void InitTemporaries ()
 
template<>
constexpr bool Is () const
 
template<>
constexpr bool Is () const
 
template<>
constexpr bool Is () const
 
template<>
constexpr bool Is () const
 
template<>
constexpr bool Is () const
 
template<>
constexpr bool Is () const
 
- 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
 

Static Public Attributes

static constexpr int kValueIndex = 0
 
static constexpr Base::InputTypes kInputTypes {ValueRepresentation::kTagged}
 
- Static Public Attributes inherited from v8::internal::maglev::FixedInputNodeTMixin< InputCount, BranchControlNode, BranchIfTypeOf >
static constexpr size_t kInputCount
 
- Static Public Attributes inherited from v8::internal::maglev::NodeBase
template<class T >
static constexpr Opcode opcode_of = detail::opcode_of_helper<T>::value
 
static constexpr OpProperties kProperties
 

Private Types

using Base = BranchControlNodeT<1, BranchIfTypeOf>
 

Private Attributes

interpreter::TestTypeOfFlags::LiteralFlag literal_
 

Additional Inherited Members

- Public Types inherited from v8::internal::maglev::NodeBase
enum class  InputAllocationPolicy { kFixedRegister , kArbitraryRegister , kAny }
 
- Static Public Member Functions inherited from v8::internal::maglev::NodeTMixin< BranchControlNode, BranchIfTypeOf >
static BranchIfTypeOfNew (Zone *zone, std::initializer_list< ValueNode * > inputs, Args &&... args)
 
static BranchIfTypeOfNew (Zone *zone, size_t input_count, Args &&... args)
 
- Static Public Member Functions inherited from v8::internal::maglev::NodeBase
template<class Derived , typename... Args>
static Derived * New (Zone *zone, std::initializer_list< ValueNode * > inputs, Args &&... args)
 
template<class Derived , typename... Args>
static Derived * New (Zone *zone, size_t input_count, Args &&... args)
 
- Protected Types inherited from v8::internal::maglev::FixedInputNodeTMixin< InputCount, BranchControlNode, BranchIfTypeOf >
using InputTypes
 
- Protected Types inherited from v8::internal::maglev::NodeBase
using ReservedField = InputCountField::Next<bool, 1>
 
template<class T , int size>
using NextBitField = ReservedField::Next<T, size>
 
- Protected Member Functions inherited from v8::internal::maglev::BranchControlNodeT< 1, BranchIfTypeOf >
 BranchControlNodeT (uint64_t bitfield, BasicBlockRef *if_true_refs, BasicBlockRef *if_false_refs)
 
- Protected Member Functions inherited from v8::internal::maglev::FixedInputNodeTMixin< InputCount, BranchControlNode, BranchIfTypeOf >
 FixedInputNodeTMixin (uint64_t bitfield, Args &&... args)
 
- Protected Member Functions inherited from v8::internal::maglev::NodeTMixin< BranchControlNode, BranchIfTypeOf >
 NodeTMixin (uint64_t bitfield, Args &&... args)
 
- Protected Member Functions inherited from v8::internal::maglev::ControlNode
 NodeBase (uint64_t bitfield)
 
- Protected Member Functions inherited from v8::internal::maglev::NodeBase
 NodeBase (uint64_t bitfield)
 
constexpr uint64_t bitfield () const
 
void set_bitfield (uint64_t new_bitfield)
 
constexpr Inputinput_base ()
 
constexpr const Inputinput_base () const
 
Inputlast_input ()
 
const Inputlast_input () const
 
Address last_input_address () const
 
void initialize_input_null (int index)
 
void reduce_input_count (int num=1)
 
void set_temporaries_needed (uint8_t value)
 
void set_double_temporaries_needed (uint8_t value)
 
void RequireSpecificTemporary (Register reg)
 
void RequireSpecificDoubleTemporary (DoubleRegister reg)
 
- Protected Attributes inherited from v8::internal::maglev::FixedInputNodeTMixin< InputCount, BranchControlNode, BranchIfTypeOf >
detail::YouNeedToDefineAnInputTypesArrayInYourDerivedClass kInputTypes
 
- Static Protected Attributes inherited from v8::internal::maglev::NodeBase
static constexpr int kMaxInputs = InputCountField::kMax
 

Detailed Description

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

Member Typedef Documentation

◆ Base

Constructor & Destructor Documentation

◆ BranchIfTypeOf()

v8::internal::maglev::BranchIfTypeOf::BranchIfTypeOf ( uint64_t bitfield,
interpreter::TestTypeOfFlags::LiteralFlag literal,
BasicBlockRef * if_true_refs,
BasicBlockRef * if_false_refs )
inlineexplicit

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

Member Function Documentation

◆ GenerateCode()

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

◆ PrintParams()

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

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

Here is the call graph for this function:

◆ SetValueLocationConstraints()

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

◆ value_input()

Input & v8::internal::maglev::BranchIfTypeOf::value_input ( )
inline

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

Here is the call graph for this function:

Member Data Documentation

◆ kInputTypes

Base::InputTypes v8::internal::maglev::BranchIfTypeOf::kInputTypes {ValueRepresentation::kTagged}
staticconstexpr

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

◆ kValueIndex

int v8::internal::maglev::BranchIfTypeOf::kValueIndex = 0
staticconstexpr

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

◆ literal_

interpreter::TestTypeOfFlags::LiteralFlag v8::internal::maglev::BranchIfTypeOf::literal_
private

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


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