Author Topic: Intel C++ Compiler Support  (Read 14227 times)

Offline Ptomaine

  • Multiple posting newcomer
  • *
  • Posts: 37
Intel C++ Compiler Support
« on: October 19, 2005, 10:23:06 am »
Wanna ask for the Intel C++ support. I think this compiler is worth to support 'cause it's gonna be one of the standard compilers under MacOSX for Intel platforms in March 2006. And just 'cause it's the greatest compiler I've ever tested, I suppose.
The Real Beauty Is Not The One That You Look At With Admiration But The One You Close Your Eyes At.

Offline Urxae

  • Regular
  • ***
  • Posts: 376
Re: Intel C++ Compiler Support
« Reply #1 on: October 19, 2005, 11:30:43 am »
I've never used it, but from what I've heard of it it basically emulates the VC++ command line on Windows, and the GCC command line on Linux.

So what you might want to try is this:
  • Go to Settings -> Compiler.
  • Make a copy of the emulated compiler for your platform.
  • Rename it to "Intel C++" or similar.
  • Change the name and location of the binaries in the compiler settings to those of the Intel compiler.
  • Use it :D

Hope this helps.

Offline polygon7

  • Multiple posting newcomer
  • *
  • Posts: 104
    • Home site
Re: Intel C++ Compiler Support
« Reply #2 on: October 19, 2005, 02:31:05 pm »
Wanna ask for the Intel C++ support. I think this compiler is worth to support 'cause it's gonna be one of the standard compilers under MacOSX for Intel platforms in March 2006. And just 'cause it's the greatest compiler I've ever tested, I suppose.

Search C::B forum for "intel C++". Hint: Troubleshooting subforum.
best regards,
p7
 Free open source UML modeling tool: ArgoUML

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Intel C++ Compiler Support
« Reply #3 on: October 19, 2005, 05:43:25 pm »
Perhaps this should go in the wiki or something...

Edit: Just added it. (21/Oct/05), however I still think it should go internally due to popular demand.
« Last Edit: October 22, 2005, 01:07:53 am by rickg22 »

Offline Ptomaine

  • Multiple posting newcomer
  • *
  • Posts: 37
Re: Intel C++ Compiler Support
« Reply #4 on: October 21, 2005, 09:21:07 pm »
I've never used it, but from what I've heard of it it basically emulates the VC++ command line on Windows, and the GCC command line on Linux.

So what you might want to try is this:
  • Go to Settings -> Compiler.
  • Make a copy of the emulated compiler for your platform.
  • Rename it to "Intel C++" or similar.
  • Change the name and location of the binaries in the compiler settings to those of the Intel compiler.
  • Use it :D

Hope this helps.

You are absolutely wrong!
It supports features that none of the now-a-days-monster-compiler does! It generates code that about 10 times faster than the other compilers can produce.

It understands MS C++ compiler options and GCC for Linux. Namely, UNDERSTANDS and supports! It generates completely different, incredibly fast code for Intel processors.
It has its own command line options for optimization and code generation. It's hard to tune a project if an IDE has no support for them. That's why I create this forum thread.

I want to listen to the author's opinion who's writing the Code::Blocks now. Is it hard to implement the feature I ask?
You can download the Intel C++ compiler at Intel official site to test it and to read its documentation regarding its options.
The Real Beauty Is Not The One That You Look At With Admiration But The One You Close Your Eyes At.

Offline polygon7

  • Multiple posting newcomer
  • *
  • Posts: 104
    • Home site
Re: Intel C++ Compiler Support
« Reply #5 on: October 21, 2005, 10:49:11 pm »
It has its own command line options for optimization and code generation. It's hard to tune a project if an IDE has no support for them. That's why I create this forum thread. (...) Is it hard to implement the feature I ask?

http://forums.codeblocks.org/index.php/topic,604.0.html
best regards,
p7
 Free open source UML modeling tool: ArgoUML

Offline Ptomaine

  • Multiple posting newcomer
  • *
  • Posts: 37
Re: Intel C++ Compiler Support
« Reply #6 on: October 22, 2005, 12:35:25 am »
Thank you good guy polygon7
Sorry, I didn't notice your previous hint  :?

Thanks again.


P.S. But I think Code::Blocks might support it natively  8)
The Real Beauty Is Not The One That You Look At With Admiration But The One You Close Your Eyes At.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Intel C++ Compiler Support
« Reply #7 on: October 22, 2005, 01:06:54 am »
I agree! This way we can get rid of the manual config. Stuff - after all, if we could manage to add other compilers, how hard will it be to clone one? I'm sure it will be easier to have ONE programmer to add it, than having to do tech support about 10 times :P

Now, If I only knew how to add the compilers internally...  :oops:

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Intel C++ Compiler Support
« Reply #8 on: October 22, 2005, 09:19:41 am »
I agree! This way we can get rid of the manual config. Stuff - after all, if we could manage to add other compilers, how hard will it be to clone one? I'm sure it will be easier to have ONE programmer to add it, than having to do tech support about 10 times :P

Now, If I only knew how to add the compilers internally...  :oops:

Rick's new task: add Intel compiler support  :P

For anyone interested, steps to add native support for the INTEL (or any other) compiler:
  • Copy compilerMSVC.(cpp|h) to compilerINTEL.(cpp|h). (in plugins/compilergcc).
  • Adjust contents of compilerINTEL.cpp to support the new compiler.
  • Add #include "compilerINTEL.h" in compiler.gcc
  • In compilergcc's constructor, where it says "// register built-in compilers", add "CompilerFactory::RegisterCompiler(new CompilerINTEL);"
  • Build.
Be patient!
This bug will be fixed soon...

Offline Urxae

  • Regular
  • ***
  • Posts: 376
Re: Intel C++ Compiler Support
« Reply #9 on: October 22, 2005, 10:51:58 am »
For anyone interested, steps to add native support for the INTEL (or any other) compiler:
  • Copy compilerMSVC.(cpp|h) to compilerINTEL.(cpp|h). (in plugins/compilergcc).
  • Adjust contents of compilerINTEL.cpp to support the new compiler.
  • Add #include "compilerINTEL.h" in compiler.gcc
  • In compilergcc's constructor, where it says "// register built-in compilers", add "CompilerFactory::RegisterCompiler(new CompilerINTEL);"
  • Build.

In this case it would seem to be a bit more complicated as Intel C++ seems to accept different command-line parameters on Windows and Linux.
If it doesn't also have a "common" set of parameters that'll work on both (and represents the entire range of possible options the other ones do), supporting it on both platforms might be a bit more work than your average compiler. You might have to either use a lot of #ifdefs in the file, or even use separate files for the Windows and Linux version.
The last one may be preferable if remote developement support is planned as you could then have both versions on your system at the same time, one for your local OS and one for the remote OS.
Of course, I haven't really checked if the supported parameter sets are actually different or if they just swap out '/' (Windows) and '-' (Linux) prefixes when on the other platform. I'm not sure if it's even possible (are there any MSVC command-line parameters that mean something else to GCC?), but if the latter is the case a simple checkbox in the options would probably suffice. Should default to the setting for platform you're currently running, of course.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Intel C++ Compiler Support
« Reply #10 on: October 22, 2005, 08:48:14 pm »
Rick's new task: add Intel compiler support  :P

ACK! I don't know how! :( I've never touched that area of C::B yet :(

Offline yop

  • Regular
  • ***
  • Posts: 387
Re: Intel C++ Compiler Support
« Reply #11 on: October 23, 2005, 04:39:16 pm »
  • Copy compilerMSVC.(cpp|h) to compilerINTEL.(cpp|h). (in plugins/compilergcc).
  • Adjust contents of compilerINTEL.cpp to support the new compiler.
  • Add #include "compilerINTEL.h" in compiler.gcc
  • In compilergcc's constructor, where it says "// register built-in compilers", add "CompilerFactory::RegisterCompiler(new CompilerINTEL);"
  • Build.

Did the above (in linux to use icc) but I keep getting two sdcc entries instead of the new icc one I've created. The new files are just copies of the compilerMINGW with the path and the app files pointing to icc, because I just wanted to see how the new compiler will be added and then proceed with the rest (compiler options etc).
Life would be so much easier if we could just look at the source code.

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Intel C++ Compiler Support
« Reply #12 on: October 23, 2005, 05:42:56 pm »
Try renaming "~/.Code::Blocks v1.0" to something else. Maybe your configuration is somehow screwed.
Or, run a 'cvs diff > diff.txt' and attach it here to see what's wrong.
Be patient!
This bug will be fixed soon...

Offline yop

  • Regular
  • ***
  • Posts: 387
Re: Intel C++ Compiler Support
« Reply #13 on: October 26, 2005, 10:28:15 pm »
I got it to show up :D. I uninstalled c::b completely removed everything from my home directory got a fresh cvs version added to the copilergcc Makefile.am my new files added the new compiler to the compilergcc.cpp and I built, installed run and then built my projects with Intel's ICC  :D. I'll do some work with the compiler options and submit a patch for the ICC (Linux - non commercial, don't know what the deal is with the windows version). Since I'll get involved in this could someone point out some reading material for regular expressions cause my guess is that I'll need them :wink:
Life would be so much easier if we could just look at the source code.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Intel C++ Compiler Support
« Reply #14 on: October 26, 2005, 11:01:36 pm »
By the way, I was thinking... that file is created by the wxConfigBase, right?

Why not add (in future versions) an #ifdef that changes the name of the configuration entry so that it's something else on linux, like "codeblocks.1.0.conf" ? :)