Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

/Qvec-report6 report is sometimes missing file name and line number information

Marian_M_
Beginner
871 Views

I have script in msysgit to take compile log from /Qvec-report6 from MSVC IDE, then grep vectization and other useful informations, then pipe it to "sort | uniq", to eliminate similar messages (e.g. implicitly inlined function in header for class).

It emits these (NB: it is uniq'ed):

2>      remark: loop was not vectorized: existence of vector dependence
2>      remark: loop was not vectorized: nonstandard loop is not a vectorization candidate
2>      remark: loop was not vectorized: statement cannot be vectorized
2>      remark: vectorization support: call to function ??1c_fft_equalizer_stats_data@@QEAA@XZ cannot be vectorized
2>      remark: vectorization support: call to function _aligned_free cannot be vectorized
2>      remark: vectorization support: call to function fftw_free cannot be vectorized
2>      remark: vectorization support: number of FP down converts: double precision to single precision 1

instead of something like this:

2>      C:\path\to\common\recorder7_pipe_comm.cpp(52,5): message : loop was not vectorized: nonstandard loop is not a vectorization candidate
2>      c:\path\to/hashmap.h(764,1): message : loop was not vectorized: unsupported loop structure

I'm on Win 8.1 Pro x64, x64 target and ICC 14 with the latest updates.

0 Kudos
21 Replies
TimP
Honored Contributor III
764 Views
Vecreport4 is a closer replacement but the older scripts broke with version 14..
0 Kudos
Marian_M_
Beginner
764 Views

Tim Prince wrote:

Vecreport4 is a closer replacement but the older scripts broke with version 14..

Actually my own script is not older than one month. But my point is to report bug in LTCG, as sometimes it emits "mysterious" "remark" or "message" without file name and a line information, so I am unable to get a clue for which loop or block the "remark" or "message" belongs. And the project is fairly huge to reproduce the bug by some heuristic tests...

So I want to know from where those "remarks" come from.

TIA!

0 Kudos
Marian_M_
Beginner
764 Views

Or better said, is it known bug?

0 Kudos
KitturGanesh
Employee
764 Views

I tried with 14.0 version and it did output the filename as well and couldn't reproduce the error. Can you attach a reproducer?!

C:\test\main.cpp(10): (col. 4) remark: loop was not vectorized: nonstandard loop is not a vectorization candidate
C:\test\main.cpp(10): (col. 4) warning #13379: loop was not vectorized with "simd"

_Kittur 

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

Well, this is mutually exclusive. If the message had a file name and line number, I could discover which loop is causing the bug. But then it would mean that there is no bug at all.

And the project is really huge, uses many 3rd-party opensource libraries as dependencies, and (so far) it is not opensource, so I don't want to disclose the code.

It would be really hard for you to build it.

0 Kudos
KitturGanesh
Employee
764 Views

Thanks Marian for the response, understood.  Can you let me know your input on the following:

1) The missing filename remark or message is output for some loops and not on others for which you do see the filename? Or is it for the whole output for the application build?

2) Also, can you check the file containing such a remark to see if it contains the filename on top of the remark/message lines as below (example):

LOOP BEGIN at C:\test\main.cpp(4,9)
   remark #15520: loop was not vectorized: loop with early exits cannot be vectorized unless it meets search loop idiom criteria
LOOP END

Thanks, 
_Kittur

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

Kittur Ganesh (Intel) wrote:

1) The missing filename remark or message is output for some loops and not on others for which you do see the filename? Or is it for the whole output for the application build?

for like 99% I see full filename and line numbers. Reported case is very rare in the output.

Kittur Ganesh (Intel) wrote:

2) Also, can you check the file containing such a remark to see if it contains the filename on top of the remark/message lines as below (example):

LOOP BEGIN at C:\test\main.cpp(4,9)
   remark #15520: loop was not vectorized: loop with early exits cannot be vectorized unless it meets search loop idiom criteria
LOOP END

I will try to not compile it with IPO, but IP rather, to see report for files individually (so no LTCG), to try figure out which *.cpp is/are causing the problem. But for now I need to fix some bugs, I will come back to you.

BTW how can I achieve under MSVC 2013 and ICC 14 (the latest) output like you wrote "LOOP BEGIN at C:\test\main.cpp(4,9)" ?

TIA!

0 Kudos
KitturGanesh
Employee
764 Views

Thanks for your input Marian.

> BTW how can I achieve under MSVC 2013 and ICC 14 (the latest) output like you wrote "LOOP BEGIN at C:\test\main.cpp(4,9)" ?

Good question. Actually, the optimization report has been redesigned with a more user friendly report (integrating all individual reports into a single report) in the recently released 15.0 version which you can download from the Intel Registration Center.  The reason I asked the second question was to see if by any chance the 15.0 compiler was used? But, since you say it did happen with 14.0 but rarely I'll file the issue anyways letting the developers know accordingly.

To quickly get the complete highlights of the redesigned optimization report, please refer to the article at: 

    https://software.intel.com/en-us/articles/getting-the-most-out-of-your-intel-compiler-with-the-new-optimization-reports 

I'd suggest you upgrade to the 15.0 release and you'll see the nicer report and better control of the output accordingly. 

Thanks, Kittur

 

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

Actually I can't use ICC 15, since when I am compiling FFTW with it, it is crashing with insane unmeaningful error messages like ": : backend signals", assertion failures and so on... I was reporting reproducer when it was in beta-stage, but nothing happened.

Is it really so hard for to make a build bot, and do unit tests over and over (often user-supplied) when some engineer make change into repository? Even bug that has been fixed in 14 series appeared again in 15... It looks like 15 was written from the scratch.

0 Kudos
KitturGanesh
Employee
764 Views

Marian, the validation team does run a lot of user supplied tests as well in addition to a large number of regression tests and so on and do a full validation. Sorry to hear you've encountered the same bug from beta in release as well. If you've filed that issue in Premier Support against the product please add a note there and let the engineer handling that issue know. If not, please don't hesitate to file a new issue in Premier Support or in this forum as well. Do you know the issue number you filed against the beta? It's important that the issue you mention be fixed and appreciate your patience.

Thanks,
Kittur 

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

I am sorry for being so rude, but I have hard day behind me.

I will try ICC 15 and see what it will give, and attach reproducer (FFTW is opensource, so there is no problem, though, it is modified by my automatic patch utility to prepend before each "#pragma ivdep").

But give me some time please, I need to debug issue in IDE in my code, and debug build is extremely slow, and AFAIK installing ICC 15 requires MSVC to not be running.

0 Kudos
KitturGanesh
Employee
764 Views

Hi Marian, no problem and completely understandable. BTW, the issue you have filed already (that I find) is:

   6000052323: LTCG linker throws internal error ICC 15.0 (package 054, 070)

The above issue should be fixed and the support engineer handling the issue will touch base with you soon for further investigation. Sorry for the inconvenience and appreciate your patience till then. Also, could you (when you are a little free and have some time) let me know if you have any other issues (regressed) by issue ID? That will be very useful for me to pass on to the product team to investigate further, appreciate much.

Thanks much,
Kittur

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

I am attaching reproducer as "fftw.7z".

Instructions:

1. Haswell (there is /QxHOST), x64 Windows

2. cd into "\fftw\win32\"

3. execute "!run_me_to_build.cmd", and observe following error:

"C:\Users\vdmn\Documents\develop\Recorder7.1\tmp\22\fftw-2\win32\fftwl.sln" (Re
build target) (1) ->
"C:\Users\vdmn\Documents\develop\Recorder7.1\tmp\22\fftw-2\win32\libfftwl.vcxpr
oj" (Rebuild target) (2) ->
(Link target) ->
  ": : error : ** segmentation violation signal raised ** [C:\Users\vdmn\Docume
nts\develop\Recorder7.1\tmp\22\fftw-2\win32\libfftwl.vcxproj]
  xilink: : error #10014: problem during multi-file optimization compilation (c
ode 4) [C:\Users\vdmn\Documents\develop\Recorder7.1\tmp\22\fftw-2\win32\libfftw
l.vcxproj]
  xilink: : error #10014: problem during multi-file optimization compilation (c
ode 4) [C:\Users\vdmn\Documents\develop\Recorder7.1\tmp\22\fftw-2\win32\libfftw
l.vcxproj]

    2 Warning(s)
    3 Error(s)

Time Elapsed 00:00:18.64
Press any key to continue . . .

Please, make a check whether is it the same issue.

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

@Kittur Ganesh (Intel)

I was told that your engineers prefer scripted reproducers. I hope I did my mission at 100%. Could you please tell me whether compilation pass on upcomming update, or not?

And I know you can't speak publicly about Intel's future plans, but is there some public timeline when next update of ICC 15 will take place? Like e.g. which month? I must admit I'm impatient...

TIA!

0 Kudos
KitturGanesh
Employee
764 Views

Hi Marian,

Yes, it's the same issue and I did confirm from my peer that it's fixed in the upcoming release and will let you know as soon as that's out. Appreciate your patience till then.

_Regards, Kittur 

0 Kudos
KitturGanesh
Employee
764 Views

Hi Marian, I sent you a private email as well, fyi.

_Kittur

0 Kudos
KitturGanesh
Employee
764 Views

BTW Marian, on the missing file name and line number info issue our developers aren't able to reproduce the error. With 14.0, unless there's a test case reproducer it's hard for the developers to fix that issue. BTW, as mentioned earlier the 15.0 version has the redesigned optimization report/options and you should find that more user friendly than 14.0 after you upgrade to it.

_Kittur 

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

Kittur Ganesh (Intel) wrote:

BTW, as mentioned earlier the 15.0 version has the redesigned optimization report/options and you should find that more user friendly than 14.0 after you upgrade to it.

Yes, I have it installed side-by-side along with 14.0, but I'm stuck with that FFTW problem, and therefore IL version incompatibility. FYI, I don't want to touch MKL, because I believe FFTW is faster when it is compiled for current CPU (/QxHOST) than possible branch misprediction in CPU-type-dispatching in MKL.

0 Kudos
Marián__VooDooMan__M
New Contributor II
764 Views

...or excessive branching, i.e. flushing pipelines in L1-instruction cache, though Haswell is nice architecture to make it fast, but I just want to use FFTW.

0 Kudos
Marián__VooDooMan__M
New Contributor II
688 Views

@Kittur Ganesh (Intel)

You don't need to send me private messages, as this thread (FFTW + ICC 15) as it turns to this, I check regurarily, by pressing F5 (refresh) for like few times a day.

But I thank you to be so kind.

0 Kudos
Reply