I'm trying to build a heavily templated application for IA32 with the Intel C++ Compiler for Windows, version 18.104.22.1684, running on 64-bit Windows 7. Unfortunately, however, the IA32-targetting icl.exe (and mcpcom.exe) seem to be 32-bit binary, and errors out after trying to allocate more than 4GB (which is obviously impossible for a 32-bit binary).
Is there a 64-bit version of the Intel C++ compiler available which is able to target IA32? It seems that currently only the reverse is supported, i.e. an IA32-binary which produces code for Intel64. Can I somehow convince Intel64/icl.exe to produce code for IA32?
I know that the linux version of the Intel C++ Compiler *does* support that kind of cross-compiling, but that doesn't help since I need to target Windows, not Linux? Unless there's a way to cross-compile on Linux for Windows, of course...
If there's no support for that kind of cross-compiling, are there any compiler flags which I might use to conserve memory, apart from disabling inlining? (My app absolutely depends on inlining for performance. There are a lot of functions which compile to a single SSE instruction). I'm already using /Qip-, which seems to help a bit, but maybe there are others...