1. 01 Feb, 2016 25 commits
  2. 31 Jan, 2016 1 commit
  3. 30 Jan, 2016 2 commits
  4. 29 Jan, 2016 12 commits
    • bradnelson's avatar
      Accurately type foreign functions, and variables (attempt 2). · 43be9698
      bradnelson authored
      Associate a type with foreign functions at their callsite.
      Associate a type with foreign variables.
      More pervasively forbid computation in the module body.
      Confirm foreign call arguments are exports.
      
      Pass zone to more Type constructors, for consistency.
      
      BUG= https://code.google.com/p/v8/issues/detail?id=4203
      TEST=test-asm-validator
      R=aseemgarg@chromium.org,titzer@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/1643003004
      
      Cr-Commit-Position: refs/heads/master@{#33622}
      43be9698
    • thestig's avatar
      Change .gitignore to ignore /base instead of /base/trace_event/common. · bb96455b
      thestig authored
      BUG=581960
      LOG=N
      
      Review URL: https://codereview.chromium.org/1642143004
      
      Cr-Commit-Position: refs/heads/master@{#33621}
      bb96455b
    • mbrandy's avatar
      PPC: Refactor checks for minus zero. · 21bb9c6a
      mbrandy authored
      R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1650593002
      
      Cr-Commit-Position: refs/heads/master@{#33620}
      21bb9c6a
    • mbrandy's avatar
      PPC: Fix "Implement the function.sent proposal." · ceb2d18d
      mbrandy authored
      StoreP needs a scratch register for unaligned immediate offset.
      
      R=neis@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:4700
      LOG=n
      
      Review URL: https://codereview.chromium.org/1644863005
      
      Cr-Commit-Position: refs/heads/master@{#33619}
      ceb2d18d
    • mbrandy's avatar
      PPC: [builtins] Make Math.max and Math.min fast by default. · 3641a448
      mbrandy authored
      Port cb9b8010
      
      Original commit message:
          The previous versions of Math.max and Math.min made it difficult to
          optimize those (that's why we already have custom code in Crankshaft),
          and due to lack of ideas what to do about the variable number of
          arguments, we will probably need to stick in special code in TurboFan
          as well; so inlining those builtins is off the table, hence there's no
          real advantage in having them around as "not quite JS" with extra work
          necessary in the optimizing compilers to still make those builtins
          somewhat fast in cases where we cannot inline them (also there's a
          tricky deopt loop in Crankshaft related to Math.min and Math.max, but
          that will be dealt with later).
      
          So to sum up: Instead of trying to make Math.max and Math.min semi-fast
          in the optimizing compilers with weird work-arounds support %_Arguments
          %_ArgumentsLength, we do provide the optimal code as native builtins
          instead and call it a day (which gives a nice performance boost on some
          benchmarks).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1648353002
      
      Cr-Commit-Position: refs/heads/master@{#33618}
      3641a448
    • mbrandy's avatar
      PPC: [for-in] Ensure that we learn from deopts within for-in loop bodies. · 0dc1e186
      mbrandy authored
      Port 0637f5f6
      
      Original commit message:
          If we deoptimize from TurboFan or Crankshaft into the body of a for-in
          loop and that for-in mode then switches to slow mode (i.e. has to call
          %ForInFilter), we have to record that feedback, because otherwise we
          might actually OSR into that loop assuming that it's fast mode still,
          or even worse recompile the function later when we call it again w/o
          having rerun the for-in loop in fullcodegen from the beginning (where
          was previously the only place we could learn).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=v8:3650
      LOG=n
      
      Review URL: https://codereview.chromium.org/1644383002
      
      Cr-Commit-Position: refs/heads/master@{#33617}
      0dc1e186
    • jkummerow's avatar
      Introduce {FAST,SLOW}_STRING_WRAPPER_ELEMENTS · f4872f74
      jkummerow authored
      String wrappers (new String("foo")) are special objects: their string
      characters are accessed like elements, and they also have an elements
      backing store. This used to require a bunch of explicit checks like:
      
      if (obj->IsJSValue() && JSValue::cast(obj)->value()->IsString()) {
        /* Handle string characters */
      }
      // Handle regular elements (for string wrappers and other objects)
      obj->GetElementsAccessor()->Whatever(...);
      
      This CL introduces new ElementsKinds for string wrapper objects (one for
      fast elements, one for dictionary elements), which allow folding the
      special-casing into new StringWrapperElementsAccessors.
      
      No observable change in behavior is intended.
      
      Review URL: https://codereview.chromium.org/1612323003
      
      Cr-Commit-Position: refs/heads/master@{#33616}
      f4872f74
    • machenbach's avatar
      Revert of [runtime] further dismantle AccessorInfoHandling, reducing it to the... · 0e285458
      machenbach authored
      Revert of [runtime] further dismantle AccessorInfoHandling, reducing it to the single API usecase. (patchset #2 id:20001 of https://codereview.chromium.org/1643563002/ )
      
      Reason for revert:
      [Sheriff] Speculative revert for breaking webkit unit tests:
      https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/4251
      
      Original issue's description:
      > [runtime] further dismantle AccessorInfoHandling, reducing it to the single API usecase.
      >
      > BUG=
      >
      > Committed: https://crrev.com/85aba7df84d397c7e47537292e6895bd8b26f440
      > Cr-Commit-Position: refs/heads/master@{#33613}
      
      TBR=ishell@chromium.org,verwaest@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1650033003
      
      Cr-Commit-Position: refs/heads/master@{#33615}
      0e285458
    • littledan's avatar
      Fix Unicode string normalization with null bytes · f3e41d96
      littledan authored
      Previously, String.prototype.normalize constructed its ICU input
      string as a null-terminated string. This creates a bug for strings
      which contain a null byte, which is allowed in ECMAScript. This
      patch constructs the ICU string based on its length so that the
      entire string is normalized.
      
      R=jshin@chromium.org
      BUG=v8:4654
      LOG=Y
      
      Review URL: https://codereview.chromium.org/1645223003
      
      Cr-Commit-Position: refs/heads/master@{#33614}
      f3e41d96
    • verwaest's avatar
      [runtime] further dismantle AccessorInfoHandling, reducing it to the single API usecase. · 85aba7df
      verwaest authored
      BUG=
      
      Review URL: https://codereview.chromium.org/1643563002
      
      Cr-Commit-Position: refs/heads/master@{#33613}
      85aba7df
    • bmeurer's avatar
      [for-in] Ensure that we learn from deopts within for-in loop bodies. · 0637f5f6
      bmeurer authored
      If we deoptimize from TurboFan or Crankshaft into the body of a for-in
      loop and that for-in mode then switches to slow mode (i.e. has to call
      %ForInFilter), we have to record that feedback, because otherwise we
      might actually OSR into that loop assuming that it's fast mode still,
      or even worse recompile the function later when we call it again w/o
      having rerun the for-in loop in fullcodegen from the beginning (where
      was previously the only place we could learn).
      
      R=mstarzinger@chromium.org
      BUG=v8:3650
      LOG=n
      
      Review URL: https://codereview.chromium.org/1638303008
      
      Cr-Commit-Position: refs/heads/master@{#33612}
      0637f5f6
    • balazs.kilvady's avatar
      MIPS: Fix '[builtins] Make Math.max and Math.min fast by default.' · b35a7aaf
      balazs.kilvady authored
      Port cb9b8010
      
      Original commit message:
      The previous versions of Math.max and Math.min made it difficult to
      optimize those (that's why we already have custom code in Crankshaft),
      and due to lack of ideas what to do about the variable number of
      arguments, we will probably need to stick in special code in TurboFan
      as well; so inlining those builtins is off the table, hence there's no
      real advantage in having them around as "not quite JS" with extra work
      necessary in the optimizing compilers to still make those builtins
      somewhat fast in cases where we cannot inline them (also there's a
      tricky deopt loop in Crankshaft related to Math.min and Math.max, but
      that will be dealt with later).
      
      So to sum up: Instead of trying to make Math.max and Math.min semi-fast
      in the optimizing compilers with weird work-arounds support %_Arguments
      %_ArgumentsLength, we do provide the optimal code as native builtins
      instead and call it a day (which gives a nice performance boost on some
      benchmarks).
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1643973002
      
      Cr-Commit-Position: refs/heads/master@{#33611}
      b35a7aaf