@ Crunch3r Merci
Probleme im Optimizer:
Optimizer
meine Präprozessordefinitionen für Optimizer:
USE_SSE2
WIN32
_WIN32
_WINDOWS
_CONSOLE
NDEBUG
_LIB
_MT
CLIENT
NBOINC_APP_GRAPHICS
_UNICODE
UNICODE
------------------------------
wenn man nun Optimizer neu erstellt wird auch opt_SSE3.cpp übersetzt und es treten darin verschiedene Fehler auf, weil pmmintrin.h nicht includiert ist.
Mich wundert das schon, weil ich dachte wenn USE_SSE3 nicht angegeben wird beim Präprozessor, sollte es auch nicht zur Übersetzung kommen.
Ferner ist zu bemerken dass wenn pmmintrin.h aufgerufen wurde __SSE3__ noch nicht definiert ist und es somit zu den Fehlern in Zeile 147 und 148 kommt. Siehe alleinige Compilation von opt_SSE3.cpp -->
-------------------------------------------------------------------------------------------------
Kompilieren...
Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 14.00.50727.762 für 80x86
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
cl /O2 /Ob2 /Oi /Ot /Oy /GT /I "../../../boinc/win_build" /I ".." /I "..\.." /I "..\..\..\boinc\lib" /I "../../../boinc/api" /I "../../db" /I "C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer" /D "USE_IPP" /D "USE_SSE2" /D "WIN32" /D "_WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "NDEBUG" /D "_LIB" /D "_MT" /D "CLIENT" /D "NBOINC_APP_GRAPHICS" /D "_UNICODE" /D "UNICODE" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /C /GF /FD /EHsc /MT /Zp16 /Gy /Fo"Release32-NOGFX\\" /Fd"Release32-NOGFX\vc80.pdb" /W3 /c /Wp64 /Zi /Gd /TP /FI "win-config.h" ".\opt_SSE3.cpp"
cl : Befehlszeile warning D9007 : "/C" erfordert "/E, /EP oder /P"; Option wird ignoriert.
opt_SSE3.cpp
.\opt_SSE3.cpp(147) : error C3861: "_mm_addsub_ps": Bezeichner wurde nicht gefunden.
.\opt_SSE3.cpp(148) : error C3861: "_mm_addsub_ps": Bezeichner wurde nicht gefunden.
Das Buildprotokoll wurde unter "file://c:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX\BuildLog.htm" gespeichert.
Optimizer - 2 Fehler, 1 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
-----------------------------------------------------
und hier nochmal das ganze Projekt Optimizer ---->
------ Neues Erstellen gestartet: Projekt: Optimizer, Konfiguration: Release32-NOGFX Win32 ------
Die Zwischen- und Ausgabedateien für das Projekt "Optimizer" mit der Konfiguration "Release32-NOGFX|Win32" werden gelöscht.
Kompilieren...
Microsoft (R) 32-Bit C/C++-Optimierungscompiler Version 14.00.50727.762 für 80x86
Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten.
cl /O2 /Ob2 /Oi /Ot /Oy /GT /I "../../../boinc/win_build" /I ".." /I "..\.." /I "..\..\..\boinc\lib" /I "../../../boinc/api" /I "../../db" /I "C:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer" /D "USE_IPP" /D "USE_SSE2" /D "WIN32" /D "_WIN32" /D "_WINDOWS" /D "_CONSOLE" /D "NDEBUG" /D "_LIB" /D "_MT" /D "CLIENT" /D "NBOINC_APP_GRAPHICS" /D "_UNICODE" /D "UNICODE" /D "_VC80_UPGRADE=0x0710" /D "_MBCS" /C /GF /FD /EHsc /MT /Zp16 /Gy /Fo"Release32-NOGFX\\" /Fd"Release32-NOGFX\vc80.pdb" /W3 /c /Wp64 /Zi /Gd /TP /FI "win-config.h" ".\AKfoldSSE.cpp"
".\opt_VIS2.cpp"
".\opt_VIS.cpp"
".\opt_SSE3.cpp"
".\opt_SSE2.cpp"
".\opt_SSE.cpp"
".\opt_os_interface.cpp"
".\opt_MMX.cpp"
".\opt_MDMX.cpp"
".\opt_altivec.cpp"
".\memspeed.cpp"
".\FoldTst.cpp"
".\cpuid_tbl.cpp"
".\cpu_x86.cpp"
".\BHSSEfold.cpp"
".\benchmark.cpp"
cl : Befehlszeile warning D9007 : "/C" erfordert "/E, /EP oder /P"; Option wird ignoriert.
AKfoldSSE.cpp
-----IPP-----
-----SSE2/em-----
opt_VIS2.cpp
opt_VIS.cpp
opt_SSE3.cpp
.\opt_SSE3.cpp(147) : error C3861: "_mm_addsub_ps": Bezeichner wurde nicht gefunden.
.\opt_SSE3.cpp(148) : error C3861: "_mm_addsub_ps": Bezeichner wurde nicht gefunden.
opt_SSE2.cpp
.\opt_SSE2.cpp(86) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(126) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(129) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(136) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(139) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(144) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(147) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(148) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
.\opt_SSE2.cpp(150) : error C2440: 'Typumwandlung': 'VEC' kann nicht in 'VEC_I' konvertiert werden
Quelltyp konnte von keinem Konstruktor angenommen werden, oder die Überladungsauflösung des Konstruktors ist mehrdeutig
opt_SSE.cpp
.\opt_SSE.cpp(146) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'const float *__w64 ' zu 'unsigned int'
opt_os_interface.cpp
.\opt_os_interface.cpp(92) : warning C4552: '<<': Operator hat keine Auswirkungen; Operator mit Nebeneffekt erwartet
.\opt_os_interface.cpp(185) : error C2664: 'RegOpenKeyExW': Konvertierung des Parameters 2 von 'const char [68]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
.\opt_os_interface.cpp(189) : error C2664: 'RegQueryValueExW': Konvertierung des Parameters 2 von 'const char [21]' in 'LPCWSTR' nicht möglich
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.
opt_MMX.cpp
opt_MDMX.cpp
opt_altivec.cpp
memspeed.cpp
FoldTst.cpp
cpuid_tbl.cpp
cpu_x86.cpp
.\cpu_x86.cpp(548) : warning C4311: 'Typumwandlung': Zeigerverkürzung von 'void *' zu 'uint32'
.\cpu_x86.cpp(549) : warning C4312: 'Typumwandlung': Konvertierung von 'uint32' in größeren Typ 'void *'
BHSSEfold.cpp
-----IPP-----
-----SSE2/em-----
benchmark.cpp
-----IPP-----
-----SSE2-----
-----IPP-----
-----SSE2-----
Code wird generiert...
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(131) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(132) : warning C4700: Die nicht initialisierte lokale Variable "sum2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(161) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(162) : warning C4700: Die nicht initialisierte lokale Variable "sum2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(191) : warning C4700: Die nicht initialisierte lokale Variable "tmp1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(192) : warning C4700: Die nicht initialisierte lokale Variable "tmp2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(193) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(194) : warning C4700: Die nicht initialisierte lokale Variable "sum2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(232) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(233) : warning C4700: Die nicht initialisierte lokale Variable "sum2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(269) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(270) : warning C4700: Die nicht initialisierte lokale Variable "sum2" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(322) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(349) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(375) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
c:\i\sc\seti\seti_boinc_2k3_2.2b-ben-joe\client\optimizer\memspeed.cpp(400) : warning C4700: Die nicht initialisierte lokale Variable "sum1" wurde verwendet.
Das Buildprotokoll wurde unter "file://c:\I\SC\seti\seti_boinc_2k3_2.2B-Ben-Joe\client\Optimizer\Release32-NOGFX\BuildLog.htm" gespeichert.
Optimizer - 13 Fehler, 21 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
------------------------------------------------------------
Bemerkungen:
1. wie man sieht wird auch opt_SSE3 compiliert, _mm_addsub_ps befindet sich in pmmintrin.h jedoch ist __SSE3__ nicht definiert.
2. Die Typumwand von VEC nach VEC_I ist ein Problem,
3 opt_os_interface.cpp(185) und (189) sind ein schwieriges Problem
4. memspeed.cpp ---> die Warnungen sind zwar lästiig, könnte man aber durchaus lassen. sum1=0 funktioniert nicht !!!
----------------------------------------------------------------
Das Gute zum Schluss
das Projekt seti_boinc wird ohne Fehler und nur mit 1 Warnung compiliert, jedoch noch nicht gelinkt, weil Optimizer noch nicht fertig ist
-----------------------------------
weitere Hinweise sind jederzeit willkommen
MFG ~seti_britta