• mvstanton@chromium.org's avatar
    Inline zero argument array constructor. · 3cf157b4
    mvstanton@chromium.org authored
    patch from issue 54583003 (dependent code).
    
    Zero arguments - very easy
    
    1 argument - three special cases:
      a) If length is a constant in valid array length range,
         no need to check it at runtime.
      b) respect DoNotInline feedback on the AllocationSite for
         cases that the argument is not a smi or is an integer
         with a length that should create a dictionary.
      c) if kind feedback is non-holey, and length is non-constant,
         we'd have to generate a lot of code to be correct.
         Don't inline this case.
    
    N arguments - one special case:
      a) If a deopt ever occurs because an input argument isn't
         compatible with the elements kind, then set the
         DoNotInline flag.
    
    BUG=
    R=verwaest@chromium.org
    
    Review URL: https://codereview.chromium.org/55933002
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    3cf157b4
elements-kind.cc 5.18 KB