|
Proteus
Programmable JIT compilation and optimization for C/C++ using LLVM
|
#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. | |
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.
| unsigned proteus::IRType::AddrSpace = 0 |
Address space of the pointer itself; only meaningful when Kind == Pointer.
| IRTypeKind proteus::IRType::ElemKind = IRTypeKind::Void |
Element type kind; meaningful when Kind == Pointer or Kind == Array.
| IRTypeKind proteus::IRType::Kind = IRTypeKind::Void |
| std::size_t proteus::IRType::NElem = 0 |
Number of array elements; only meaningful when Kind == Array.
| bool proteus::IRType::Signed = false |
Signedness of the type (meaningful for integer kinds and pointer-to-int).