I saw today the Architecture Code Analyzer project and I got really interested in it. I do have some code snippets that I would like to analyze statically in order to gain better understanding of the bottlenecks. I downloaded the program and inserted the start macro at the beginning of a function and the end macro at the end of the same function. My project is a DLL file so first I did try the object file with the function I'm interested in (.obj) from the release folder of my visual studio solution directory:
iaca.exe -o output.txt -32 test.obj
This produced the following output: COULD NOT FIND START_MARKER.
Then I tried the DLL with
iaca.exe -o output.txt -32 test.dll
and I did get the following output:
Intel Architecture Code Analyzer Version - 20090115
Analyzed File - test.dll
Binary Format - 32BIT
INSTRUCTION NOT SUPPORTED(785) - imul edx, eax
INSTRUCTION NOT SUPPORTED(795) - cdq
INSTRUCTION NOT SUPPORTED(798) - idiv ecx
INSTRUCTION NOT SUPPORTED(806) - cmovz eax, ebx
INSTRUCTION NOT SUPPORTED(818) - cmovnle eax, ecx
Do you have any ideas what is happening here. Can I use the tool on DLL or I need exe file? Why the program is not recognizing some of the instructions? The DLL is not build with AVX support but it requires core 2 duo processor (ssse3).
And one question about the future of the program, do you think that it will be possible to model older processors - I think this should be strait forward to implement. There is no need for older ones like pentium or pentium 2 but it will be nice if core 2 and i7 processors are supported.
Appreciate any help,