| souffle
    2.0.2-371-g6315b36
    | 
Magic Set Transformation. More...
#include <MagicSet.h>


| Data Structures | |
| class | AdornDatabaseTransformer | 
| Database adornment.  More... | |
| class | LabelDatabaseTransformer | 
| Database labeller.  More... | |
| class | MagicSetCoreTransformer | 
| Core section of the magic set transformer.  More... | |
| class | NormaliseDatabaseTransformer | 
| Database normaliser for MST.  More... | |
| Public Member Functions | |
| MagicSetTransformer * | clone () const override | 
| std::string | getName () const override | 
| MagicSetTransformer () | |
|  Public Member Functions inherited from souffle::ast::transform::PipelineTransformer | |
| PipelineTransformer * | clone () const override | 
| void | disableTransformers (const std::set< std::string > &transforms) override | 
| std::string | getName () const override | 
| std::vector< Transformer * > | getSubtransformers () const override | 
| template<typename... Args> | |
| PipelineTransformer (Args... args) | |
| PipelineTransformer (VecOwn< Transformer > pipeline) | |
| void | setDebugReport () override | 
| void | setVerbosity (bool verbose) override | 
|  Public Member Functions inherited from souffle::ast::transform::MetaTransformer | |
| bool | applySubtransformer (TranslationUnit &translationUnit, Transformer *transformer) | 
|  Public Member Functions inherited from souffle::ast::transform::Transformer | |
| bool | apply (TranslationUnit &translationUnit) | 
| virtual | ~Transformer ()=default | 
| Private Member Functions | |
| bool | transform (TranslationUnit &tu) override | 
| Static Private Member Functions | |
| static std::set< QualifiedName > | getRelationsToNotLabel (const TranslationUnit &tu) | 
| Gets the set of relations to not label.  More... | |
| static std::set< QualifiedName > | getStronglyIgnoredRelations (const TranslationUnit &tu) | 
| Gets the set of relations to strongly ignore during the MST process.  More... | |
| static std::set< QualifiedName > | getTriviallyIgnoredRelations (const TranslationUnit &tu) | 
| Gets the set of relations that are trivially computable, and so should not be magic-set.  More... | |
| static std::set< QualifiedName > | getWeaklyIgnoredRelations (const TranslationUnit &tu) | 
| Gets the set of relations to weakly ignore during the MST process.  More... | |
| static bool | shouldRun (const TranslationUnit &tu) | 
| Determines whether any part of the MST should be run.  More... | |
| Additional Inherited Members | |
|  Protected Member Functions inherited from souffle::ast::transform::PipelineTransformer | |
| bool | transform (TranslationUnit &translationUnit) override | 
|  Protected Attributes inherited from souffle::ast::transform::PipelineTransformer | |
| VecOwn< Transformer > | pipeline | 
|  Protected Attributes inherited from souffle::ast::transform::MetaTransformer | |
| bool | verbose = false | 
Magic Set Transformation.
Involves four stages: (1) NormaliseDatabaseTransformer, for assumptions to hold (2) LabelDatabaseTransformer, to support negation (3) AdornDatabaseTransformer, to annotate information flow (4) MagicSetCoreTransformer, to perform the core magifying transformation
Definition at line 51 of file MagicSet.h.
| 
 | inline | 
| 
 | inlineoverridevirtual | 
Implements souffle::ast::transform::MetaTransformer.
Definition at line 67 of file MagicSet.h.
References MagicSetTransformer().

| 
 | inlineoverridevirtual | 
Implements souffle::ast::transform::Transformer.
Definition at line 63 of file MagicSet.h.
| 
 | staticprivate | 
Gets the set of relations to not label.
The union of strongly and trivially ignored.
Definition at line 270 of file MagicSet.cpp.
| 
 | staticprivate | 
Gets the set of relations to strongly ignore during the MST process.
Strongly-ignored relations cannot be safely duplicated without affecting semantics.
Definition at line 219 of file MagicSet.cpp.
References souffle::ast::visitDepthFirst().

| 
 | staticprivate | 
Gets the set of relations that are trivially computable, and so should not be magic-set.
Definition at line 70 of file MagicSet.cpp.
References souffle::ast::getClauses(), rel(), and souffle::ast::visitDepthFirst().

| 
 | staticprivate | 
Gets the set of relations to weakly ignore during the MST process.
Weakly-ignored relations cannot be adorned/magic'd. Superset of strongly-ignored relations.
Definition at line 96 of file MagicSet.cpp.
| 
 | staticprivate | 
Determines whether any part of the MST should be run.
Definition at line 281 of file MagicSet.cpp.
Referenced by transform().
| 
 | inlineoverrideprivatevirtual | 
Implements souffle::ast::transform::Transformer.
Definition at line 72 of file MagicSet.h.
References shouldRun(), and souffle::ast::transform::PipelineTransformer::transform().

 1.8.17
 1.8.17