This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: GCC/GLIBC and non-temporal instructions
Well, all these
storent
emit_storent_insn
may_use_storent_in_loop
storent_optab
nontemporal
assign_set_nontemporal_move
mark_nontemporal_store
mark_nontemporal_stores
nontemporal_store_p
schedule_prefetches
should_issue_prefetch
issue_prefetch_ref
etc.
things in GCC sources -- do they ever get triggered or not?
Also, looking up in GLIBC sources I can see MOVNTxxx instructions terminated
with SFENCE, but not prefixed with LFENCE. What could this possibly mean?
- Sergey
----- Original Message ----
From: Ian Lance Taylor <iant@google.com>
To: Sergey Oboguev <oboguev@yahoo.com>
Cc: gcc@gcc.gnu.org
Sent: Tue, January 3, 2012 11:24:15 AM
Subject: Re: GCC/GLIBC and non-temporal instructions
Sergey Oboguev <oboguev@yahoo.com> writes:
> The question is whether there is any GCC/runtime policy on non-temporal
> SSE/3DNow instructions?
As far as I know gcc will never generate any non-temporal instructions,
except if the programmer uses the special intrinsic functions which
generate them. If the programmer uses those intrinsic functions, she or
he is entirely responsible for issuing the required fence instructions,
via intrinsic functions like _mm_lfence.
So the GCC/runtime policy on non-temporal instructions is that using
them correctly is entirely up to the programmer.
Ian