This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/47255] Missed CSE optimization with inline functions, and __attribute__((const))


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47255

Paolo Bonzini <bonzini at gnu dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bonzini at gnu dot org

--- Comment #4 from Paolo Bonzini <bonzini at gnu dot org> 2011-02-07 10:57:54 UTC ---
I think this is invalid.  const attributes are a hint to GCC regarding parts of
the program that it cannot see, but IMHO the const/pure/nothrow on a function
that is static and a leaf should have no effect on code generation (since GCC
can infer just as much).

So, in the first example GCC is "fixing" a wrong usage of const on part of the
program.

In the second example attached, there is no use of syscalls and GCC properly
optimizes out square2 and square3.  If syscalls were added, the bug would be
about missed attributes on the syscalls.  BTW, getgid, getuid etc. are pure but
not const.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]