[LLVMdev] Why code doesn't speed up much with optimization level increase?

Yuri yuri at rawbw.com
Fri Jun 25 15:06:23 PDT 2010

I run large piece of code in JIT and it runs only marginallty faster 
with optimization levels 1,2,3. I think differences are within the 
margin or error.

level     user time
0           17339ms
1           16913ms
2           16891ms
3           16898ms

Level is set with builder->setOptLevel(olev);
Compilation time is excluded by taking the only top-level function 
address before the run with getPointerToFunction. So I measure time 
without getPointerToFunction.

Why optimization almost doesn't speed it up? What are the other than 
setOptLevel ways to control optimization?

My mindset is defined by experience with gcc, when increasing inlining 
levels speeds the code up significantly. Does JIT inline at all?
It's hard to believe that even only local (no inlining) optimization 
wouldn't bring timing down by at least 10%.

i386 on i7


More information about the llvm-dev mailing list