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.
