1 |
Am 28.11.2011 20:14, schrieb Michael Mol: |
2 |
> On Mon, Nov 28, 2011 at 1:56 PM, Florian Philipp <lists@×××××××××××.net> wrote: |
3 |
>> Am 28.11.2011 18:56, schrieb Michael Mol: |
4 |
>>> On Mon, Nov 28, 2011 at 11:46 AM, Pandu Poluan <pandu@××××××.info> wrote: |
5 |
>>> No, you've got some ugly flags in there. -fexcess-precision and |
6 |
>>> -funsafe-math-optimizations, in particular. (I must have been talking |
7 |
>>> to someone else last week; sorry, I'm terrible with names.) |
8 |
>>> |
9 |
>> |
10 |
>> I doubt -fexcess-precision=fast does anything at all. Pandu uses an |
11 |
>> AMD64 system, right? Then you have -mfpmath=sse set per default and SSE |
12 |
>> does not have excess precision issues (that's just for the old x87 FPU). |
13 |
>> Even if you used that, is redundant because of your other flags. To |
14 |
>> quote `man gcc`: |
15 |
>> "-fexcess-precision=standard is not implemented for languages other than |
16 |
>> C, and has no effect if -funsafe-math-optimizations or -ffast-math is |
17 |
>> specified." <-- Therefore you always have ..=fast anyway. |
18 |
>> |
19 |
>> -funsafe-math-optimizations is really terrible. Either you us floating |
20 |
>> point arithmetic, then you have to rely on it because it is hard enough |
21 |
>> already to gain necessary precision with it, or you don't, then you |
22 |
>> don't need that flag because it doesn't improve performance. |
23 |
> |
24 |
> I didn't know (or forgot) what arch he was using. |
25 |
> |
26 |
>>> -fomit-frame-pointer shouldn't cause any headaches unless you're |
27 |
>>> feeding a gdb stack trace, and you're not adding any debugging data, |
28 |
>>> so your stack traces would be pretty useless, anyway. |
29 |
>>> |
30 |
>> |
31 |
>> If you are on an AMD64 system, this flag is implied because it doesn't |
32 |
>> affect stack traces on x86_64 anymore. |
33 |
> |
34 |
> AMD64 puts the requisite data in its own register, right? |
35 |
> |
36 |
|
37 |
I guess so. Never actually looked up how stack traces are produced. I |
38 |
just reproduced what `man gcc` tells me :) |
39 |
|
40 |
> Yeah, it sounds like Pandu's setup CFLAGS can use some cleanup. |
41 |
> |
42 |
|
43 |
I wonder how many CPU cycles you save by reducing the number of |
44 |
parameters emerge has to pass to gcc. ;) |
45 |
|
46 |
>>> I don't know about -floop-interchange, -floop-strip-mine or |
47 |
>>> -floop-block. I recognize at least one of them from the discussion of |
48 |
>>> graphite the other day. |
49 |
>>> |
50 |
>> |
51 |
>> These definitely need graphite to have any effect. Then they should be |
52 |
>> reasonably safe (as far as anything relying on experimental compiler |
53 |
>> frameworks can be considered safe). |
54 |
> |
55 |
> Upstream devs might take issue with them, but I'm still not sure they |
56 |
> should affect bug reports of build-time failures. I would *hope* |
57 |
> upstream gcc is doing tests on its own build tools compiled with its |
58 |
> graphite optimizations. I don't know about make and autotools, though. |
59 |
> |
60 |
|
61 |
Agreed. Even if upstream for failing package doesn't want to handle it, |
62 |
you can still redirect it to the gcc folks. Even a bug report flagged |
63 |
WONTFIX or INVALID is helpful for the next user who stumbles upon weird |
64 |
compile issues. |
65 |
|
66 |
Regards, |
67 |
Florian Philipp |