Optimizationn questions?

Garrett Cooper youshi10 at u.washington.edu
Fri Mar 16 03:25:45 UTC 2007


Gary Kline wrote:
> On Wed, Mar 14, 2007 at 08:19:49PM -0700, youshi10 at u.washington.edu wrote:
>> On Thu, 15 Mar 2007, Danny Pansters wrote:
>>
>>> On Thursday 15 March 2007 02:16, Gary Kline wrote:
>>>> 	Two quick one for kernel and/or compiler wizards:  first, is
>>>> 	a 400Mz processor considered a 586 (for my KERNELCONF file)?
>>> Think its 686 (but really, leaving 486 and 586 in isn't going to slow down
>>> booting or anything!) I always say: Use GENERIC unless you have a good 
>>> reason
>>> not to.
>>>
>>>> 	Second, is it safe to do a buildworld with -O3?  If there are
>>> No. It's not supported if things break.
>>>
>>>> 	stability concerns, I'll go with the default when I rebuild my
>>>> 	6.2 systems.
>>> The defaults should be fine. Also, like I said consider just using GENERIC 
>>> and
>>> load the odd kmod if needed. Generally it's less headache and equal
>>> performance.
>>>
>>>> 	thanks in advance,
>>>>
>>>> 	gary
>>> Cheers,
>>>
>>> Dan
>> As Dan and Gary said -O3 isn't supported, and in many cases that "level of 
>> optimization" gets filtered out while compiling sections of FreeBSD.
>>
>> Besides, I've compiled stuff with -O3 and various optimizations in Gentoo 
>> Linux before, and let me say that it caused a great deal of headaches... 
>> that's why I stick with -O2 now, because it's better to have something in 
>> executable shape and a bit slower (arguably because some optimizations slow 
>> things down) than it is to have something run fast and break all the time.
>>
>> Some food for thought :).
> 
> 
> 	--Food for thought and a chuckle too!  (not to mention that
> 	it's waaay early, the chickens are still snoring, and I've
> 	only had *one* cup of joe)...   I've done some investigation
> 	with optimizing my own code, usually < 1000 lines, and haven't
> 	seen much gain between -O2 and -O3. Loop-unrolling may be
> 	different; one trick that compiler hackers at supercomputer 
> 	companies use by default in to unroll small loops.  Cray is
> 	one example.  Soooo, to get any real gain is going to mean
> 	going thru the most freq used tools (*grep, find, ls) and
> 	hand-tweak.  Might buy 5 - 7%.  
> 
> 	have a good one,
> 
> 	gary
> 
>> -Garrett

No problem. -funroll-loops might not buy you too much other than a few 
less instructions overall but I'm not sure how intelligent gcc is at 
unrolling loops. It seemed like there was a difference between 
optimizations in the 4.x branch compared to the 3.4.x sub branch. They 
made a lot of improvements in the 4.x branch though.. it's just that 
some of those improvements broke code, so that's probably why FreeBSD 
doesn't have gcc-4.x in the base system.

Cheers :).
-Garrett


More information about the freebsd-questions mailing list