Hi all,
I'm trying to mannually optimize my function [1] by calling %OptimizeFunctionOnNextCall.
I run `./d8 --allow-natives-syntax --trace-opt --print-opt-code foo.js`, it seems that the function is compiled:
[manually marking 0x1e6e082935b5 <JSFunction add (sfi = 0x1e6e08293485)> for non-concurrent optimization]
[compiling method 0x1e6e082935b5 <JSFunction add (sfi = 0x1e6e08293485)> (target TURBOFAN) using TurboFan]
--- Optimized code ---
optimization_id = 0
source_position = 12
kind = TURBOFAN
name = add
stack_slots = 6
compiler = turbofan
address = 0x1e6e00044001
...
But according to `%DebugPrint(add)` in the last line, it says:
- code: 0x1e6e00045841 <Code TURBOFAN>
...
- shared function info: 0x1e6e08293485 <SharedFunctionInfo add>
- no optimized code
- optimization marker: OptimizationMarker::kNone
- optimization tier: OptimizationTier::kNone
I'm curious why it has `<Code TURBOFAN>` but `no optimized code` and `OptimizationMarker::kNone`? Shouldn't the function be compiled with `OptimizationMarker::kCompileOptimized`? Is there something I'm missing? Thanks in advance!
Regards,
Jiading
[1] add.js:
function add(a, b) { return a + b; }
%OptimizeFunctionOnNextCall(add);
add(1, 2);
let sum = 0;
for (let i = 0; i < 100000; i++) {
sum += add(i, i);
}
%DebugPrint(add);