}
{
+ unsigned InstrCount = 0;
+ bool EmitICRemark = M.shouldEmitInstrCountChangedRemark();
TimeRegion PassTimer(getPassTimer(CGSP));
- unsigned InstrCount = initSizeRemarkInfo(M);
+ if (EmitICRemark)
+ InstrCount = initSizeRemarkInfo(M);
Changed = CGSP->runOnSCC(CurSCC);
// If the pass modified the module, it may have modified the instruction
// count of the module. Try emitting a remark.
- emitInstrCountChangedRemark(P, M, InstrCount);
+ if (EmitICRemark)
+ emitInstrCountChangedRemark(P, M, InstrCount);
}
// After the CGSCCPass is done, when assertions are enabled, use
}
// Walk Loops
+ unsigned InstrCount = 0;
+ bool EmitICRemark = M.shouldEmitInstrCountChangedRemark();
while (!LQ.empty()) {
CurrentLoopDeleted = false;
CurrentLoop = LQ.back();
{
PassManagerPrettyStackEntry X(P, *CurrentLoop->getHeader());
TimeRegion PassTimer(getPassTimer(P));
- unsigned InstrCount = initSizeRemarkInfo(M);
+ if (EmitICRemark)
+ InstrCount = initSizeRemarkInfo(M);
Changed |= P->runOnLoop(CurrentLoop, *this);
- emitInstrCountChangedRemark(P, M, InstrCount);
+ if (EmitICRemark)
+ emitInstrCountChangedRemark(P, M, InstrCount);
}
if (Changed)
unsigned PMDataManager::initSizeRemarkInfo(Module &M) {
// Only calculate getInstructionCount if the size-info remark is requested.
- if (M.getContext().getDiagHandlerPtr()->isAnalysisRemarkEnabled("size-info"))
- return M.getInstructionCount();
- return 0;
+ return M.getInstructionCount();
}
void PMDataManager::emitInstrCountChangedRemark(Pass *P, Module &M,
unsigned CountBefore) {
- // Did the user request the remark? If not, quit.
- if (!M.getContext().getDiagHandlerPtr()->isAnalysisRemarkEnabled("size-info"))
- return;
-
// We need a function containing at least one basic block in order to output
// remarks. Since it's possible that the first function in the module doesn't
// actually contain a basic block, we have to go and find one that's suitable
bool Changed = doInitialization(F);
Module &M = *F.getParent();
+ unsigned InstrCount = 0;
+ bool EmitICRemark = M.shouldEmitInstrCountChangedRemark();
for (BasicBlock &BB : F)
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
BasicBlockPass *BP = getContainedPass(Index);
// If the pass crashes, remember this.
PassManagerPrettyStackEntry X(BP, BB);
TimeRegion PassTimer(getPassTimer(BP));
- unsigned InstrCount = initSizeRemarkInfo(M);
+ if (EmitICRemark)
+ InstrCount = initSizeRemarkInfo(M);
LocalChanged |= BP->runOnBasicBlock(BB);
- emitInstrCountChangedRemark(BP, M, InstrCount);
+ if (EmitICRemark)
+ emitInstrCountChangedRemark(BP, M, InstrCount);
}
Changed |= LocalChanged;
// Collect inherited analysis from Module level pass manager.
populateInheritedAnalysis(TPM->activeStack);
+ unsigned InstrCount = 0;
+ bool EmitICRemark = M.shouldEmitInstrCountChangedRemark();
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
FunctionPass *FP = getContainedPass(Index);
bool LocalChanged = false;
{
PassManagerPrettyStackEntry X(FP, F);
TimeRegion PassTimer(getPassTimer(FP));
- unsigned InstrCount = initSizeRemarkInfo(M);
+ if (EmitICRemark)
+ InstrCount = initSizeRemarkInfo(M);
LocalChanged |= FP->runOnFunction(F);
- emitInstrCountChangedRemark(FP, M, InstrCount);
+ if (EmitICRemark)
+ emitInstrCountChangedRemark(FP, M, InstrCount);
}
Changed |= LocalChanged;
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index)
Changed |= getContainedPass(Index)->doInitialization(M);
+ unsigned InstrCount = 0;
+ bool EmitICRemark = M.shouldEmitInstrCountChangedRemark();
for (unsigned Index = 0; Index < getNumContainedPasses(); ++Index) {
ModulePass *MP = getContainedPass(Index);
bool LocalChanged = false;
PassManagerPrettyStackEntry X(MP, M);
TimeRegion PassTimer(getPassTimer(MP));
- unsigned InstrCount = initSizeRemarkInfo(M);
+ if (EmitICRemark)
+ InstrCount = initSizeRemarkInfo(M);
LocalChanged |= MP->runOnModule(M);
- emitInstrCountChangedRemark(MP, M, InstrCount);
+ if (EmitICRemark)
+ emitInstrCountChangedRemark(MP, M, InstrCount);
}
Changed |= LocalChanged;