mraleph / irhydra

Tool for displaying IR used by V8 and Dart VM optimizing compilers
Apache License 2.0
433 stars 32 forks source link

Uncaught TypeError: J.j(...).gcz is not a function IR Tab with Disassembly #58

Closed rawbin- closed 7 years ago

rawbin- commented 7 years ago
var i,len,testData = [],testCount = 9999,repeatCount = 999;

function doInit(testData){
  for(var i = testCount; i--;){
    testData[i] = i;
  }
}

function doRepeat(operation,data){
  for(var i = 0; i < repeatCount;i++){
    operation(data);
  }
}
function origin(data){
  var ret = [];
  for(var i = 0; i < data.length; i++){
    ret[i] = data[i] * data[i];
  }
}

function optLen(data){
  var ret = [];
  for(var i = 0,len = data.length; i < len; i++){
    ret[i] = data[i] * data[i];
  }
}

function optIdx(data){
  var ret = [],tmpData;
  for(var i = 0,len = data.length; i < len; i++){
    tmpData = data[i];
    ret[i] = tmpData * tmpData;
  }
}

function optCmp(data){
  var ret = [];
  for(var i = data.length; i-- > 0;){
    ret[i] = data[i] * data[i];
  }
}

doInit(testData);

console.time("origin")
doRepeat(origin,testData);
console.timeEnd('origin')

console.time('optmize len');
doRepeat(optLen,testData)
console.timeEnd('optmize len');

console.time('optmize index');
doRepeat(optIdx,testData)
console.timeEnd('optmize index');

console.time('optmize compare');
doRepeat(optCmp,testData)
console.timeEnd('optmize compare');
rawbin- commented 7 years ago

With Node 7.9.0 on Mac

node --trace-hydrogen --trace-phase=Z --trace-deopt --code-comments --hydrogen-track-positions --redirect-code-traces --redirect-code-traces-to=code.asm --print-opt-code perf-opt.js
rawbin- commented 7 years ago

irhydra

mraleph commented 7 years ago

Checking it out.

mraleph commented 7 years ago

@rawbin- fixed by 0b3525398592008b17551f41b0dd7f745a1b1031 and redeployed.

Please try again.