MimIR
MimIR is my Intermediate Representation
Loading...
Searching...
No Matches
tuple.h File Reference
#include <concepts>
#include <algorithm>
#include <span>
#include "mim/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  mim::Prod
 Base class for Sigma and Tuple. More...
class  mim::Sigma
 A dependent tuple type. More...
class  mim::Tuple
 Data constructor for a Sigma. More...
class  mim::Sieve
 Filters the components of an aggregate and keeps track of where the survivors end up. More...
class  mim::Shape
 The extents of a Seq's axes: a plain Nat for a single axis, an aggregate of them for several. More...
class  mim::Seq
 Base class for Arr and Pack. More...
class  mim::Arr
 A (possibly paramterized) Array. More...
class  mim::Pack
 A (possibly paramterized) Tuple. More...
class  mim::Extract
 Extracts from a Sigma or Array-typed Extract::tuple the element at position Extract::index. More...
class  mim::Insert
 Creates a new Tuple / Pack by inserting Insert::value at position Insert::index into Insert::tuple. More...
class  mim::Switch
 Matches a jump table (target_0, target_1, ...)#index where index is a non-Literal Idx n and n the arity. More...
class  mim::Select
 Matches (ff, tt)#cond - where cond is a Bool but not a Literal. More...
class  mim::Branch
 Matches (ff, tt)#cond arg where cond is not a Literal. More...
class  mim::Dispatch
 Matches (target_0, target_1, ...)#index arg. More...

Namespaces

namespace  mim

Functions

Helpers to work with Tuples/Sigmas/Arrays/Packs
bool mim::is_unit (const Def *)
std::string mim::tuple2str (const Def *)
const Def * mim::tuple_of_types (const Def *t)