Thorin 1.9.0
The Higher ORder INtermediate representation
Loading...
Searching...
No Matches
tuple.h File Reference
#include "thorin/def.h"
Include dependency graph for tuple.h:
This graph shows which files directly or indirectly include this file:

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 Defthorin::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 Defthorin::unflatten (const Def *def, const Def *type)
 Applies the reverse transformation on a pack/tuple, given the original type.
 
const Defthorin::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 Defthorin::merge_sigma (const Def *def, Defs defs)
 
const Defthorin::merge_tuple (const Def *def, Defs defs)
 
Ref thorin::tuple_of_types (Ref t)