| Index: src/IceConverter.cpp
|
| diff --git a/src/IceConverter.cpp b/src/IceConverter.cpp
|
| index df64cff9ab92db0510b3630fac16f60a81c98cea..cdb0052972bd68205fd7237f85de4e81b7a2708f 100644
|
| --- a/src/IceConverter.cpp
|
| +++ b/src/IceConverter.cpp
|
| @@ -59,15 +59,13 @@ public:
|
|
|
| // Caller is expected to delete the returned Ice::Cfg object.
|
| Ice::Cfg *convertFunction(const Function *F) {
|
| - static Ice::TimerIdT IDllvmConvert =
|
| - Ice::GlobalContext::getTimerID("llvmConvert");
|
| - Ice::TimerMarker T(IDllvmConvert, Ctx);
|
| VarMap.clear();
|
| NodeMap.clear();
|
| Func = new Ice::Cfg(Ctx);
|
| Func->setFunctionName(F->getName());
|
| Func->setReturnType(convertToIceType(F->getReturnType()));
|
| Func->setInternal(F->hasInternalLinkage());
|
| + Ice::TimerMarker T(Ice::TimerStack::TT_llvmConvert, Func);
|
|
|
| // The initial definition/use of each arg is the entry node.
|
| for (auto ArgI = F->arg_begin(), ArgE = F->arg_end(); ArgI != ArgE;
|
| @@ -617,8 +615,7 @@ private:
|
| namespace Ice {
|
|
|
| void Converter::convertToIce() {
|
| - static TimerIdT IDconvertToIce = GlobalContext::getTimerID("convertToIce");
|
| - TimerMarker T(IDconvertToIce, Ctx);
|
| + TimerMarker T(TimerStack::TT_convertToIce, Ctx);
|
| nameUnnamedGlobalAddresses(Mod);
|
| if (!Ctx->getFlags().DisableGlobals)
|
| convertGlobals(Mod);
|
| @@ -626,13 +623,21 @@ void Converter::convertToIce() {
|
| }
|
|
|
| void Converter::convertFunctions() {
|
| + TimerStackIdT StackID = GlobalContext::TSK_Funcs;
|
| for (const Function &I : *Mod) {
|
| if (I.empty())
|
| continue;
|
| + TimerIdT TimerID = 0;
|
| + if (Ctx->getFlags().TimeEachFunction) {
|
| + TimerID = Ctx->getTimerID(StackID, I.getName());
|
| + Ctx->pushTimer(TimerID, StackID);
|
| + }
|
| LLVM2ICEConverter FunctionConverter(Ctx, Mod->getContext());
|
|
|
| Cfg *Fcn = FunctionConverter.convertFunction(&I);
|
| translateFcn(Fcn);
|
| + if (Ctx->getFlags().TimeEachFunction)
|
| + Ctx->popTimer(TimerID, StackID);
|
| }
|
|
|
| emitConstants();
|
|
|