void CopyPropagation::doCopyPropagation(void) { std::string CopyStr(""); RewriteHelper->getExprString(TheCopyExpr, CopyStr); ExprSet *ESet = DominatedMap[TheCopyExpr]; TransAssert(ESet && "Empty Expr Set!"); for (ExprSet::iterator I = ESet->begin(), E = ESet->end(); I != E; ++I) { RewriteHelper->replaceExpr((*I), CopyStr); } }
void AggregateToScalar::doRewrite(void) { ExprSet *TheExprSet = ValidExprs[TheIdx]; TransAssert(!TheExprSet->empty() && "TheExprSet cannot be empty!"); ExprSet::iterator I = TheExprSet->begin(), E = TheExprSet->end(); std::string VarName(""); createNewVar(*I, VarName); for (; I != E; ++I) { RewriteHelper->replaceExpr((*I), VarName); } }