On Fri, 12 Aug 2011, Uros Bizjak wrote: > On Thu, Aug 11, 2011 at 2:50 PM, Richard Guenther <rguent...@suse.de> wrote: > > >> Currently, conversion from floating point to integer on 64bit targets > >> goes through DImode temporary, due to missing BUILT_IN_ICEIL (and > >> other) builtins that can convert directly from FP to integer. > > > Please document those in doc/extend.texi and make sure they do not > > leak into the global namespace as ifloor, etc., but are only available > > as __builtin_ifloor, etc.. Please also add at least a testcase > > that excercises expanding all of the variants - like by simply > > writing wrappers with the non-__builtin_ name variant like > > Regarding the documentation, I found this in the @section Other > built-in functions provided by GCC: > > <quote> > > GCC provides a large number of built-in functions other than the ones > mentioned above. Some of these are for internal use in the processing > of exceptions or variable-length argument lists and will not be > documented here because they may change from time to time; we do not > recommend general use of these functions. > > The remaining functions are provided for optimization purposes. > > </quote> > > These new functions definitely fall under this category, and for the > same reason we didn't document lceil/lfloor builtins. They are used > internally for optimization purposes and the same functionality can be > achieved by simply writing (int) ceil (...).
Hmm, I see. It's unfortunate that we have no place to document their semantics though, even if just internal (for lceil we have the named pattern docs in md.texi). Now, our internal documentation is in a sorry enough state to not bother trying to add a new section about internal builtins somewhere ... (?) I'd add it to gimple.texi in a new section 'Internal builtin functions'. Richard.