Dependency list generation

Dependency list generation

It appears as though ifort doesn't have an equivalent to the gcc "-M" feature (the dependency rule builder). Are there plans to implement this option in the (hopefully) near future? I have a mixed-language project that has well over 1,000 Fortran files and an additional 300 Fortran INCLUDE files (plus a bunch of source files in other languages), and "make" dependencies right now are done via "gcc -MT" for C and C++ source, an extremely inefficient script to handle the Fortran dependencies. It would be awesome if the compiler could do this for us, since presumably all of the code to traverse INCLUDE-file chaining is already in there....

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

We expect to offer this in the next major release of the compiler.

Steve - Intel Developer Support

Quoting - Steve Lionel (Intel)

We expect to offer this in the next major release of the compiler.

Excellent, thanks. Also, would it be possible to implement the gcc "-pipe" argument as well? It basically means that no temporary files are created to pass data between the various compilation stages; pipes are used instead. This is useful on machines that process many small source files and is also much faster (at least in the gcc world). We've been noticing that since the 8.0 release, the time to compile has gone up significantly (several orders of magnitude)......our package used to take under 3 minutes to compile with 8.0, but now takes almost 20 with 11.0.

Thanks.

Interesting idea. I'll submit a request w/Development.

If there's a particular file(s)showing increased compile time then we could provide those to Development to investigate if you areinterested.

Are you able to try 11.1?

I recently submitted the request for -pipe on behalf of another customer - the issue ID is DPD200140846. However, this is difficult to do with the current compiler structure so don't get your hopes up too much.

Steve - Intel Developer Support

Quoting - Kevin Davis (Intel)

Interesting idea. I'll submit a request w/Development.

If there's a particular file(s)showing increased compile time then we could provide those to Development to investigate if you areinterested.

Are you able to try 11.1?

We have had problems getting 11.1 to work with our package -- I'm still trying to dig up the details of that.

Regarding 11.0, the particular file I'm looking at compiled with 0.080s of user time and 0.040s of system time using 8.1, however with the same compiler arguments and the same file compiled using 11.0, it takes 8.090s of user time and 0.110s of system time (this is on a dual-processor P4 Xeon 3.4GHz; model 4, stepping 3). I'm working to create a non-proprietary version of this source file to upload for demonstration, however I have narrowed down the specific compiler flag that creates the problem: -dyncom "BLOCK_NAME". In our particular case, "BLOCK_NAME" is a common block that is around 2.8MB in size, with a whole assortment of structures, unions, character strings, and arrays. If I remove the "-dyncom BLOCK_NAME" argument from the 11.0 compiler, compile times drop down to near-8.1 levels.

The details of the source file in question: it is basically a set of 100 IF-ELSE IF blocks that set 3 variables (2 INTEGER*4 and 1 CHARACTER*40) in the above-mentioned COMMON block for each "ELSE IF" condition. Again, I'll post a non-proprietary equivalent once I get it finished.

Did you implement this feature (dependency list generation)?

I have looked into the "ifort /help" but I couldn't find anything.

I am using version:

Intel(R) Visual Fortran Compiler XE for applications running on IA-32, Version 13.1 Build 20130118

Copyright (C) 1985-2013 Intel Corporation. All rights reserved.

Regards,

Luiz

This has been implamented. The options are as follows:

/[no]gen-dep[:filename]

           generate dependency information.  If no filename is specified,

           output to stdout

/gen-depformat:keyword

           generate dependency information in the specified format

.           One of:  make, nmake

Linux and Mac formats are similar:

-[no]gen-dep[=filename]  and -gen-depformat=keyword

so

-gen-dep=my_makefile.mak -gen-depformat=make

ron

Leave a Comment

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