Optimized code depends on type feedback, so in this case it'll change
depending on what kinds of things *unoptimized* code has seen for "n".

On Tue, Sep 22, 2015 at 1:21 PM, D T <[email protected]> wrote:

> Ahhh, that explains a lot! I wondered what the optimized code is about,
> for those few lines...
>
> However, is there any indication how often the function is called (how
> many loop steps) to produce the same optimized code? Or, a slightly
> different question: If I let v8 optimize the same code a few times, do I
> always get the same optimimized code? (call v8 on the js file, then again,
> then again, and so on...).
>
> Am Dienstag, 22. September 2015 11:53:01 UTC+2 schrieb Jakob Kummerow:
>>
>> Functions aren't optimized right away, only when they're detected as
>> "hot". Try calling your function 1000 times or so in a loop. (The bigger it
>> is, the less often it needs to be called to be considered "hot"; the
>> details of that mechanism are rather complicated.)
>>
>> On Tue, Sep 22, 2015 at 11:46 AM, D T <[email protected]> wrote:
>>
>>> Sorry, sometimes I even confuse myself ;)
>>>
>>> Okay, so I attached the original file I was sent. It states the Raw
>>> source and the "optimized" code (and also uses the crankshaft optimizing
>>> compiler of v8).
>>> Nevertheless, when I try to run the function stated in the Raw code, I
>>> do not get any optimized code. But here is clearly says "optimized"...
>>> Do I miss some parameter for d8?
>>>
>>> If I still confuse you, just tell me :D
>>>
>>>
>>> Am Dienstag, 22. September 2015 10:59:57 UTC+2 schrieb Andreas Rossberg:
>>>>
>>>> Not sure I understand. If nothing is printed, are you sure the function
>>>> gets optimised at all?
>>>>
>>>> On 22 September 2015 at 10:42, D T <[email protected]> wrote:
>>>>
>>>>> Thanks for your quick answer, Andreas!
>>>>>
>>>>> So, I got the snippet I showed you avove by mail to look over the ASM
>>>>> code (I dont have much experience with Javascript ;) ).
>>>>> When run the d8 as follows:
>>>>> v8/out/ia32.release/d8 --print_opt_code test.js
>>>>>
>>>>> With the code printed in the RAW section (slightly modified, like):
>>>>> function foo(n)
>>>>> {
>>>>>   return Math.floor(Math.random() * n);
>>>>> }
>>>>>
>>>>> V8 prints just nothing...
>>>>> Am I missing something?
>>>>>
>>>>>
>>>>> Am Dienstag, 22. September 2015 08:34:46 UTC+2 schrieb Andreas
>>>>> Rossberg:
>>>>>>
>>>>>> The printed raw source _is_ the exact source of that individual
>>>>>> function (minus the 'function' prefix). What are you missing?
>>>>>>
>>>>>> On 21 September 2015 at 23:49, D T <[email protected]> wrote:
>>>>>>
>>>>>>> Hi v8 users,
>>>>>>>
>>>>>>> I am using d8 version 4.7.0 on Ubuntu Linux vivid. I played around
>>>>>>> with d8 a little bit and used the following command line:
>>>>>>> user@debugbox: v8/out/ia32.release/d8 --print_opt_code test.js
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Which leads to the following output:
>>>>>>> --- Raw source ---
>>>>>>> (n)
>>>>>>> {
>>>>>>>   return Math.floor(Math.random() * n);
>>>>>>> }
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --- Optimized code ---
>>>>>>> optimization_id = 0
>>>>>>> source_position = 27528
>>>>>>> kind = OPTIMIZED_FUNCTION
>>>>>>> name = rnd
>>>>>>> stack_slots = 2
>>>>>>> compiler = crankshaft
>>>>>>> Instructions (size = 612)
>>>>>>> 0x2020e060     0  55             push ebp
>>>>>>> 0x2020e061     1  89e5           mov ebp,esp
>>>>>>> 0x2020e063     3  56             push esi
>>>>>>> 0x2020e064     4  57             push edi
>>>>>>> 0x2020e065     5  83ec08         sub esp,0x8
>>>>>>> 0x2020e068     8  50             push eax
>>>>>>> 0x2020e069     9  c7c002000000   mov eax,0x2
>>>>>>> 0x2020e06f    15  c70484efdeefbe mov [esp+eax*4],0xbeefdeef
>>>>>>> 0x2020e076    22  48             dec eax
>>>>>>> 0x2020e077    23  75f6           jnz 15  (0x2020e06f)
>>>>>>> 0x2020e079    25  58             pop eax
>>>>>>> 0x2020e07a    26  c745f400000000 mov [ebp-0xc],0x0
>>>>>>> 0x2020e081    33  8b45fc         mov eax,[ebp-0x4]
>>>>>>> 0x2020e084    36  8945f0         mov [ebp-0x10],eax
>>>>>>> 0x2020e087    39  89c6           mov esi,eax
>>>>>>> 0x2020e089    41  3b25241aa009   cmp esp,[0x9a01a24]         ;;
>>>>>>> external reference (StackGuard::address_of_jslimit())
>>>>>>> 0x2020e08f    47  7305           jnc 54  (0x2020e096)
>>>>>>> 0x2020e091    49  e8ea15321b     call StackCheck  (0x3b52f680)    ;;
>>>>>>> code: BUILTIN
>>>>>>> 0x2020e096    54  b805cfb729     mov eax,0x29b7cf05
>>>>>>> [snip]
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Is there any way, to print the _original_ javascript code I feeded
>>>>>>> into v8 (since the raw source here is not the exact same code as the 
>>>>>>> input
>>>>>>> code), before printing the optimized, corresponding code?
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>> --
>>>>>>> --
>>>>>>> v8-users mailing list
>>>>>>> [email protected]
>>>>>>> http://groups.google.com/group/v8-users
>>>>>>> ---
>>>>>>> You received this message because you are subscribed to the Google
>>>>>>> Groups "v8-users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>> send an email to [email protected].
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> --
>>>>> --
>>>>> v8-users mailing list
>>>>> [email protected]
>>>>> http://groups.google.com/group/v8-users
>>>>> ---
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "v8-users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> --
>>> --
>>> v8-users mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-users
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "v8-users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to