souffle
2.0.2-371-g6315b36
|
Namespaces | |
analysis | |
detail | |
test | |
transform | |
Data Structures | |
class | AbstractAggregate |
Abstract class for aggregation. More... | |
class | AbstractChoice |
Abstract class for a choice operation. More... | |
class | AbstractConditional |
Abstract conditional statement. More... | |
class | AbstractExistenceCheck |
Abstract existence check for a tuple in a relation. More... | |
class | AbstractLog |
Abstract class for logging. More... | |
class | AbstractOperator |
Abstract class for an operator/functor. More... | |
class | AbstractParallel |
Abstract class for parallel operation. More... | |
class | Aggregate |
Aggregation function applied on some relation. More... | |
class | AutoIncrement |
Increment a counter and return its value. More... | |
class | BinRelationStatement |
Abstract class for a binary relation. More... | |
class | Break |
Breaks out of the loop if a condition holds. More... | |
class | Call |
Call a subroutine. More... | |
class | Choice |
Find a tuple in a relation such that a given condition holds. More... | |
class | Clear |
Delete tuples of a relation. More... | |
class | Condition |
Abstract class for conditions and boolean values in RAM. More... | |
class | Conjunction |
A conjunction of conditions. More... | |
class | Constant |
Represents a Ram Constant. More... | |
class | Constraint |
Evaluates a binary constraint with respect to two Expressions. More... | |
class | DebugInfo |
Debug statement. More... | |
class | EmptinessCheck |
Emptiness check for a relation. More... | |
class | ExistenceCheck |
Existence check for a tuple(-pattern) in a relation. More... | |
class | Exit |
Exit statement for a loop. More... | |
class | Expression |
Abstract class for describing scalar values in RAM. More... | |
class | Extend |
Extend equivalence relation. More... | |
class | False |
class | Filter |
Checks whether a given condition holds. More... | |
class | FloatConstant |
Represents a float constant. More... | |
class | IndexAggregate |
Indexed aggregation on a relation. The index allows us to iterate over a restricted range. More... | |
class | IndexChoice |
Use an index to find a tuple in a relation such that a given condition holds. More... | |
class | IndexOperation |
class | IndexScan |
Search for tuples of a relation matching a criteria. More... | |
class | IntrinsicOperator |
Operator that represents an intrinsic (built-in) functor. More... | |
class | IO |
I/O statement for a relation. More... | |
class | LambdaNodeMapper |
A special NodeMapper wrapping a lambda conducting node transformations. More... | |
class | ListStatement |
Abstract class for a list of RAM statements. More... | |
class | LogRelationTimer |
Execution time logger for a statement. More... | |
class | LogSize |
Log relation size and a logging message. More... | |
class | LogTimer |
Execution time logger for a statement. More... | |
class | Loop |
Execute statement until statement terminates loop via an exit statement. More... | |
class | Negation |
Negates a given condition. More... | |
class | NestedIntrinsicOperator |
Effectively identical to IntrinsicOperator , except it can produce multiple results. More... | |
class | NestedOperation |
Abstract class for a nesting operations in a loop-nest. More... | |
class | Node |
Node is a superclass for all RAM IR classes. More... | |
class | NodeMapper |
An abstract class for manipulating RAM Nodes by substitution. More... | |
class | Operation |
Abstract class for a relational algebra operation. More... | |
class | PackRecord |
Packs a record's arguments into a reference. More... | |
class | Parallel |
Parallel block of statements. More... | |
class | ParallelAggregate |
Parallel Aggregation function applied on some relation. More... | |
class | ParallelChoice |
Find a tuple in a relation such that a given condition holds in parallel. More... | |
class | ParallelIndexAggregate |
Aggregate over values of a relation using an index in parallel. More... | |
class | ParallelIndexChoice |
Use an index to find a tuple in a relation such that a given condition holds in parallel. More... | |
class | ParallelIndexScan |
Search for tuples of a relation matching a criteria. More... | |
class | ParallelScan |
Iterate all tuples of a relation in parallel. More... | |
class | Program |
RAM program relation declaration and functions. More... | |
class | Project |
Project a result into the target relation. More... | |
class | ProvenanceExistenceCheck |
Provenance Existence check for a relation. More... | |
class | Query |
A relational algebra query. More... | |
struct | ram_visitor_tag |
A tag type required for the is_ram_visitor type trait to identify RamVisitors. More... | |
class | Relation |
An abstract class for performing indexed operations. More... | |
class | RelationOperation |
Abstract class for operations on relations. More... | |
class | RelationSize |
Returns the numbers of tuples in a relation. More... | |
class | RelationStatement |
RAM Statements with a single relation. More... | |
class | Scan |
Iterate all tuples of a relation. More... | |
class | Sequence |
Sequence of RAM statements. More... | |
class | SignedConstant |
Represents a signed constant. More... | |
class | Statement |
Abstract class for RAM statements. More... | |
class | SubroutineArgument |
Access argument of a subroutine. More... | |
class | SubroutineReturn |
A statement for returning from a ram subroutine. More... | |
class | Swap |
Swap operation with respect to two relations. More... | |
class | TestAutoIndex |
class | TranslationUnit |
Translating a RAM program. More... | |
class | True |
False value condition. More... | |
class | TupleElement |
Access element from the current tuple in a tuple environment. More... | |
class | TupleOperation |
Abstract class for relation searches and lookups. More... | |
class | UndefValue |
An undefined expression. More... | |
class | UnpackRecord |
Record lookup. More... | |
class | UnsignedConstant |
Represents a unsigned constant. More... | |
class | UserDefinedOperator |
Operator that represents an extrinsic (user-defined) functor. More... | |
struct | Visitor |
The generic base type of all RamVisitors realizing the dispatching of visitor calls. More... | |
Typedefs | |
using | Nodes = MinIndexSelection::SearchSet |
using | RamBound = VecOwn< Expression > |
Pattern type for lower/upper bound. More... | |
using | RamPattern = std::pair< RamBound, RamBound > |
Enumerations | |
enum | NestedIntrinsicOp { NestedIntrinsicOp::RANGE, NestedIntrinsicOp::URANGE, NestedIntrinsicOp::FRANGE } |
Functions | |
std::vector< const ram::Condition * > | findConjunctiveTerms (const ram::Condition *condition) |
store terms of a conjunction in an array of pointers without cloning More... | |
bool | isTrue (const Condition *cond) |
Determines if a condition represents true. More... | |
bool | isUndefValue (const Expression *expr) |
Determines if an expression represents an undefined value. More... | |
template<typename Lambda > | |
LambdaNodeMapper< Lambda > | makeLambdaRamMapper (const Lambda &lambda) |
Creates a node mapper based on a corresponding lambda expression. More... | |
std::ostream & | operator<< (std::ostream &os, NestedIntrinsicOp e) |
SearchSignature | setBits (size_t arity, uint64_t mask) |
TEST (Matching, StaticTest_1) | |
TEST (Matching, StaticTest_2) | |
TEST (Matching, TestOver64BitSignature) | |
TEST (Tuple, Assign) | |
TEST (Tuple, Basic) | |
TEST (Tuple, Compare) | |
TEST (Tuple, CompareSpeed) | |
Own< Condition > | toCondition (const VecOwn< Condition > &conds) |
Convert list of conditions to a conjunction. More... | |
VecOwn< Condition > | toConjunctionList (const Condition *condition) |
Convert terms of a conjunction to a list. More... | |
template<typename Lambda , typename R = typename lambda_traits<Lambda>::result_type, typename N = typename lambda_traits<Lambda>::arg0_type> | |
std::enable_if<!detail::is_ram_visitor< Lambda >::value, void >::type | visitDepthFirst (const Node &root, const Lambda &fun) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node. More... | |
template<typename R , typename N > | |
void | visitDepthFirst (const Node &root, const std::function< R(const N &)> &fun) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node. More... | |
template<typename R , typename... Ps, typename... Args> | |
void | visitDepthFirst (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) |
A utility function visiting all nodes within the RAM fragments rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node. More... | |
template<typename R , typename... Ps, typename... Args> | |
void | visitDepthFirstPreOrder (const Node &root, Visitor< R, Ps... > &visitor, Args &... args) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node. More... | |
using souffle::ram::Nodes = typedef MinIndexSelection::SearchSet |
Definition at line 42 of file matching_test.cpp.
typedef VecOwn< Expression > souffle::ram::RamBound |
Pattern type for lower/upper bound.
Definition at line 41 of file IndexOperation.h.
typedef std::pair< RamBound, RamBound > souffle::ram::RamPattern |
Definition at line 42 of file IndexOperation.h.
|
strong |
Enumerator | |
---|---|
RANGE | |
URANGE | |
FRANGE |
Definition at line 38 of file NestedIntrinsicOperator.h.
|
inline |
store terms of a conjunction in an array of pointers without cloning
Convert a condition of the format C1 /\ C2 /\ ... /\ Cn to a list {C1, C2, ..., Cn}.
Definition at line 102 of file Utils.h.
Referenced by souffle::interpreter::NodeGenerator::visitQuery().
|
inline |
|
inline |
Determines if an expression represents an undefined value.
Definition at line 40 of file Utils.h.
Referenced by souffle::synthesiser::Synthesiser::emitCode(), and souffle::ram::analysis::IndexAnalysis::getSearchSignature().
LambdaNodeMapper<Lambda> souffle::ram::makeLambdaRamMapper | ( | const Lambda & | lambda | ) |
Creates a node mapper based on a corresponding lambda expression.
Definition at line 67 of file LambdaNodeMapper.h.
Referenced by souffle::ram::transform::HoistAggregateTransformer::hoistAggregate(), and souffle::ram::transform::ParallelTransformer::parallelizeOperations().
|
inline |
Definition at line 44 of file NestedIntrinsicOperator.h.
SearchSignature souffle::ram::setBits | ( | size_t | arity, |
uint64_t | mask | ||
) |
Definition at line 44 of file matching_test.cpp.
Referenced by TEST().
souffle::ram::TEST | ( | Matching | , |
StaticTest_1 | |||
) |
Definition at line 55 of file matching_test.cpp.
References setBits().
souffle::ram::TEST | ( | Matching | , |
StaticTest_2 | |||
) |
Definition at line 73 of file matching_test.cpp.
souffle::ram::TEST | ( | Matching | , |
TestOver64BitSignature | |||
) |
Definition at line 92 of file matching_test.cpp.
souffle::ram::TEST | ( | Tuple | , |
Assign | |||
) |
Definition at line 52 of file compiled_tuple_test.cpp.
souffle::ram::TEST | ( | Tuple | , |
Basic | |||
) |
souffle::ram::TEST | ( | Tuple | , |
Compare | |||
) |
Definition at line 69 of file compiled_tuple_test.cpp.
souffle::ram::TEST | ( | Tuple | , |
CompareSpeed | |||
) |
Definition at line 76 of file compiled_tuple_test.cpp.
Convert list of conditions to a conjunction.
A | list of RAM conditions |
A | RAM condition |
Convert a list {C1, C2, ..., Cn} to a condition of the format C1 /\ C2 /\ ... /\ Cn.
Definition at line 84 of file Utils.h.
Referenced by souffle::ram::transform::CollapseFiltersTransformer::collapseFilters(), souffle::ram::transform::EliminateDuplicatesTransformer::eliminateDuplicates(), and souffle::ram::transform::ReorderConditionsTransformer::reorderConditions().
Convert terms of a conjunction to a list.
conds | A RAM condition |
Convert a condition of the format C1 /\ C2 /\ ... /\ Cn to a list {C1, C2, ..., Cn}.
Definition at line 57 of file Utils.h.
Referenced by souffle::ram::transform::EliminateDuplicatesTransformer::eliminateDuplicates(), souffle::ram::transform::ExpandFilterTransformer::expandFilters(), and souffle::ram::transform::ReorderConditionsTransformer::reorderConditions().
std::enable_if<!detail::is_ram_visitor<Lambda>::value, void>::type souffle::ram::visitDepthFirst | ( | const Node & | root, |
const Lambda & | fun | ||
) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.
root | the root of the RAM fragment to be visited |
fun | the function to be applied |
args | a list of extra parameters to be forwarded to the visitor |
void souffle::ram::visitDepthFirst | ( | const Node & | root, |
const std::function< R(const N &)> & | fun | ||
) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given function to each encountered node.
root | the root of the RAM fragment to be visited |
fun | the function to be applied |
args | a list of extra parameters to be forwarded to the visitor |
Definition at line 411 of file Visitor.h.
References visitDepthFirst().
void souffle::ram::visitDepthFirst | ( | const Node & | root, |
Visitor< R, Ps... > & | visitor, | ||
Args &... | args | ||
) |
A utility function visiting all nodes within the RAM fragments rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.
root | the root of the RAM fragments to be visited |
visitor | the visitor to be applied on each node |
args | a list of extra parameters to be forwarded to the visitor |
Definition at line 357 of file Visitor.h.
Referenced by souffle::ram::analysis::RelationAnalysis::lookup(), souffle::ram::transform::ChoiceConversionTransformer::rewriteIndexScan(), souffle::ram::transform::ChoiceConversionTransformer::rewriteScan(), and visitDepthFirst().
void souffle::ram::visitDepthFirstPreOrder | ( | const Node & | root, |
Visitor< R, Ps... > & | visitor, | ||
Args &... | args | ||
) |
A utility function visiting all nodes within the RAM fragment rooted by the given node recursively in a depth-first pre-order fashion applying the given visitor to each encountered node.
root | the root of the RAM fragment to be visited |
visitor | the visitor to be applied on each node |
args | a list of extra parameters to be forwarded to the visitor |
Definition at line 338 of file Visitor.h.
Referenced by souffle::ram::Visitor< Own< Node > >::visitNode().