This is the mail archive of the gcc-patches@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]

Re: [PATCH, v8] Vectorized _cpp_clean_line


Richard Henderson <rth@redhat.com> writes:

>> * Perform a runtime check if SSE insns can be executed;
>>   cf. gcc/testsuite/gcc.target/i386/sse-os-support.h.
>
> Easy, though irritating.

Indeed.  I thought about integrating it into cpuid.h, but it probably
doesn't really belong there.

>> * On Solaris 10+, link executables using libcpp.a with a linker mapfile
>>   like gcc/testsuite/gcc.target/i386/clearcap.map.
>
> Difficult and irritating.  There's no assembler flag or
> directive that can force the flag the way we want?

Unfortunately not.  I'll file an RFE for that.

>> I'm not sure if the performance gain from this code is worth the effort,
>> though.
>
> Certainly not for SSE4.2.
>
> Is Solaris 10 a 64-bit OS?  We could leave the SSE2 code
> path enabled for 64-bit, where we know SSE2 must be present.
> That's still quite a bit faster than the integer code path.

Solaris 10+ boots in 64-bit mode if the hardware supports that, but still
allows booting on 32-bit hardware.  I'm not completely sure what the
minimal hardware requirements are, though.  On the other hand, on S10
one could use getisax(2) to determine if some ISA extension is supported
by both the hardware and the OS:

	http://docs.sun.com/app/docs/doc/816-5167/getisax-2?l=all&a=view

Unfortunately, this is not available in Solaris 8/9, otherwise the
contortions in sse-os-support.h wouldn't be necessary.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


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