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, |