GNU Octave  4.4.1
A high-level interpreted language, primarily intended for numerical computations, mostly compatible with Matlab
octave::jit_type Class Reference

#include "jit-typeinfo.h"

Collaboration diagram for octave::jit_type:

Public Types

typedef llvm::Value *(* convert_fn) (llvm::IRBuilderD &, llvm::Value *)
 

Public Member Functions

 jit_type (const std::string &aname, jit_type *aparent, llvm::Type *allvm_type, bool askip_paren, int aid)
 
size_t depth (void) const
 
void mark_pointer_arg (jit_convention::type cc)
 
void mark_sret (jit_convention::type cc)
 
const std::stringname (void) const
 
convert_fn pack (jit_convention::type cc)
 
llvm::Type * packed_type (jit_convention::type cc)
 
jit_typeparent (void) const
 
bool pointer_arg (jit_convention::type cc) const
 
void set_pack (jit_convention::type cc, convert_fn fn)
 
void set_packed_type (jit_convention::type cc, llvm::Type *ty)
 
void set_unpack (jit_convention::type cc, convert_fn fn)
 
bool skip_paren (void) const
 
bool sret (jit_convention::type cc) const
 
llvm::Type * to_llvm (void) const
 
llvm::Type * to_llvm_arg (void) const
 
int type_id (void) const
 
convert_fn unpack (jit_convention::type cc)
 

Private Attributes

size_t m_depth
 
int m_id
 
llvm::Type * m_llvm_type
 
std::string m_name
 
convert_fn m_pack [jit_convention::length]
 
llvm::Type * m_packed_type [jit_convention::length]
 
jit_typem_parent
 
bool m_pointer_arg [jit_convention::length]
 
bool m_skip_paren
 
bool m_sret [jit_convention::length]
 
convert_fn m_unpack [jit_convention::length]
 

Detailed Description

Definition at line 139 of file jit-typeinfo.h.

Member Typedef Documentation

◆ convert_fn

typedef llvm::Value*(* octave::jit_type::convert_fn) (llvm::IRBuilderD &, llvm::Value *)

Definition at line 144 of file jit-typeinfo.h.

Constructor & Destructor Documentation

◆ jit_type()

octave::jit_type::jit_type ( const std::string aname,
jit_type aparent,
llvm::Type *  allvm_type,
bool  askip_paren,
int  aid 
)

Member Function Documentation

◆ depth()

size_t octave::jit_type::depth ( void  ) const
inline

Definition at line 164 of file jit-typeinfo.h.

Referenced by octave::jit_type_join().

◆ mark_pointer_arg()

void octave::jit_type::mark_pointer_arg ( jit_convention::type  cc)
inline

Definition at line 184 of file jit-typeinfo.h.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ mark_sret()

void octave::jit_type::mark_sret ( jit_convention::type  cc)
inline

Definition at line 176 of file jit-typeinfo.h.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ name()

◆ pack()

convert_fn octave::jit_type::pack ( jit_convention::type  cc)
inline

Definition at line 190 of file jit-typeinfo.h.

Referenced by octave::jit_function::do_return().

◆ packed_type()

llvm::Type* octave::jit_type::packed_type ( jit_convention::type  cc)
inline

Definition at line 201 of file jit-typeinfo.h.

Referenced by octave::jit_function::jit_function().

◆ parent()

jit_type* octave::jit_type::parent ( void  ) const
inline

Definition at line 156 of file jit-typeinfo.h.

Referenced by octave::jit_type_join().

◆ pointer_arg()

bool octave::jit_type::pointer_arg ( jit_convention::type  cc) const
inline

Definition at line 182 of file jit-typeinfo.h.

Referenced by octave::jit_function::jit_function().

◆ set_pack()

void octave::jit_type::set_pack ( jit_convention::type  cc,
convert_fn  fn 
)
inline

Definition at line 192 of file jit-typeinfo.h.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ set_packed_type()

void octave::jit_type::set_packed_type ( jit_convention::type  cc,
llvm::Type *  ty 
)
inline

Definition at line 204 of file jit-typeinfo.h.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ set_unpack()

void octave::jit_type::set_unpack ( jit_convention::type  cc,
convert_fn  fn 
)
inline

Definition at line 197 of file jit-typeinfo.h.

Referenced by octave::jit_typeinfo::jit_typeinfo().

◆ skip_paren()

bool octave::jit_type::skip_paren ( void  ) const
inline

Definition at line 166 of file jit-typeinfo.h.

Referenced by octave::jit_magic_end::resolve_context().

◆ sret()

bool octave::jit_type::sret ( jit_convention::type  cc) const
inline

Definition at line 174 of file jit-typeinfo.h.

◆ to_llvm()

◆ to_llvm_arg()

llvm::Type * octave::jit_type::to_llvm_arg ( void  ) const

Definition at line 526 of file jit-typeinfo.cc.

References m_llvm_type.

◆ type_id()

int octave::jit_type::type_id ( void  ) const
inline

◆ unpack()

convert_fn octave::jit_type::unpack ( jit_convention::type  cc)
inline

Definition at line 195 of file jit-typeinfo.h.

Member Data Documentation

◆ m_depth

size_t octave::jit_type::m_depth
private

Definition at line 213 of file jit-typeinfo.h.

◆ m_id

int octave::jit_type::m_id
private

Definition at line 212 of file jit-typeinfo.h.

◆ m_llvm_type

llvm::Type* octave::jit_type::m_llvm_type
private

Definition at line 211 of file jit-typeinfo.h.

Referenced by jit_type(), and to_llvm_arg().

◆ m_name

std::string octave::jit_type::m_name
private

Definition at line 209 of file jit-typeinfo.h.

◆ m_pack

convert_fn octave::jit_type::m_pack[jit_convention::length]
private

Definition at line 219 of file jit-typeinfo.h.

Referenced by jit_type().

◆ m_packed_type

llvm::Type* octave::jit_type::m_packed_type[jit_convention::length]
private

Definition at line 222 of file jit-typeinfo.h.

Referenced by jit_type().

◆ m_parent

jit_type* octave::jit_type::m_parent
private

Definition at line 210 of file jit-typeinfo.h.

◆ m_pointer_arg

bool octave::jit_type::m_pointer_arg[jit_convention::length]
private

Definition at line 217 of file jit-typeinfo.h.

Referenced by jit_type().

◆ m_skip_paren

bool octave::jit_type::m_skip_paren
private

Definition at line 214 of file jit-typeinfo.h.

◆ m_sret

bool octave::jit_type::m_sret[jit_convention::length]
private

Definition at line 216 of file jit-typeinfo.h.

Referenced by jit_type().

◆ m_unpack

convert_fn octave::jit_type::m_unpack[jit_convention::length]
private

Definition at line 220 of file jit-typeinfo.h.

Referenced by jit_type().


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