00001 #include "ManagerDataDepGCD.hpp" 00002 00003 using namespace OA::AffineExpr; 00004 using namespace OA::Loop; 00005 00006 namespace OA { 00007 namespace DataDep { 00008 00009 ManagerDataDepGCD::ManagerDataDepGCD( 00010 OA_ptr<DataDepIRInterface> ir, 00011 OA_ptr<Alias::Interface> aliasResults) 00012 : 00013 ManagerDataDep(ir), 00014 mAliasResults(aliasResults) 00015 { 00016 } 00017 00018 OA_ptr<DataDepResults> ManagerDataDepGCD::performAnalysis( 00019 ProcHandle p, OA_ptr<LoopAbstraction> loop) 00020 { 00021 #if 0 00022 AffineExpr::AffineAnlState errState; 00023 OA_ptr<ManagerAffineExpr> affineExprManager; 00024 affineExprManager = new ManagerAffineExpr(mIR, mAliasResults); 00025 00026 // iterate across all IdxExprAccess objects, for now we assume they're 00027 // in the given loop 00028 OA_ptr<IdxExprAccessIterator> iter; 00029 iter = mIR->getIdxExprAccessIter(p); 00030 cout << "Start Iteration\n"; 00031 for(; iter->isValid(); (*iter)++) { 00032 // Use an affine expression manager to generate the affine expression 00033 // for the IdxExprAccess object we're currently iterating over. 00034 OA_ptr<IdxExprAccess> expr = iter->current(); 00035 if(expr->getExpr() == MemRefHandle(0)) { 00036 continue; 00037 } else { } 00038 00039 OA_ptr<ExprTree> eTree; 00040 eTree = mIR->getExprTree(iter->current()->getExpr()); 00041 OA_ptr<AffineExprAbstraction> affineExp; 00042 affineExp = affineExprManager->exprTreeToAffineExpr(*eTree, &errState); 00043 // TODO, finish implementation 00044 assert(false); 00045 00046 // Output the affine expression for now 00047 affineExp->output(*mIR); 00048 } 00049 cout << "End Iteration\n"; 00050 #endif 00051 } 00052 00053 } } // end namespaces 00054
1.7.1