Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

dartvm --enable_type_checks hangs on optimized function #123

Closed
DartBot opened this Issue · 3 comments

3 participants

@DartBot
Collaborator

This issue was originally filed by duane.1.sa...@gmail.com


In my .dart version of the fannkuch shootout benchmark, dartvm hangs with infinite loop when --enable_type_checks is on, after entering the optimized recompiled copy of the fannkuch function. This happens whether or not the dart source has explicit type notations. The unoptimized first compilation of the function executes well.

This version of fannkuch was derived from the non-Int32Array Javascript version at shootout.alioth.debian.org. I first made minimal changes to put it in Dart form. In that version, Dartvm never recompiled the hot function into optimized form, because it was called only once and directly contained all the nested loops. I changed the main to invoke the fannkuch() function twice per run, and found that a first call with n=6 would trigger optimizations before the second call, whereas a first call with n=5 would not.

I used --trace_compiler to verify whether optimizations were triggered, and to verify that the hang occurs after entering the regenerated function, not during the recompilation itself.


Attachment:
fannkuch.1.dart (1.90 KB)

@DartBot
Collaborator

This comment was originally written by drfibonacci@google.com


Added Area-VM, Triaged labels.

@iposva-google
Collaborator

Set owner to @sgmitrovic.
Added Accepted label.

@sgmitrovic
Collaborator

This is not a hang but an extreme slow down when using --enable_type_checks with array store). We are aware of this performance issue and are working on fixing it. If you instrument the innermost do-loop with a print, you will notice that it is making slow progress (I was able to run the code to completion).


Added Invalid label.

@sgmitrovic sgmitrovic was assigned by DartBot
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.