From 79866eaaf708759db9458e60bb4ea51799608f2e Mon Sep 17 00:00:00 2001 From: Tuowen Zhao Date: Fri, 7 Oct 2016 12:34:59 -0600 Subject: fix unroll & cleanup --- src/ir_clang.cc | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/ir_clang.cc') diff --git a/src/ir_clang.cc b/src/ir_clang.cc index 5a14a63..51e5388 100755 --- a/src/ir_clang.cc +++ b/src/ir_clang.cc @@ -1782,22 +1782,25 @@ IR_clangCode::CreateArraySymbol(const IR_Symbol *sym, std::vector IR_clangCode::FindScalarRef(const omega::CG_outputRepr *repr) const { std::vector scalars; - fprintf(stderr, "IR_clangCode::FindScalarRef() DIE\n"); - exit(-1); + + const omega::CG_chillRepr *crepr = static_cast(repr); + std::vector chillstmts = crepr->getChillCode(); + + std::vector refs; + for (int i = 0; i < chillstmts.size(); i++) { + chillstmts[i]->gatherScalarRefs(refs,false); + } + for (int i = 0; i < refs.size(); i++) { + scalars.push_back(new IR_chillScalarRef(this, refs[i])); + } return scalars; } IR_ScalarRef *IR_clangCode::CreateScalarRef(const IR_ScalarSymbol *sym) { - //fprintf(stderr, "\n***** ir_clang.cc IR_clangCode::CreateScalarRef( sym %s )\n", sym->name().c_str()); - //DeclRefExpr *de = new (vd->getASTContext())DeclRefExpr(static_cast(vd), vd->getType(), SourceLocation()); - //fprintf(stderr, "sym 0x%x\n", sym); - IR_chillScalarRef *sr = new IR_chillScalarRef(this, new chillAST_DeclRefExpr( ((IR_chillScalarSymbol *) sym)->chillvd)); // uses VarDecl to mak a declrefexpr - //fprintf(stderr, "returning ScalarRef with dre 0x%x\n", sr->dre); return sr; - //return (IR_ScalarRef *)NULL; } bool IR_clangCode::FromSameStmt(IR_ArrayRef *A, IR_ArrayRef *B) { @@ -1817,15 +1820,12 @@ IR_ArrayRef *IR_clangCode::CreateArrayRef(const IR_ArraySymbol *sym, std::vector chillAST_VarDecl *vd = c_sym->chillvd; std::vector inds; - //fprintf(stderr, "%d array indeces\n", sym->n_dim()); for (int i = 0; i < index.size(); i++) { CG_chillRepr *CR = (CG_chillRepr *) index[i]; int numnodes = CR->chillnodes.size(); if (1 != numnodes) { - fprintf(stderr, - "IR_clangCode::CreateArrayRef() array dimension %d has %d chillnodes\n", - i, numnodes); + CHILL_ERROR("IR_clangCode::CreateArrayRef() array dimension %d has %d chillnodes\n", i, numnodes); exit(-1); } -- cgit v1.2.3-70-g09d2