Messages in this thread | | | Date | Sun, 4 Sep 2016 02:01:44 +0100 | From | Al Viro <> | Subject | Re: cmsg newgroup alt.sex.fetish.bool (was Re: [PATCH] arch: all: include: asm: bitops: Use bool instead of int for all bit test functions) |
| |
On Sun, Sep 04, 2016 at 06:36:56AM +0800, Chen Gang wrote:
> And for all: shall I provide the proof for another archs? > > For me, Boolean gives additional chance to compiler to improve the code.
Whereas for compiler it gives nothing. Not in those cases.
> If the compiler can not improve the code, it can treat it as int simply. > So theoretically, at least, Boolean should not be worse than int.
Except for pointless code churn and pandering to irrational beliefs, that is... Please, RTFISO9899 and learn the semantics of _Bool; it's not that complicated. Start with 6.2.5[2,6] and 6.3.1.2, then look through 6.8.4 and 6.8.5 to figure out the semantics of conditions in if/while/for. Note also 6.5.8, 6.5.9, 6.5.13 and 6.5.14 and observe that type of (x > 5 && y < 1) is *NOT* _Bool; it's int.
If you can show any improvement or loss in code generation in this case (static inline int converted to static inline bool), I would really like to see the details. As in .config/file/function/gcc version/target architecture. Optimizer bugs happens, but they should be reported when found, and I would expect _Bool handling to be _less_ exercised than that of normal logical expressions, so loss is probably more likely. And yes, it also should be reported.
| |