Gentoo Archives: gentoo-user

From: Pandu Poluan <pandu@××××××.info>
To: gentoo-user@l.g.o
Subject: Re: Devs and rice flags (Was: Re: [gentoo-user] emerge -j, make -j and make -l )
Date: Mon, 28 Nov 2011 19:37:51
Message-Id: CAA2qdGUYhKeh-dqNRx1jdD3gXiVWRHLKvyLn61MUjU=10e2z8g@mail.gmail.com
In Reply to: Re: Devs and rice flags (Was: Re: [gentoo-user] emerge -j, make -j and make -l ) by Florian Philipp
1 On Nov 29, 2011 2:02 AM, "Florian Philipp" <lists@×××××××××××.net> wrote:
2 >
3 > Am 28.11.2011 18:56, schrieb Michael Mol:
4 > > On Mon, Nov 28, 2011 at 11:46 AM, Pandu Poluan <pandu@××××××.info>
5 wrote:
6 > >> On Nov 28, 2011 10:38 PM, "Michael Mol" <mikemol@×××××.com> wrote:
7 > >>> On Sun, Nov 27, 2011 at 7:54 PM, Pandu Poluan <pandu@××××××.info>
8 wrote:
9 > >>>> Won't file a bug report, though. I have a feeling that my bug report
10 re:
11 > >>>> emerge failure will be marked WONTFIX thanks to the 'ricer special'
12 > >>>> CFLAGS
13 > >>>
14 > >>> The CFLAGS you showed me weren't any more ricer than "-O2
15 > >>> -march=native". (I didn't know that -D_FORTIFY=2 came from gcc)
16 > >>>
17 > >>> They wouldn't have a leg to stand on...
18 > >>>
19 > >>
20 > >> Mine is:
21 > >>
22 > >> CFLAGS="-O2 -march=native -fomit-frame-pointer -floop-interchange
23 > >> -floop-strip-mine -floop-block -funsafe-math-optimizations
24 > >> -fexcess-precision=fast"
25 > >>
26 > >> If you tell me that's not a ricer's CFLAGS, then you've just made me a
27 very
28 > >> happy cat :-)
29 > >
30 > > No, you've got some ugly flags in there. -fexcess-precision and
31 > > -funsafe-math-optimizations, in particular. (I must have been talking
32 > > to someone else last week; sorry, I'm terrible with names.)
33 > >
34 >
35 > I doubt -fexcess-precision=fast does anything at all. Pandu uses an
36 > AMD64 system, right? Then you have -mfpmath=sse set per default and SSE
37 > does not have excess precision issues (that's just for the old x87 FPU).
38
39 I use Intel boxes, unfortunately.
40
41 > Even if you used that, is redundant because of your other flags. To
42 > quote `man gcc`:
43 > "-fexcess-precision=standard is not implemented for languages other than
44 > C, and has no effect if -funsafe-math-optimizations or -ffast-math is
45 > specified." <-- Therefore you always have ..=fast anyway.
46 >
47 > -funsafe-math-optimizations is really terrible. Either you us floating
48 > point arithmetic, then you have to rely on it because it is hard enough
49 > already to gain necessary precision with it, or you don't, then you
50 > don't need that flag because it doesn't improve performance.
51 >
52
53 Aah, so it's FP only? Okay, one less flag to use, then.
54
55 > > -fomit-frame-pointer shouldn't cause any headaches unless you're
56 > > feeding a gdb stack trace, and you're not adding any debugging data,
57 > > so your stack traces would be pretty useless, anyway.
58 > >
59 >
60 > If you are on an AMD64 system, this flag is implied because it doesn't
61 > affect stack traces on x86_64 anymore.
62 >
63 > > I don't know about -floop-interchange, -floop-strip-mine or
64 > > -floop-block. I recognize at least one of them from the discussion of
65 > > graphite the other day.
66 > >
67 >
68 > These definitely need graphite to have any effect. Then they should be
69 > reasonably safe (as far as anything relying on experimental compiler
70 > frameworks can be considered safe).
71 >
72
73 Well, upstream says that graphite in gcc-4.5.3 is stable and production
74 ready, but the polyhedra analysis slows down compilation significantly. In
75 addition, one can easily get caught in dependency hell if the ppl package
76 gets an ABI upgrade.
77
78 It's kind of I_KNOW_WHAT_I_AM_DOING flag in /etc/make.conf :-)
79
80 That said, I drew the line at -floop-parallelize-all, because after
81 consulting with some people familiar with that flag, not only will that
82 flag give just a marginal improvement, but some code apparently got worse
83 with that flag enabled.
84
85 Rgds,

Replies

Subject Author
Re: Devs and rice flags (Was: Re: [gentoo-user] emerge -j, make -j and make -l ) Michael Mol <mikemol@×××××.com>