Hi Brian,

Actually GMP had an expression template header which completely eliminated
copying of large objects. Move semantics and r-value references goes some
way towards this but doesn't completely save the allocation and freeing of
values unnecessarily.

Anyway, I haven't looked at the code, but I am sure it will be fine.

I think we definitely should be using __INTEL_COMPILER. I can see instances
where that is used, but in longlong_inc.h in a few places we had
INTEL_COMPILER, which I am sure is a mistake.

In particular it is/was used incorrectly in
mpn/x86_64/longlong_inc.h, mpn/x86w/longlong_inc.h,
mpn/x86/i386/longlong_inc.h, mpn/x86/longlong_inc.h,
mpn/x86_64w/longlong_inc.h

I will fix the the *nix ones.

Bill.


On 17 April 2013 14:38, Cactus <[email protected]> wrote:

> I have just committed an update to MPIR's C++ header (mpirxx.h) to bring
> it into line with the update that Marc Glisse did for GMP some time ago
> (thanks Marc).
>
> While doing this I found an issue with the predefined symbol we use to
> detect the Intel compiler - we use INTEL_COMPILER but on Windows, at least,
> the two possible defines are __INTEL_COMPILER and __ICL. As far as I can
> tell the equivalent defines on Unix/Linux are __INTEL_COMPILER and __ICC.
>  So I don't believe that INTEL_COMPILER is correct on either platform.
>
> I have changed the INTEL_COMPILER define in all Windows specific files to
> __INTEL_COMPILER and ensured that the __ICL define is used where
> appropriate.
>
> But I have NOT updated any Unix/Linux specific files since the defines
> need to be checked out by an Intel compiler user on Unix/Linux. It may also
> be necessary to choose the __INTEL_COMIPLER define for code that is OS
> neutral or __ICC for code that is to run only on Unix/Linux.
>
> On another issue, since the Visual Studio, the Intel and the GCC compilers
> all support a useful common subset of C++11 features, I have conditionally
> enabled these (depending on compiler version numbers).
>
> The Microsoft v11 compiler in Visual Studio 2012 is not as complete as the
> other two but those who are adventurous can use the November CTP release at
> http://www.microsoft.com/en-gb/download/details.aspx?id=35515 to obtain
> and try additional C++11 features soon to be added to Visual Studio 2012.
>
> The addition of r-value references and move semantics in particular should
> improve C++ performance by eliminating the unnecessary copying of large
> objects.
>
>    Brian
>
>  --
> You received this message because you are subscribed to the Google Groups
> "mpir-devel" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/mpir-devel?hl=en.
> For more options, visit https://groups.google.com/groups/opt_out.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/mpir-devel?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to