reid-llvm/documentation/intrinsics.md
2025-07-28 21:23:51 +03:00

941 B

Intrinsics

Intrinsics are functions that are defined within the language compiler but not in standard library, thus they do not require importing in order to use (and trying to re-define these will end up causing issues). Intrinsics include all pre-existing binary-operators, but also some regular functions and associated functions (that every type has by-default). This document lists them all (except for the binary operators, because there are hundreds of those).

Associated Intrinsics

<T>::sizeof() -> u64

Simply returns the size of type T in bytes.

i32::sizeof(); // Returns 4

<T>::null() -> *T

Returns a null-pointer of type T.

i32::null(); // Returns *i32 (null-ptr)

<T>::malloc(size: u64) -> *T

Allocates T::sizeof() * size bytes and returns a pointer to T.

Note: This does not seem to work correctly currently.

i32::alloca(30); // Returns *i32