Thorin 1.9.0
The Higher ORder INtermediate representation
|
#include "thorin/def.h"
Go to the source code of this file.
Classes | |
class | thorin::Sigma |
A dependent tuple type. More... | |
class | thorin::Tuple |
Data constructor for a Sigma. More... | |
class | thorin::Arr |
A (possibly paramterized) Array. More... | |
class | thorin::Pack |
A (possibly paramterized) Tuple. More... | |
class | thorin::Extract |
Extracts from a Sigma or Array-typed Extract::tuple the element at position Extract::index. More... | |
class | thorin::Insert |
Creates a new Tuple / Pack by inserting Insert::value at position Insert::index into Insert::tuple. More... | |
Namespaces | |
namespace | thorin |
Functions | |
Helpers to work with Tulpes/Sigmas/Arrays/Packs | |
bool | thorin::is_unit (const Def *) |
std::string | thorin::tuple2str (const Def *) |
const Def * | thorin::flatten (const Def *def) |
Flattens a sigma/array/pack/tuple. | |
size_t | thorin::flatten (DefVec &ops, const Def *def, bool flatten_sigmas=true) |
Same as unflatten, but uses the operands of a flattened pack/tuple directly. | |
const Def * | thorin::unflatten (const Def *def, const Def *type) |
Applies the reverse transformation on a pack/tuple, given the original type. | |
const Def * | thorin::unflatten (Defs ops, const Def *type, bool flatten_muts=true) |
Same as unflatten, but uses the operands of a flattened pack/tuple directly. | |
DefVec | thorin::merge (Defs, Defs) |
DefVec | thorin::merge (const Def *def, Defs defs) |
const Def * | thorin::merge_sigma (const Def *def, Defs defs) |
const Def * | thorin::merge_tuple (const Def *def, Defs defs) |
Ref | thorin::tuple_of_types (Ref t) |