souffle  2.0.2-371-g6315b36
ReduceExistentials.h
Go to the documentation of this file.
1 /*
2  * Souffle - A Datalog Compiler
3  * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved
4  * Licensed under the Universal Permissive License v 1.0 as shown at:
5  * - https://opensource.org/licenses/UPL
6  * - <souffle root>/licenses/SOUFFLE-UPL.txt
7  */
8 
9 /************************************************************************
10  *
11  * @file ReduceExistentials.h
12  *
13  * Transformation pass to reduce unnecessary computation for
14  * relations that only appear in the form A(_,...,_).
15  *
16  ***********************************************************************/
17 
18 #pragma once
19 
20 #include "ast/TranslationUnit.h"
22 #include <string>
23 
24 namespace souffle::ast::transform {
25 
26 /**
27  * Transformation pass to reduce unnecessary computation for
28  * relations that only appear in the form A(_,...,_).
29  */
30 class ReduceExistentialsTransformer : public Transformer {
31 public:
32  std::string getName() const override {
33  return "ReduceExistentialsTransformer";
34  }
35 
36  ReduceExistentialsTransformer* clone() const override {
38  }
39 
40 private:
41  bool transform(TranslationUnit& translationUnit) override;
42 };
43 
44 } // namespace souffle::ast::transform
TranslationUnit.h
souffle::ast::transform::ReduceExistentialsTransformer::getName
std::string getName() const override
Definition: ReduceExistentials.h:46
souffle::ast::transform::ReduceExistentialsTransformer::transform
bool transform(TranslationUnit &translationUnit) override
Definition: ReduceExistentials.cpp:48
Transformer.h
souffle::ast::transform::ReduceExistentialsTransformer
Transformation pass to reduce unnecessary computation for relations that only appear in the form A(_,...
Definition: ReduceExistentials.h:37
souffle::ast::TranslationUnit
Translation unit class for the translation pipeline.
Definition: TranslationUnit.h:51
souffle::ast::transform
Definition: Program.h:45
souffle::ast::transform::ReduceExistentialsTransformer::clone
ReduceExistentialsTransformer * clone() const override
Definition: ReduceExistentials.h:50