Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

exclude from build vs platform

jimdempseyatthecove
Honored Contributor III
562 Views

Using w_cprof_p_11.0.066 Fortran with VS 2005 I have a solution that I will build as x32 and as x64. x64 MS VC++ cannot perform inline __asm and for x65 platform I have a little helper routine _cpuidEX(eax, ecx) that I use to peek at the extended leaf information off of leaf 4. On the x32 platform, the C++ supports inline assembler, so I have a C++ function containing the _cpuidEX function with __asm block.

The application though is Fortran (with a couple C++ functions).

When building on x32 platform (in VS 2005) I can select the .ASM file and mark it to Exclude From Build. This works fine, however, when then selecting the x64 platform, the Exclude From Build is still selected. i.e. I have to remember to go back and un-Exclude from build.

Why aren't the Excludes from build platform context sensitive. This will not be only an issue with ASM files. An application may very well wish to have different collections of items to include/exclude from different platforms.

This is most likely a MS VS problem, any hints will be welcome.

Jim Dempsey

0 Kudos
3 Replies
jimdempseyatthecove
Honored Contributor III
562 Views

Using w_cprof_p_11.0.066 Fortran with VS 2005 I have a solution that I will build as x32 and as x64. x64 MS VC++ cannot perform inline __asm and for x65 platform I have a little helper routine _cpuidEX(eax, ecx) that I use to peek at the extended leaf information off of leaf 4. On the x32 platform, the C++ supports inline assembler, so I have a C++ function containing the _cpuidEX function with __asm block.

The application though is Fortran (with a couple C++ functions).

When building on x32 platform (in VS 2005) I can select the .ASM file and mark it to Exclude From Build. This works fine, however, when then selecting the x64 platform, the Exclude From Build is still selected. i.e. I have to remember to go back and un-Exclude from build.

Why aren't the Excludes from build platform context sensitive. This will not be only an issue with ASM files. An application may very well wish to have different collections of items to include/exclude from different platforms.

This is most likely a MS VS problem, any hints will be welcome.

Jim Dempsey


x65 (I guess having a 65-bit computer is part of the problem ;)

Jim

0 Kudos
Steven_L_Intel1
Employee
562 Views

This is definitely a VS thing. Our code doesn't get involved in that choice. Perhaps you could do something with a custom build step.

0 Kudos
TimP
Honored Contributor III
562 Views

Microsoft definitely set a preference for SSE intrinsics in C or C++ files as the lowest-level programming model for 64-bit development. These are easy to make work for 32 and 64 bits, Windows and linux, with various brands of C compilers. They haven't caught on in Fortran, although there are Fortran compilers which support them. With Fortran iso_c_binding, it becomes easier to implement C intrinsics. For portability, the C code has to have a conditional compilation escape for the platforms where intrinsics don't work correctly (even though a compiler like Intel C for IA64 may accept them).

0 Kudos
Reply