Software Archive
Read-only legacy content
17061 Discussions

Integration of Open Watcom C++ compiler - details, performance evaluation, etc

SergeyKostrov
Valued Contributor II
3,607 Views
*** Integration of Open Watcom C++ compiler - details, performance evaluation, etc *** Welcome Back, Open Watcom C++ compiler! At the end of 2015 a decision was made to integrate Open Watcom C++ compiler v1.9 with a project I've been working on since 2009. I used Watcom C++ compiler in the middle of 90th ( last century! ) and I know how superior it is when it comes to optimization of C and C++ codes. Honestly, I was concerned about timing of the integration, that is end of the year, Christmas almost "knocks" to the door ( just two weeks before December 24th ), however a significant portion of the integration was completed in about 6 hours and I managed to compile C/C++ sources and executed some test-cases. Even if the work is still in progress on stabilizing codes and solving some little technical problems I could say that The Legendary Watcom C++ compiler is Not at the top of a list of the Modern optimizing C/C++ compilers. First of all, because version 1.9 is 32-bit only and does Not fully support, or does Not support At All, some Hot-Modern technologies. There is No support of SSE 2.x, SSE 4.x, AVX, AVX2, FMA instructions, OpenMP, Intel intrinsic functions, etc. But, don't be too frustrated because Open Watcom C++ compiler team is working, this is an Open Source Project now, and I hope that a new version of Open Watcom C++ compiler will be released in the future. I will follow up with more technical details and performance evaluation numbers on a set of scientific algorithms later. I will demonstrate how good Open Watcom C++ compiler is compared to Borland, MinGW, Microsoft, Intel and Turbo C++ compilers.
0 Kudos
90 Replies
SergeyKostrov
Valued Contributor II
243 Views
[ To Ahmed S. ] Any questions? Is there anything I need to explain with more details, or to provide more information? Just let me know.
0 Kudos
SergeyKostrov
Valued Contributor II
243 Views
Here is some update... >>... >>...That is why integration of Watcom C++ compiler is Not exception and two small core >>subsystems of the library are improved already... >>... An impact of integration of Watcom C++ compiler is very positive for the project since one subsystem, an Intrinsic Run Time Abstraction Layer ( IRT AL ), was redesigned completely. A Domain-like architecture was indroduced in a new design. However, it took for me more than 3 weeks and it was a little bit unexpected. Some overall details about the Domain-like architecture of the Intrinsic Run Time Abstraction Layer ( IRT-Domains AL ) could be provided.
0 Kudos
Bernard
Valued Contributor I
243 Views

>>>I wanted to say that even if a priority of some STL-based processing ( a function, or a set of functions, etc ) is boosted to Above Normal or Time Critical it can not outperform a processing ( a function, or a set of functions, etc ) implemented in pure C language>>>

This is quite interesting observation.

More than one month ago I posted question about the problem related to using #pragma prefetch on STL std::vector. I observed during the compilation phase ICC issued warning about the incompatibility of that #pragma and simply disabled it. Now by reading your answer I came to conclusion that probably ICC  did not recognize std::vector as a plain dynamically allocated array (template parametrized on T) wrapped in object. 

0 Kudos
Bernard
Valued Contributor I
243 Views

@Sergey

What is your opinion on template meta-programming as a mean of compiler type safe attempt to perform some computation at compile time? Judging by my own experience inclusion of  small meta-functions can actually be "computed" at the compile time. Here I mean "metafunctions" for computation of trigo functions (without extensive argument checking).

0 Kudos
SergeyKostrov
Valued Contributor II
243 Views
>>What is your opinion on template meta-programming as a mean of compiler type safe attempt to perform >>some computation at compile time? Judging by my own experience inclusion of small meta-functions can >>actually be "computed" at the compile time. Here I mean "metafunctions" for computation of trigo functions >>(without extensive argument checking). I do not have a well defined opinion about that. It looks interesting but I think it could create some portability problems. You know that I've been doing a Highly Portable programming and I'm always "on guard" when it comes to usage of something that could create lots of problems some time later.
0 Kudos
SergeyKostrov
Valued Contributor II
243 Views
I'd like to provide an update related to a 64-bit version of Watcom C++ compiler v2.0.0. Even if the compiler and linker, and many different helper utilities, are ported to 64-bit platforms generated binary codes are still 32-bit! I hope that Open Watcom C++ compiler team will finally release a true 64-bit version of the compiler.
0 Kudos
SergeyKostrov
Valued Contributor II
243 Views
In order to see if there are any improvements in version 2.0 compared to a previous version 1.9 see that thread: ... https://software.intel.com/en-us/forums/watercooler-catchall/topic/673458
0 Kudos
Reply