Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
Loading...
Searching...
No Matches
Public Attributes | List of all members
proteus::IRType Struct Reference

#include <IRType.h>

Public Attributes

IRTypeKind Kind = IRTypeKind::Void
 
bool Signed = false
 Signedness of the type (meaningful for integer kinds and pointer-to-int).
 
std::size_t NElem = 0
 Number of array elements; only meaningful when Kind == Array.
 
IRTypeKind ElemKind = IRTypeKind::Void
 Element type kind; meaningful when Kind == Pointer or Kind == Array.
 
unsigned AddrSpace = 0
 Address space of the pointer itself; only meaningful when Kind == Pointer.
 

Detailed Description

A backend-independent descriptor of an IR type.

For scalar kinds (Void, Int1, Int16, Int32, Int64, Float, Double) only Kind and Signed are relevant.

For Pointer, ElemKind carries the pointee type kind, Signed reflects the signedness of the pointee integer type (if applicable), and AddrSpace is the address space of the pointer itself.

For Array, both ElemKind and NElem are populated.

Member Data Documentation

◆ AddrSpace

unsigned proteus::IRType::AddrSpace = 0

Address space of the pointer itself; only meaningful when Kind == Pointer.

◆ ElemKind

IRTypeKind proteus::IRType::ElemKind = IRTypeKind::Void

Element type kind; meaningful when Kind == Pointer or Kind == Array.

◆ Kind

IRTypeKind proteus::IRType::Kind = IRTypeKind::Void

◆ NElem

std::size_t proteus::IRType::NElem = 0

Number of array elements; only meaningful when Kind == Array.

◆ Signed

bool proteus::IRType::Signed = false

Signedness of the type (meaningful for integer kinds and pointer-to-int).


The documentation for this struct was generated from the following file: