1 |
On 04/27/14 06:23 PM, Rich Freeman wrote: |
2 |
> On Sat, Apr 26, 2014 at 10:37 PM, "C. Bergström" |
3 |
> <cbergstrom@×××××××××.com> wrote: |
4 |
>> #2 The only reference to anything which the compiler could impact is |
5 |
>> "Use Boyer-Moore (and unroll its inner loop a few times)." Finding out which |
6 |
>> flag controls that for ${CC} would have some importance. It's almost |
7 |
>> certainly combined with -O3 and or some standalone loop related |
8 |
>> optimization. (Nothing depending on LTO). If they were really clever or |
9 |
>> determined - there's probably a few GCC or other pragma which could give a |
10 |
>> hint about unrolling. |
11 |
> So, I'll certainly agree that package-specific CFLAG tuning will |
12 |
> always be superior to just setting some flag at the system level and |
13 |
> walking away. |
14 |
> |
15 |
> And yet, in the same paragraph you mention -O3, which is tantamount to |
16 |
> just setting a flag and walking away. That turns on 14 things you |
17 |
> probably don't really need. |
18 |
I was trying to give a simplified example... no need to nitpick my reply |
19 |
(Every compiler defines -O3 differently and even the flag to unroll |
20 |
loops and that threshold may be different.. ...) |
21 |
> |
22 |
> I run -flto at the system level since in my experience it only causes |
23 |
> problems with a handful of packages, and when it does provide a |
24 |
> benefit I get it. |
25 |
Can you name a single package that you use which receives a measurable |
26 |
benefit from LTO? (Just asking) |
27 |
|
28 |
I don't disagree about enabling it, filing bug reports or many other |
29 |
things. I'm just curious if you have any hard numbers... (You seem |
30 |
passionate and sorry if this seems like I'm putting you on the spot) |
31 |
|
32 |
/* |
33 |
Side note |
34 |
IPA (aka whole program and LTO) is by far the hardest optimizations I've |
35 |
ever personally had to debug/engineer/tune in a compiler. Making it |
36 |
robust needs passionate users who file good reduced test cases. While |
37 |
for a single source you have creduce or delta - what options are there |
38 |
for automated reduction of whole program problems.. |
39 |
*/ |