Get VTune JIT integration working with X64 support

NEW
Unassigned

Status

Tamarin
Baseline JIT (CodegenLIR)
7 years ago
6 years ago

People

(Reporter: Edwin Smith, Unassigned)

Tracking

(Blocks: 1 bug)

unspecified
Future
x86_64
Windows 7
Dependency tree / graph
Bug Flags:
flashplayer-qrb +

Details

Attachments

(1 attachment)

(Reporter)

Description

7 years ago
The VTune configuration in tamarin-redux is only known to work with x86-32.  This bug is to make it Build and work with x86-64.
(Reporter)

Updated

7 years ago
Depends on: 495995

Comment 1

7 years ago
I don't think VTune supports 64-bit builds.  There is only one jitprofiling.lib available on the Intel installation directory and linking a 64-bit build against this lib does not resolve the few Vtune required APIs such as iJIT_NotifyEvent, etc.
(Reporter)

Comment 2

7 years ago
The last time I installed vtune, it did come with x64 versions of the jitprofiling libraries in a separate directory, and I seem to remember it working when I tried it.  But I dont have that machine set up anymore; I'll get it set up again since I've been meaning to anyway, and watch for optional install settings.

Comment 3

7 years ago
Ed informed me that the "Lib32e" directory should be used for x64.

Comment 4

7 years ago
That's right. Let me know if there were any problems. I'll be OOO from the middle of this week though.

Comment 5

7 years ago
Created attachment 467760 [details] [diff] [review]
64-bit fixes for VTUNE.

VTUNE patch compiles and links successfully when pointing to the lib32e directory for the lib but the exe crashes with heap corruption on the "ML" data structure which looks to be a VTUNE problem.
(Reporter)

Comment 6

7 years ago
Comment on attachment 467760 [details] [diff] [review]
64-bit fixes for VTUNE.

I'd prefer we used the proper C99 types, such as ptrdiff_t, for these fixes, instead of explicitly truncating to int.  The vcproj changes look fine.

Comment 7

7 years ago
Agreed about C99 types but we have structures from the Intel header file so some things need to be int casts.  

-        ML.method_size = (char*)endAddr - (char*)start;
+        ML.method_size = int((char*)endAddr - (char*)start);


typedef struct _iJIT_Method_Load 
{
    ...
    unsigned int        method_size;            // Size in memory - Must be exact

EXE is still crashing with patch so leaving it as-is for the time being.

Updated

6 years ago
Blocks: 686127
Flags: flashplayer-qrb+
Target Milestone: --- → Future
You need to log in before you can comment on or make changes to this bug.