Index: include/llvm/IR/Function.h =================================================================== --- include/llvm/IR/Function.h +++ include/llvm/IR/Function.h @@ -158,7 +158,7 @@ /// Returns the number of non-debug IR instructions in this function. /// This is equivalent to the sum of the sizes of each basic block contained /// within this function. - unsigned getInstructionCount(); + unsigned getInstructionCount() const; /// Returns the FunctionType for me. FunctionType *getFunctionType() const { Index: lib/IR/Function.cpp =================================================================== --- lib/IR/Function.cpp +++ lib/IR/Function.cpp @@ -195,9 +195,9 @@ return getType()->getContext(); } -unsigned Function::getInstructionCount() { +unsigned Function::getInstructionCount() const { unsigned NumInstrs = 0; - for (BasicBlock &BB : BasicBlocks) + for (const BasicBlock &BB : BasicBlocks) NumInstrs += std::distance(BB.instructionsWithoutDebug().begin(), BB.instructionsWithoutDebug().end()); return NumInstrs;