diff options
author | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-19 21:14:58 +0000 |
---|---|---|
committer | Tuowen Zhao <ztuowen@gmail.com> | 2016-09-19 21:14:58 +0000 |
commit | 210f77d2c32f14d2e99577fd3c9842bb19d47e50 (patch) | |
tree | 5edb327c919b8309e301c3440fb6668a0075c8ef /lib/codegen/include/code_gen/code_gen.h | |
parent | a66ce5cd670c4d3c0dc449720f5bc45dd4c281b8 (diff) | |
download | chill-210f77d2c32f14d2e99577fd3c9842bb19d47e50.tar.gz chill-210f77d2c32f14d2e99577fd3c9842bb19d47e50.tar.bz2 chill-210f77d2c32f14d2e99577fd3c9842bb19d47e50.zip |
Moved most modules into lib
Diffstat (limited to 'lib/codegen/include/code_gen/code_gen.h')
-rw-r--r-- | lib/codegen/include/code_gen/code_gen.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lib/codegen/include/code_gen/code_gen.h b/lib/codegen/include/code_gen/code_gen.h new file mode 100644 index 0000000..abfab7c --- /dev/null +++ b/lib/codegen/include/code_gen/code_gen.h @@ -0,0 +1,47 @@ +#if !defined(Already_Included_code_gen) +#define Already_Included_code_gen + +#include <basic/Tuple.h> +#include <omega/Relation.h> +#include <code_gen/CG.h> +#include <code_gen/CG_outputRepr.h> +#include <code_gen/CG_outputBuilder.h> + +namespace omega { + +typedef Tuple<int> IntTuple; +typedef Tuple<Relation> SetTuple; +typedef Tuple<SetTuple> SetTupleTuple; +typedef Tuple<Relation> RelTuple; +typedef Tuple<RelTuple> RelTupleTuple; + +CG_outputRepr *MMGenerateCode(CG_outputBuilder* ocg, + Tuple<Relation> &T, Tuple<Relation> &old_IS, + const Tuple<CG_outputRepr *> &stmt_content, + Relation &known, int effort=1); +std::string MMGenerateCode(Tuple<Relation> &T, Tuple<Relation> &old_IS, Relation &known, + int effort=1); + +//protonu-adding a new variant to keep Gabe's code happy +CG_outputRepr* MMGenerateCode(CG_outputBuilder* ocg, RelTuple &T, SetTuple &old_IS, + const Tuple<CG_outputRepr *> &stmt_content, Relation &known, + Tuple< IntTuple >& smtNonSplitLevels_, + std::vector< std::pair<int, std::string> > syncs_, + const Tuple< Tuple<std::string> >& loopIdxNames_, + int effort=1); +//end-protonu + +struct Polyhedra { + int last_level; + Tuple<Relation> transformations; + Relation known; + + Tuple<int> remap; // after initial iteration space's disjoint set splitting, the new statement number maps to old statement number + Tuple<Tuple<Relation> > projected_nIS; + + Polyhedra(const Tuple<Relation> &T, const Tuple<Relation> &old_IS, const Relation &known = Relation::Null()); + ~Polyhedra() {} +}; + +} +#endif |