On Thu, 30 Aug 2007, Mohamed Bamakhrama wrote:
I have a question regarding the average number of assembly
instructions per line of kernel code. I know that this is a difficult
question since it depends on many factors such as the instruction set
architecture, compiler used, optimizations used, type of code, coding
style, etc...
I would like to know a rough estimate for such a quantity for the
kernel 2.4/2.6 code running on MIPS32 architecture compiled using GCC.
My estimate is between 5-10 instructions. I googled for such a thing
but couldn't find any useful papers/resources.
I don't understand what use this metric is.
For starters, not all lines are created equal. Not all lines contain
code, not all lines with code produce output (hint: dead code). Not all
lines contain a single statement, etc....
I understand that it doesn't sound interesting at all for programmers.
Nevertheless, this metric is interesting for hardware architects since
it gives you a hint about the instruction cache behavior of your code.
If somehow you know how many instructions can result from one
statement *on average*, then it can help you somehow in calculating
optimal parameters for the cache (assuming that you can find the
length of the basic blocks within your C code).
Wow... We have reached the point where we're designing hardware for
software rather than the other way around. Am I the only one who finds
that really backwards and wrong?
Gordan