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

exception when full optimziation (OX)

Ying_H_Intel
Employee
375 Views

The problem as below post, any ideas is appreicated.

0 Kudos
5 Replies
Ying_H_Intel
Employee
375 Views

Hello Detlef,

I just try to build the mpeg2_enc project in IPP sample with release mode and Full Optimization on. But the build processing looks fine. I attached the build log.

Best Regards,
Ying

Build Log
Build started: Project: mpeg2_enc, Configuration: release|Win32
Command Lines
Creating temporary file "C:\Users\yhu5\AppData\Local\Temp\RSP7B6A.bs" with contents
[
/c /Ox /Ob2 /Oi /Ot /Qipo /I "include" /I "\include" /I "..\..\core\umc\include" /I "..\..\core\vm\include" /I "..\..\core\vm_plus\include" /I "..\..\codec\common\include" /I "..\..\codec\color_space_converter\include" /D "WIN32" /D "NDEBUG" /D "_LIB" /D "_IPP_PARALLEL_DYNAMIC" /D "_UNICODE" /D "UNICODE" /EHa /MD /GS- /fp:fast /Fo"..\..\_bin\Win32\release\mpeg2_enc/" /Fd"..\..\_bin\Win32\release\mpeg2_enc/vc90.pdb" /W4 /nologo /Zi /Qvc9 /Qlocation,link,"c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\\bin"
.\src\umc_mpeg2_video_encoder.cpp
.\src\umc_mpeg2_enc_put.cpp
.\src\umc_mpeg2_enc_p_me.cpp
.\src\umc_mpeg2_enc.cpp
.\src\umc_mpeg2_enc_me.cpp
.\src\umc_mpeg2_enc_rc.cpp
.\src\umc_mpeg2_enc_b.cpp
.\src\umc_mpeg2_enc_params.cpp
.\src\umc_mpeg2_enc_i.cpp
.\src\umc_mpeg2_enc_b_me.cpp
.\src\umc_mpeg2_enc_p.cpp
]
Creating command line "icl.exe "@C:\Users\yhu5\AppData\Local\Temp\RSP7B6A.bs""
Creating temporary file "C:\Users\yhu5\AppData\Local\Temp\RSPA683.bs" with contents
[
/OUT:"..\..\_bin\Win32\release\mpeg2_enc\mpeg2_enc.lib" /nologo
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_b.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_b_me.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_i.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_me.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_p.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_p_me.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_params.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_put.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_enc_rc.obj
..\..\_bin\Win32\release\mpeg2_enc/umc_mpeg2_video_encoder.obj
]
Creating command line "xilib.exe "@C:\Users\yhu5\AppData\Local\Temp\RSPA683.bs""


Output Window
Compiling with Intel C++ Compiler XE 12.0.4.196 [IA-32]... (Intel C++ Environment)
umc_mpeg2_video_encoder.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_put.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_p_me.cpp
umc_mpeg2_enc.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_me.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_rc.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_b.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_params.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_i.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

umc_mpeg2_enc_b_me.cpp
umc_mpeg2_enc_p.cpp
..\..\core\umc\include\umc_video_data.h(122): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::VideoData::Alloc" -- virtual function override intended?
Status Alloc();
^

C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\codec\mpeg2_enc\include\umc_mpeg2_enc.h(315): warning #1125: function "UMC::MediaData::Alloc(size_t={unsigned int})" is hidden by "UMC::MPEG2VideoEncoderBase::VideoDataBuffer::Alloc" -- virtual function override intended?
Status Alloc();
^

Creating library... (Intel C++ Environment)
xilib: executing 'lib'
umc_mpeg2_enc_p_me.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
umc_mpeg2_enc_b_me.obj : warning LNK4221: no public symbols found; archive member will be inaccessible
Project : warning PRJ0018 : The following environment variables were not found:
$(IPPROOT)


Results
Build log was saved at "file://C:\Users\yhu5\Desktop\IPP7.0\w_ipp-samples_p_7.0.4.054\ipp-samples\audio-video-codecs\_bin\Win32\release\mpeg2_enc\BuildLog.htm"
mpeg2_enc - 0 error(s), 20 warning(s), 0 remark(s)

0 Kudos
dstralau
Beginner
375 Views
Yes the Build works, that's not the Problem, but if you run the project and call a second time

ReadQMatrices

you got an exception, i don't why.I set the structure allignment to 16 bytes (i saw that the

DefaultIntraQuantMatrix was define asVM_ALIGN16_DECL)

and now it works with compiler option "maximize Speed", but not with "full optimazation".

The Build was made under WIN7 Visual Studio 2010. I also switchedon the comiler flag"optimze for Windows".

In Debug mode everthing works fine, but there is now optimazation.

If you want i give you a test case , but it is very large,

Regard Detlef

0 Kudos
Ying_H_Intel
Employee
375 Views
Hi Detlef,

It looks compiler optimization related. I will consult the Intel Compiler team and see if they have any comments.

Regards,
Ying
0 Kudos
mecej4
Honored Contributor III
375 Views
>It looks compiler optimization related.

That declares guilt by association. It is possible that it is so, but there are other explanations.

When code with bugs is compiled with optimization enabled, there is an increased probability of the bugs surfacing. After all, optimization implicitly assumes that the code is correct, and what the optimization transformations do to buggy code is largely unknown.

I suggest that you compile with no optimization (or a level at which you thought the program functioned correctly) and run the program with a tool such as valgrind or the Intel Inspector. If this does not locate the bugs, you will need to create and post a small but complete program that exhibits the same problems as your large application.
0 Kudos
Ying_H_Intel
Employee
375 Views
Hi Mecej4,

Thanks for the suggestion, the original post is in http://software.intel.com/en-us/forums/showthread.php?t=83298.

Do anyone havesamiliar experienceabout the 16byte alignment, const vm_char* vs. vm_char*when full optimziation?

Thanks
Ying
0 Kudos
Reply