Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Performance regressions in 11.0

baughn
Beginner
338 Views
I've been trying to build Firefox 3.0.10 using ICC, which apparently stresses the system quite a bit. So, I've got two possibly-bugs and one definitely-bug to report.

Oh, and I should probably post the patches I use to make this build work.. I'll get to that in a few hours; I seem to be missing a pristine source tree to diff, or the tarballs to make one.

So.

First off, ICC fails to compile alg2268.c at all. It just gets into an infinite loop, apparently. It's a pretty simple file, so I can't quite see why; this happens with -O2, but not -O1 or 0.

Second, building with -ipo-jobs, the final link of libxul.so (which involves positively thousands of source files) runs forever, using up all my memory. Yay. Can't do that. Otherwise it just runs forever, but I'm sure that one of these days it'll finish.

Lastly, xptcinvoke_x86_64_linux.cpp just doesn't build at all. Quite reasonable, as it involves inline assembly, except the inline assembly that fails (register double d0 asm("xmm0")) is apparently *supposed* to work. At least, similar statements using general-purpose registers do.

I tried rewriting this file to work using ICC myself, but apparently botched the job. It's a pity; I'm using gcc to compile that particular file instead, then.
0 Kudos
2 Replies
baughn
Beginner
338 Views
Removing -ipo-jobs got it further, but it still eventually ran out of memory.
Using -ip instead of -ipo is getting it even further. It hasn't run out of memory yet, even - since I've got 4G, mere 1.6G memory use is.. passable. There's a real problem with memory use here, actually.

Oh, and the mozilla patch and build script is at http://brage.info/~svein/mozilla-icc.tgz
0 Kudos
Dale_S_Intel
Employee
338 Views
Quoting - baughn
I've been trying to build Firefox 3.0.10 using ICC, which apparently stresses the system quite a bit. So, I've got two possibly-bugs and one definitely-bug to report.

Oh, and I should probably post the patches I use to make this build work.. I'll get to that in a few hours; I seem to be missing a pristine source tree to diff, or the tarballs to make one.

So.

First off, ICC fails to compile alg2268.c at all. It just gets into an infinite loop, apparently. It's a pretty simple file, so I can't quite see why; this happens with -O2, but not -O1 or 0.



Well, I've played with this a bit, but mostly just building javascript. Are you trying to build all of firefox with -ipo? As you discovered that might be overdoing it a bit. Are you able to build without IPO? That would be the first thing I'd try, then go from there. I assume you're building this on Linux (not Mac)?

I'll try grabbing your patch and see if I can reproduce the problems you're seeing.

Thanks!

Dale

0 Kudos
Reply