Func insertTimers(Func func) { Var timeStartVar = InsertTimers::getInstance().getTimeVar(); Func timerFunc = Func(func, Block::make(VarDecl::make(timeStartVar), func.getBody())); timerFunc = InsertTimers::getInstance().rewrite(timerFunc); return timerFunc; }
Func rewriteVarDecls(Func func) { LiftVarDecls rewriter; Func out = rewriter.rewrite(func); if (rewriter.varDecls.size() > 0) { return Func(out, Block::make(Block::make( rewriter.varDecls), out.getBody())); } else { return out; } }
Func::Func(const Func& func, const Environment& environment) : Func(func.getName(), func.getArguments(), func.getResults(), func.getBody(), environment, func.getKind()) { }