Quantcast
Channel: Intel® Software - Intel® C++ Compiler
Viewing all 2797 articles
Browse latest View live

can I rely on floating point integer arithmetic working across all optimizations

$
0
0

By a floating point integer I mean a normalised floating point number whose absolute value is less than (in the case of double) 2^53 for which (in the case of double)

double int_part, fractional_part;
fractional_part = std::modf(z, &int_part);

will always yield (either and hence both) zero for fractional_part and equality between the z and int_part. One makes the obvious changes 53-23 etc. for float,...

My basic question is that if I do arithmetic with this subclass of floating point numbers (-, +, *, FMA) can I be completely assured that providing there is no intermediate answer that is too large in absolute value, then, regardless of any compiler optimisation switches, use of scalar or vector operations, the answers will always be predictable, identical and correspond to the answers for the usual commutative and associative integer arithmetic.

I assume the answer is yes, but cannot find the reference that guarantees the results in an optimised setting. Are there explicit statements as to when operations are / are not consistent across the different compiler options or machines. Please note I am asking about whether the binary (or for FMA, ternary) hardware operations are consistent and whether as a result the mutations that arise because of the lack of associativity or identity of these operations that influence compiler optimisations around ordering disappear. Of course I am not asking about division.

After answering this question it becomes interesting to consider the same question including  0 as an integer (with sign chosen so 0-0 == 0) which is +0 unless round-down is enabled (https://en.wikipedia.org/wiki/Signed_zero) when it is -0.

Thanks

Terry 

 


vectorization of operations involving frexp ldexp modf etc.

$
0
0

How would I vectorise (say for avx2) a doubly indexed loop containing the following code:

double f (double lhs, double  rhs)
{
int index;
std::frexp(rhs, index);
auto twopwr = std::ldexp(double(.5), index);
return (lhs * twopwr + (rhs - twopwr);
}

So optimise/vectorise the following:

for (ptrdiff  i= 0; i < end(X) - begin(X) ; ++i)
   for (ptrdiff  j= 0; j < end(Y) - begin(Y) ; ++j)
      ANS.emplace_back( f(*(begin(X)+i), *(begin(Y)+j)) );

Where ANS X and Y are appropriately aligned vectors of doubles. One may reorder the loops. The order in ANS is not important here and can be dealt with elsewhere in the code. Actually f should be template and I need code that works work for floats, doubles, extended doubles, ...

The values lhs and rhs and f(lhs, rhs) are constrained and will always be fully represented positive integer doubles in the sense they are strictly positive and that index is always less than 53 and the integer part of lhs or rhs always equals lhs, rhs respectively. One could size ANS so that there were no memory allocations during the loops.

Suggestions appreciated?

strange symbol in the object file

$
0
0

Hi,all.

When i link to generate executable file after compiled the whole project in 32bits mode, the linker tell me there is a symbol at one object file can not be found! I work at the mac OSX 10.12 and use the intel compiler of version 2018. 

The symbol is '___cvtu64todp_sse2'. I am sure I not define or use the symbol in my whole project.  I use the objdump tool to get more info of the object file.

First, I open the symbol table. I find the strange symbol and it is tagged "UNDEFINED".

......

00000000         *UND* _g_thread_functions_for_glib_use

00000000         *UND* ___gxx_personality_v0

00000000         *UND* _g_threads_got_initialized

00000000         *UND* ___cxa_call_unexpected

00000000         *UND* __Unwind_Resume

00000000         *UND* ___cvtu64todp_sse2

00000000         *UND* __Z11GetLogLevelv

00000000         *UND* __Z17printf_log_helper13AudioLogLevelPKcz

00000000         *UND* _printf

 

Then I open the relocation table, There are a lot of entry of this symbol. A segment of the relocation table:

...

00000391 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
000003b0 GENERIC_RELOC_LOCAL_SECTDIFF 0x40f8-0x2ff
000003d9 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
000003ea GENERIC_RELOC_LOCAL_SECTDIFF 0x4100-0x2ff
00000403 GENERIC_RELOC_LOCAL_SECTDIFF 0x4150-0x2ff
000004ce GENERIC_RELOC_LOCAL_SECTDIFF 0x4098-0x2ff
0000063c GENERIC_RELOC_LOCAL_SECTDIFF 0x40f8-0x2ff
00000657 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
000006a5 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000790 GENERIC_RELOC_LOCAL_SECTDIFF __const-0x2ff
00000797 GENERIC_RELOC_LOCAL_SECTDIFF 0x4140-0x2ff
00000810 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000838 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
0000096c GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
000009df GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000a42 GENERIC_RELOC_LOCAL_SECTDIFF 0x40f8-0x2ff
00000b25 GENERIC_RELOC_LOCAL_SECTDIFF __const-0x2ff
00000b63 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000b86 GENERIC_RELOC_LOCAL_SECTDIFF 0x4140-0x2ff
00000b9a GENERIC_RELOC_LOCAL_SECTDIFF 0x4118-0x2ff
00000bf5 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000c1d GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000cae GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000cd6 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000d67 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000d8f GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000e20 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000e48 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000f36 GENERIC_RELOC_LOCAL_SECTDIFF __const-0x2ff
00000f67 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00000f92 GENERIC_RELOC_LOCAL_SECTDIFF 0x4140-0x2ff
00000fa6 GENERIC_RELOC_LOCAL_SECTDIFF 0x4118-0x2ff
0000100e GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00001036 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00001113 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
00001157 GENERIC_RELOC_VANILLA ___cvtu64todp_sse2
0000119c GENERIC_RELOC_LOCAL_SECTDIFF 0x4150-0x2ff

...

 

Last, I disassembling the object file and display the symbol in the assembly code. I find there are 77 site. Moreover the symbol appear at a almost same code:

......

6a4: e8 57 f9 ff ff calll -1705 <__ZN16ClockrateManagerC1Ev>

        000006a5:  GENERIC_RELOC_VANILLA ___cvtu64todp_sse2

......

 

The symbol, '__ZN16ClockrateManagerC1Ev', is a construction function in my source file. But I not call it so many times

 

So many strange things happened. I want to know the reason. Is it a defect of intel compile of 2018. There more than one strange object file just like this in my project

 

I can post the command used to compile the file:

"/usr/local/bin/icpc -o clockratemanager.o -c -arch i386 -std=c++11 -stdlib=libc++ -isysroot /Applications/... -mmacosx-version-min=10.7 -arch i386 -I/opt/intel/composerxe/ipp/include -I/opt/intel/composerxe/include -g -O3 -pipe -wd1,161,172,177,181,188,383,593,869,981,1418,1419,1572,1599,2259,3199,18000 -restrict -fasm-blocks -ip -MD -MP -m32, -DENV_DARWIN=1..."

 

 

On the other hand, I compile the same source file at the same system and 2017 intel compile. I open the above object file, and find there a no the strange symbol in the symbol table:

......

00000000         *UND* _g_thread_functions_for_glib_use

00000000         *UND* ___gxx_personality_v0

00000000         *UND* _g_threads_got_initialized

00000000         *UND* ___cxa_call_unexpected

00000000         *UND* __Unwind_Resume

00000000         *UND* __Z11GetLogLevelv

00000000         *UND* __Z17printf_log_helper13AudioLogLevelPKcz

00000000         *UND* _printf

 

You can see that the 2018 compiler just generate one more symbol, the strange one, ___cvtu64todp_sse2.

 

In the assembly code, every thing seem normal. The construct function is just called 6 times. Build the whole project in 32bits, successfully.

 

I go back to the 2018 compiler and compile the file and whole project in 64bits, Every thing also is OK.

 

so any one encounter the same problem? I need help!

 

 

 

 

 

 

 

  

  

 

 

 

Migrating from pragma simd

$
0
0

The Intel C++ 18.0 compiler trial complains that the #pragma simd is deprecated when compiling a roofline tutorial. I couldn't find more info in the release notes as directed by the warning message. Where is the deprecation documented? What replaces it?

icc18 vectorizer unnecessarily ands with 0x00ff after shifting word right by 8

$
0
0

This code

#include <stdint.h>

int const count = 1024;
uint8_t p[count];

void mul(uint16_t m)
{
#pragma simd vectorlength(8)
	for (int i = 0; i < count; ++i)
		p[i] = uint16_t(p[i] * m) >> 8;
}

compiled with -Os​ generates

mul(unsigned short):
  xor edx, edx #9.2
  movzx eax, di #10.26
  pxor xmm2, xmm2 #10.19
  movdqu xmm1, XMMWORD PTR .L_2il0floatpacket.0[rip] #10.32
  movd xmm3, eax #10.26
  punpcklwd xmm3, xmm3 #10.26
  punpckldq xmm3, xmm3 #10.26
  punpcklqdq xmm3, xmm3 #10.26
..B1.2: # Preds ..B1.2 ..B1.1
  lea rax, QWORD PTR [p+rdx] #10.19
  movq xmm0, QWORD PTR [rax] #10.19
  punpcklbw xmm0, xmm2 #10.19
  pmullw xmm0, xmm3 #10.32
  psrlw xmm0, 8 #10.32
  pand xmm0, xmm1 #10.32
  packuswb xmm0, xmm2 #10.32
  movq QWORD PTR [rax], xmm0 #10.3
  add rdx, 8 #9.2
  cmp rdx, 1024 #9.2
  jb ..B1.2 # Prob 99% #9.2
  ret #11.1
p:
.L_2il0floatpacket.0:
  .long 0x00ff00ff,0x00ff00ff,0x00ff00ff,0x00ff00ff

with a redundant pand instruction.

Way to disable nullptr check in placement new?

$
0
0

Is there a way to disable the nullptr check in placement new?

As of C++17 the nullptr check is no longer required: "If the standard placement allocation function returns a null pointer, which is possible if the user passes a null pointer as the argument, the behavior is undefined. (since C++17)", from http://en.cppreference.com/w/cpp/language/new

The change to C++17 was made specifically to remove the nullptr check: "This test is unnecessary overhead; it should be the user's responsibility to ensure that a null pointer is not used in these forms of placement new, just as for other cases when a pointer is dereferenced.", from Defect Report 1748 at http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html

I am using the Intel C++ 64 compiler for Windows, version 18.0.0.124 Build 20170811.  Among the things that I have tried are the command line option /Qstd=c++17, and using the __assume statement as a hint to the optimizer that the memory pointer is not a nullptr.  Here is a snippet from the assembler output showing the nullptr check:

;;;   __assume( nullptr != MemoryPointer );
;;;   BaseClass* Pointer = new( MemoryPointer ) MyClass();
        test      rbx, rbx
        je        .B1.5
.B1.3::
        mov       rax, QWORD PTR [__$U2a.0.168]
        mov       QWORD PTR [rbx], rax
.B1.4::
        mov       rcx, rbx
        jmp       .B1.6
.B1.5::
        xor       ecx, ecx
.B1.6::

The command line I used:

icl /FAs /Os /Qstd=c++17 test.cpp

The source code for test.cpp:

#include

class BaseClass
{
  public:
    virtual void Write() { std::cout << "BaseClass"; return; }
};

class MyClass: public BaseClass
{
  public:
    virtual void Write() override { std::cout << "MyClass"; return; }
};

void* GetMemoryPointer()
{
  return new int[1000];
}

int main()
{
  void* MemoryPointer = GetMemoryPointer();

  __assume( nullptr != MemoryPointer );
  BaseClass* Pointer = new( MemoryPointer ) MyClass();

  Pointer->Write();

  delete[] MemoryPointer;

  return 0;
}

Intel Compiler fails during final link (but g++ works)

$
0
0

I was trying to build node.js with intel compiler. All files compile okay, but the final linking stage fails. Strangely, if I use g++ for final link, it still work. The error message isn't quite helpful either. I have tried changing optimization from O3 to O2 - but no difference

-------------

": internal error: ** The compiler has encountered an unexpected problem. ** Segmentation violation signal raised. ** Access violation or stack overflow. Please contact Intel Support for assistance. icpc: error #10014: problem during multi-file optimization compilation (code 4)

-------

Appreciate any pointers ? Thanks!

 

Need help to contact Intel Support team

$
0
0

Need help to contact Intel Support for Intel C++ compiler registration issues. If anyone has email id or phone number to contact, please let us know


#pragma vector

$
0
0

the development manual says : The vector pragma indicates that the loop should be vectorized, if it is legal to do so . What does legal imply here? loop dependencies ?

 

Thanks

'unresolved external symbol' error for Qt builds using ICC with PCH on Windows

$
0
0

Hello, everyone,

For Qt builds using ICC with precompiled headers on Windows got errors:

        cd serialbus\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qtserialbus\src\serialbus\serialbus.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\lib\\Qt5SerialBusd.dll.embed.manifest">..\..\lib\Qt5SerialBusd.dll_manifest.rc
        if not exist ..\..\lib\Qt5SerialBusd.dll if exist ..\..\lib\Qt5SerialBusd.dll.embed.manifest del ..\..\lib\Qt5SerialBusd.dll.embed.manifest
        if exist ..\..\lib\Qt5SerialBusd.dll.embed.manifest copy /Y ..\..\lib\Qt5SerialBusd.dll.embed.manifest ..\..\lib\Qt5SerialBusd.dll_manifest.bak
        xilink /NOLOGO /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\lib\Qt5SerialBusd.dll.embed.manifest /OUT:..\..\lib\Qt5SerialBusd.dll @C:\Users\test\AppData\Local\Temp\nmAAB6.tmp
   Creating library ..\..\lib\Qt5SerialBusd.lib and object ..\..\lib\Qt5SerialBusd.exp
qcanbus.obj : error LNK2019: unresolved external symbol "public: __cdecl QCanBusDeviceInfo::~QCanBusDeviceInfo(void)" (??1QCanBusDeviceInfo@@QEAA@XZ) referenced in function "public: void __cdecl QCanBusDeviceInfo::`vector destructor iterator'(unsigned int)" (??_IQCanBusDeviceInfo@@QEAAXI@Z)
..\..\lib\Qt5SerialBusd.dll : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

 

        cd xmlpatterns\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qtxmlpatterns\src\xmlpatterns\xmlpatterns.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\lib\\Qt5XmlPatternsd.dll.embed.manifest">..\..\lib\Qt5XmlPatternsd.dll_manifest.rc
        if not exist ..\..\lib\Qt5XmlPatternsd.dll if exist ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest del ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest
        if exist ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest copy /Y ..\..\lib\Qt5XmlPatternsd.dll.embed.manifest ..\..\lib\Qt5XmlPatternsd.dll_manifest.bak
        xilink /NOLOGO /BASE:0x61000000 /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\lib\Qt5XmlPatternsd.dll.embed.manifest /OUT:..\..\lib\Qt5XmlPatternsd.dll @C:\Users\test\AppData\Local\Temp\nm4805.tmp
   Creating library ..\..\lib\Qt5XmlPatternsd.lib and object ..\..\lib\Qt5XmlPatternsd.exp
qoutputvalidator.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qbasictypesfactory.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qnamedschemacomponent.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qqnametest.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qnamepool.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qxsdschematypesfactory.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qxsdtypechecker.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)
qxsdvalidatinginstancereader.obj : error LNK2001: unresolved external symbol "public: __cdecl QXmlName::QXmlName(class QXmlName const &)" (??0QXmlName@@QEAA@AEBV0@@Z)<snip>

qvariableloader.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z)
qxmlquery.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z)
qxmlserializer.obj : error LNK2001: unresolved external symbol "public: class QXmlName & __cdecl QXmlName::operator=(class QXmlName const &)" (??4QXmlName@@QEAAAEAV0@AEBV0@@Z)
..\..\lib\Qt5XmlPatternsd.dll : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

 

        cd lib\ && ( if not exist Makefile C:\libQT-5.10-dev\build\qtbase\bin\qmake.exe -o Makefile C:\libQT-5.10-dev\build\qttools\src\designer\src\lib\lib.pro ) && "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe" -f Makefile.Debug

Microsoft (R) Program Maintenance Utility Version 14.11.25507.1
Copyright (C) Microsoft Corporation.  All rights reserved.

        echo 2 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ "..\\..\\..\\..\\lib\\Qt5Designerd.dll.embed.manifest">..\..\..\..\lib\Qt5Designerd.dll_manifest.rc
        if not exist ..\..\..\..\lib\Qt5Designerd.dll if exist ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest del ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest
        if exist ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest copy /Y ..\..\..\..\lib\Qt5Designerd.dll.embed.manifest ..\..\..\..\lib\Qt5Designerd.dll_manifest.bak
        xilink /NOLOGO /DEBUG /DLL /SUBSYSTEM:WINDOWS /VERSION:5.10 /MANIFEST /MANIFESTFILE:..\..\..\..\lib\Qt5Designerd.dll.embed.manifest /OUT:..\..\..\..\lib\Qt5Designerd.dll @C:\Users\test\AppData\Local\Temp\nmDDBC.tmp
   Creating library ..\..\..\..\lib\Qt5Designerd.lib and object ..\..\..\..\lib\Qt5Designerd.exp
qdesigner_propertycommand.obj : error LNK2019: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ) referenced in function "public: static struct qdesigner_internal::PropertySheetEnumValue __cdecl QtPrivate::QVariantValueHelper<struct qdesigner_internal::PropertySheetEnumValue>::metaType(class QVariant const &)" (?metaType@?$QVariantValueHelper@UPropertySheetEnumValue@qdesigner_internal@@@QtPrivate@@SA?AUPropertySheetEnumValue@qdesigner_internal@@AEBVQVariant@@@Z)
qdesigner_formbuilder.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ)
qdesigner_propertysheet.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetEnumValue::PropertySheetEnumValue(void)" (??0PropertySheetEnumValue@qdesigner_internal@@QEAA@XZ)
qdesigner_propertycommand.obj : error LNK2019: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ) referenced in function "public: static struct qdesigner_internal::PropertySheetFlagValue __cdecl QtPrivate::QVariantValueHelper<struct qdesigner_internal::PropertySheetFlagValue>::metaType(class QVariant const &)" (?metaType@?$QVariantValueHelper@UPropertySheetFlagValue@qdesigner_internal@@@QtPrivate@@SA?AUPropertySheetFlagValue@qdesigner_internal@@AEBVQVariant@@@Z)
qdesigner_formbuilder.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ)
qdesigner_propertysheet.obj : error LNK2001: unresolved external symbol "public: __cdecl qdesigner_internal::PropertySheetFlagValue::PropertySheetFlagValue(void)" (??0PropertySheetFlagValue@qdesigner_internal@@QEAA@XZ)
..\..\..\..\lib\Qt5Designerd.dll : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

etc., which reproduce in different Qt modules, but were introduced by particular Changes:

e6a10bc0b5c7be73c5a58f8e565c1d571723bc4a

da19c9882295a8f3216284935c05ad4b89c445bd

b4fca58fbe488e034b762fbcf04bc7334efa2c86

respectively. The only common code in that Changes is usage of Defaulted default constructor outside of class definition.

Mentioned errors were reported at Qt bugtracker (see QTBUG-62956 and QTBUG-62979), and Qt Developers believe it's a compiler bug.

 

Environment:

  • Windows 10 x64,
  • IPSXE 2017 Update 5,
  • MSVC 2017 15.3.3,
  • Windows SDK 10.0.15063.468,
  • Qt-5.10-dev (4ad6292028fde7cba698b9c1f7d7d080772d6cd2).

 

Best,
Alexander

 

 

Installation directory cannot be changed in Update #1

$
0
0

Installation directory cannot be changed in Update #1

Intel parallel studio's default installation directory cannot be changed in update #1, the ... (epsilon) is grayed out in the installer. The guide says there should be an installation summary dialog, but that's completely missing too.

 

icpc 18.0.1 for Mac breaks cmath

$
0
0

I just upgraded to Intel C++ version 18.0.1 and discovered that cmath is apparently broken. The simple program

#include <cmath>
int main(int argc,char **argv)
{
    double x = 0.0/0.0;
    if (std::isnan(x)) return 0;
    else return 1;

}

will not compile (it would for previous versions of Intel and works fine for GNU). The error message I get is

icpc isnan.cc

isnan.cc(5): error: expected an identifier
      if (std::isnan(x)) return 0;

I get the same error for other floating point checks like std::isfinite().

 

Error with STDINT.h - Fatal Error C1083 (Visual Studio 2017 Update 4, Intel Compiler 18 Update 1)

$
0
0

Hello,

I have a project defined to be compiled with Intel Compiler.
When trying to compile it I get the following error:

C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2018\windows\compiler\include\stdint.h(39): fatal error C1083: Cannot open include file: '../../vc/include/stdint.h': No such file or directory

I'm attaching a ZIP file with the project (Simple Photoshop Plug In from PS SDK).
This is a Visual Studio 2017 project which is in the path:

PS_SDK_2017\pluginsdk\samplecode\filter\PoorMansTypeTool\win

Edge case is that if one compile the project first with MS Compiler and then switch to Intel compiler it works.
Yet if one cleans the project and try building it with Intel one gets the error.

Screenshots:

System Information:

IDE - Visual Studio 2017 Update 4.
Compiler - Intel Compiler 18 Update 1

AttachmentSize
Downloadapplication/zipProject.zip34.93 MB

X64 inline assembley - how to read physical memory address (Windows)

$
0
0

Dear all,

Need to help to read the physical memory address of a Windows t process (Notepad -64bit process).

For example, I the Windows API , I can read the  Heap  memory of a process  - Block Size, Block Address. It is Virtual address of heap.

 https://msdn.microsoft.com/en-us/library/windows/desktop/dd299432(v=vs.85).aspx

Now, through inline assembly, how to translate this address to actual physical memory of the Intel i7 processor??

Objective: For a security project - If the  processor Instruction Pointer (RIP) points to  heap memory of the Windows process , program( Win32, C,  Intel C++ compiler on Visual Studio community/ Windows 10)) should be detect and alert.  Is the LEA  instruction useful. Am I missing something ?!

Any suggestion, highly useful :)

Cheers!  

Chandra

 

 

 

 

 

 

 

 

 

 

 

  

 

 

License File No Longer Valid

$
0
0

Hello,

I have Intel Composer Studio XE 2013, which I bought from Intel several years ago and have been running with no issues. I had the named user perpetual license, with one year of support initially but that has since lapsed and never been renewed.

I got a new laptop, and tried to install it but failed with the error that the license file is not valid. Does anyone know what can be done about this?

Thanks,

Ken

 


Intel C++ 18.1 compilation fails in Visual Studio 2017 15.4

$
0
0

I've just updated Intel C++ to 18.1 from 18.0, and all my projects fail to compile. I get lots of errors inside dfp754.h.

I repaired VS installation and repaired Parallel Studio XE 2018 Update 1 but it didn't help.

Any suggestions on how to fix it are appreciated.

internal error: assertion failed: macro_invocation: unknown special predefined macro

$
0
0

I encounter a failure at Version 17.0.4.210 Build 20170411​
it can be reproduced with these codes( test.c):

int main(int argc,char** argv)
{
#ifdef __DEC32_MAX__
    float i2 = __DEC32_MAX__;
#endif
    return 0;
}​

 

compile the souce with: "icl test.c " or "icl /E test.c", get the error message:

test.c(4): internal error: assertion failed: macro_invocation: unknown special predefined macro (shared/cfe/edgcpfe/macro.c, line 5750)

      float i2 = __DEC32_MAX__;

can some one help with this issue? is this a bug of the compiler?

 

 

 

catastrophic error: cannot open source file "iostream"

$
0
0

Hello All,

I have installed Intel Parallel Studio XE v18.0.1 on my mac and was trying to run a hello_world.cpp program. But I got into the following error.

hello.cpp(1): catastrophic error: cannot open source file "iostream"
  #include<iostream>
                    ^
compilation aborted hello.cpp (code 4)

Then I checked the version of icc and icpc from command line and found both of them are version 18.0.1. Any idea how to solve this issue?

Thanks in advance,

Fazlay

In matlab; Error using mex LINK : fatal error LNK1104: cannot open file 'ifconsol.lib'

$
0
0

In Matlab2015a, When i use "mex -output" command with some parameter, i get this error:

Building with 'Microsoft Visual C++ 2013 Professional'. Error using mex LINK : fatal error LNK1104: cannot open file 'ifconsol.lib'

I khow that this error is related with "Intel Composer XE 2013", but i dont khow how can i solve it. there is some 'ifconsol.lib' in installed "Intel Composer XE 2013" folders in program files. I use "Intel Composer XE 2013" on Windows 10 64bit.

Templates/static(?) compilation issues

$
0
0

Hello! I'm trying to build Unreal Engine with Intel Compiler 17.0 but I'm getting quite interesting error. ICC complains about 'incomplete type' in multiple places. These places boil down to the following code snippet:

template <class Base>
class B : public Base
{};

class A
{
      static B<A> StaticMember; // D'OH! ICC:  incomplete type is not allowed
};

VC++, gcc and clang compile it while ICC complains about an incomplete type. Why is this the case? What is the reason behind ICC behaviour?

Viewing all 2797 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>