[LLVMdev] Most efficient way to count # of intrcutions in a module ?

Gabi bugspynet at gmail.com
Tue Apr 13 22:57:58 PDT 2010


I need to count the total number of instructions in a given module.
The only way I found is using the obvious  double iteration as seen
below. Is there any more efficient way to achieve this ? I don't like
the fact that simple calculation like that has performance of o(F*B)
(# of functions * # of blocks per function)

unsigned int calcSize(Module* mod)
{
    unsigned int size = 0;
    for (Module::iterator f = mod->begin(), fe = mod->end(); f != fe; ++f)
        for (Function::iterator b = f->begin(), be = f->end(); b != be; ++b)
        {
            BasicBlock* bb = (BasicBlock*) b;
            size+=bb->getInstList().size();
        }
    return size;
}

-- 
Regards,
Gabi

http://bugspy.net



More information about the llvm-dev mailing list