summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/chill_error.hh4
-rwxr-xr-xinclude/ir_chill.hh5
-rw-r--r--include/loop.hh3
3 files changed, 9 insertions, 3 deletions
diff --git a/include/chill_error.hh b/include/chill_error.hh
index 20a8362..a43eac4 100644
--- a/include/chill_error.hh
+++ b/include/chill_error.hh
@@ -18,6 +18,10 @@ namespace chill {
ir(const std::string &msg) : std::runtime_error(msg) {}
};
+ struct build : public std::runtime_error {
+ build(const std::string &msg) : std::runtime_error(msg) {}
+ };
+
//! for specific for expression to preburger math translation problem
struct ir_exp : public ir {
ir_exp(const std::string &msg) : ir(msg) {}
diff --git a/include/ir_chill.hh b/include/ir_chill.hh
index bbd7fd5..53d7b05 100755
--- a/include/ir_chill.hh
+++ b/include/ir_chill.hh
@@ -232,11 +232,12 @@ struct IR_chillArrayRef : public IR_ArrayRef {
struct IR_chillLoop : public IR_Loop {
int step_size_;
+ int well_formed; // Discard all non-welformed for loops early in the process
chillAST_DeclRefExpr *chillindex; // the loop index variable (I) // was DeclRefExpr
chillAST_ForStmt *chillforstmt;
- chillAST_Node *chilllowerbound;
- chillAST_Node *chillupperbound;
+ omega::CG_outputRepr *chilllowerbound;
+ omega::CG_outputRepr *chillupperbound;
chillAST_Node *chillbody; // presumably a compound statement, but not guaranteeed
IR_CONDITION_TYPE conditionoperator;
diff --git a/include/loop.hh b/include/loop.hh
index 2b85ac6..0fbebf4 100644
--- a/include/loop.hh
+++ b/include/loop.hh
@@ -116,7 +116,8 @@ protected:
mutable int last_compute_effort_;
protected:
- void buildIS(std::vector<ir_tree_node*> &ir_tree,std::vector<int> &lexicalOrder,std::vector<ir_tree_node*> &ctrls, int level, int &substituted);
+ void buildIS(std::vector<ir_tree_node*> &ir_tree,std::vector<int> &lexicalOrder,std::vector<ir_tree_node*> &ctrls, int level);
+ void align_loops(std::vector<ir_tree_node*> &ir_tree, std::vector<std::string> &vars_to_be_replaced, std::vector<omega::CG_outputRepr*> &vars_replacement,int level);
int get_dep_dim_of(int stmt, int level) const;
int get_last_dep_dim_before(int stmt, int level) const;
std::vector<omega::Relation> getNewIS() const;