Wrapper source file?

Wrapper source file?


I recently started using IVF 8.0. So far I could build my CVF projects with IVF, but I did get some warnings:

With CVF I frequently wrapped several separate source files in one wrapper source file (through multiple include statements) because this should improve some optimizations between procedures.
When I build these projects with IVF, I get the warning for each individual module that it has been vreated by both the wrapper source file and the individual source file. Is combining source files in one file no longer required to improve inter-procedure optimizations?

I also get the following warning when compiling the release version:

ifort: Command line warning: invalid assembly listing configuration '-FAST'

Is this compiler setting not converted with project conversion from CVF to IVF?


Walter Kramer

6 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Are you also asking for assembly listings? -fast implies -ipo, I think, and that will interfere with assembly listings.

Indeed, one of the nice features of Intel Fortran is its support for multi-file interprocedural optimization. So no, you don't need wrapper files anymore.

I suggest you look at Volume 2 of the Intel Fortran User's Guide which covers optimization topics.

Retired 12/31/2016

Thank you,

No I didn't order Assembly listings. I did notice something odd though. Although I didn't orderlistings, they where still created. Not in in the intermediate directory, but in the project directory.

I then orderedassembly listings which where created in the intermediate directory (I do compile from the IDE).

Now after switching back to "no listings", the assembly listings in the project directory where not recreated. I thenreintroduced the /fast option and recompiled. The previous error didn't reoccur (although I now did get error: problem during multi-file optimization compilation).

I think I will just interprete this as one of the many miracles of micro-electronics, and admire what I don't understand.

I also have an additional question that has nothing to do with the previous:

Is it correct that help and documentation for fortran is not integrated into the IDE like it was with CVF or is there somthing wrong with my installation?

I can only see help topics for Visual C++, Visual C#, Visual J#, Visual Basic etc, but not for Intel Visual Fortran.


Walter Kramer

Message Edited by wkramer on 06-27-2004 05:50 AM

Correct - the help is not integrated in the IDE, due to technical difficulties in making the cross-book jumps work right. We're investigating a solution for a future release. Note that the property pages have their own built-in help.

Retired 12/31/2016

Ah ... I think I understand.

Is there a chance that the switch was converted to /FAST ... all in uppercase?
That would certainly explain the weirdness, and would also explain why it worked when you explicitly typed /fast

The CVF driver had some switches that were case sensitive, but the (much) greater majority were not. The IVF driver has a larger set of switches that are case sensitive, and one of them is /FAfilename, which indicates that you want an assembly language output. The driver was confused by /FAST, thinkiing it meant you wanted an assembly language output named ST.

- Lorri

You are right, the buildlog.txt file looks like this and contains an all capital /FAST:

------ Build started: Project: Newdlogm, Configuration: Release|Win32 ------
ifort /nologo /O3 /G6 /assume:buffered_io /align:dcommons /align:sequence /iface:cvf /module:"Release/" /object:"Release/" /libs:static /threads /c /FAST i:IvfIncludeNewdlogmNewdlogm.f90
ifort: Command line warning: invalid assembly listing configuration '-FAST'
Creating library...
Lib /OUT:"Release/Newdlogm.lib" /NOLOGO Release/Newdlogm.obj
xilib: executing 'lib'

Newdlogm build succeeded.
The CVF Newdlogm.dsp file looks like this for the release version:

!IF "$(CFG)" == "Newdlogm - Win32 Release"
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE F90 /compile_only /nologo /warn:nofileopt
# ADD F90 /architecture:pn2 /assume:buffered_io /assume:noaccuracy_sensitive /compile_only /math_library:fast /nologo /optimize:5 /threads /tune:pn2 /warn:nofileopt /fast
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
I can only see two "fast" strings here, one for the math_library: fast and one /fast for inlining for speed.

I hope it makes sense to you. As far as I am concerned, I can live with the present situation.


Walter Kramer

Leave a Comment

Please sign in to add a comment. Not a member? Join today