[i386] __builtin_ia32_stmxcsr could be pure

Marc Glisse marc.glisse@inria.fr
Fri May 26 08:57:00 GMT 2017


Hello,

glibc marks fegetround as a pure function. On x86, people tend to use 
_MM_GET_ROUNDING_MODE instead, which could benefit from the same. I think 
it is safe, but a second opinion would be welcome.

I could have handled just this builtin, but it seemed better to provide 
def_builtin_pure (like "const" already has) since there should be other 
builtins that can be marked this way (maybe the gathers?).

Bootstrap+testsuite on x86_64-pc-linux-gnu with default languages.

2017-05-29  Marc Glisse  <marc.glisse@inria.fr>

gcc/
 	* config/i386/i386.c (struct builtin_isa): New field pure_p.
 	Reorder for compactness.
 	(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
 	(def_builtin_pure, def_builtin_pure2): New functions.
 	(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

gcc/testsuite/
 	* gcc.target/i386/getround.c: New file.

-- 
Marc Glisse
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pure.patch
Type: text/x-diff
Size: 7580 bytes
Desc: 
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20170526/21ac8838/attachment.bin>


More information about the Gcc-patches mailing list