1. 31 Aug, 2016 6 commits
    • bmeurer's avatar
      [turbofan] Don't eliminate FinishRegion nodes. · a45da58b
      bmeurer authored
      The way we use FinishRegion for transitioning stores makes them eligible
      for elimination by TypedOptimization, which is unintended and removes
      the atomicity of the transitioning stores. This is a quickfix to ensure
      that we don't remove the FinishRegion nodes during TypedOptimization;
      the real fix is probably to have separate region operators for value
      (producing) regions (i.e. allocations) and for effect-only regions (i.e.
      transitioning stores).
      
      R=jarin@chromium.org
      BUG=v8:5303
      
      Review-Url: https://codereview.chromium.org/2293023003
      Cr-Commit-Position: refs/heads/master@{#39033}
      a45da58b
    • bmeurer's avatar
      [turbofan] Extend LoadElimination to introduce TypeGuards. · b98d64f9
      bmeurer authored
      If the type of a tracked field or element value is less precise than the
      advertised type of the field or element load, then we replace the load
      operation with a TypeGuard that guards the advertised type.
      
      R=jarin@chromium.org
      BUG=v8:5267
      
      Review-Url: https://codereview.chromium.org/2295643002
      Cr-Commit-Position: refs/heads/master@{#39032}
      b98d64f9
    • bmeurer's avatar
      [turbofan] Remove remaining uses of Class type from the compiler. · 2b938990
      bmeurer authored
      We (mis)used Type::Class to track stable field maps in the past. But
      that always more or less unsupport and wrong for various reasons, mostly
      because the class types do not really present static information and
      thus it is possible to violate fundamental assumptions of the type
      system (i.e. intersecting class types and other types produces
      "interesting" results).
      
      Now it is possible to finally nuke the class types completely and thus
      simplify (and ideally correctify) the type system further.
      
      Note to performance sheriff: We do expect to see some performance
      regressions from this change. This is because we do not yet have a sane
      replacement mechanism to track known field maps and utilize them during
      LoadElimination. This will be accomplished in a follow up CL.
      
      BUG=v8:5270,v8:5267
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2293343002
      Cr-Commit-Position: refs/heads/master@{#39031}
      2b938990
    • adamk's avatar
      Remove duplicated code from comma-separated Expression parsing · 9c00c889
      adamk authored
      This removes two bits of duplication:
        - Parsing of each AssignmentExpression, which previously was called
          first outside the loop and then inside the loop.
        - Parsing of arrow rest parameters, which previously was handled
          separately for the one-arg and N-arg cases.
      
      The only change in behavior is in a few error messages.
      
      Review-Url: https://codereview.chromium.org/2279363002
      Cr-Commit-Position: refs/heads/master@{#39030}
      9c00c889
    • adamk's avatar
      Revert of Refactor object/class literal property name parsing (patchset #7... · b9810ba0
      adamk authored
      Revert of Refactor object/class literal property name parsing (patchset #7 id:120001 of https://codereview.chromium.org/2278153004/ )
      
      Reason for revert:
      Fails to reject "{*foo: 1}" as an object literal, found
      by the fuzzer:
      
      https://build.chromium.org/p/client.v8/builders/V8%20Fuzzer/builds/12315/steps/Fuzz%20on%20Ubuntu-12.04/logs/stdio
      
      Original issue's description:
      > Refactor object/class literal property name parsing
      >
      > This patch arranges that property names are parsed in a single pass,
      > reporting the name as well as the type of the property, instead of
      > parsing qualifiers like 'static' or 'get' initially as names and then
      > re-parsing. This change is easier to reason about, very slightly (4%)
      > faster in some cases (although slower in other, less common ones, though
      > this slowdown will be fixed in an upcoming patch), and is a prerequisite
      > for separating the parsing of object and class literal properties, which
      > will become increasingly important as ECMAScript adds more class features.
      >
      > Committed: https://crrev.com/6dd26c729584024e17a05a2a76b319d4aecdc138
      > Cr-Commit-Position: refs/heads/master@{#39027}
      
      TBR=littledan@chromium.org,marja@chromium.org,bakkot@google.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2295743003
      Cr-Commit-Position: refs/heads/master@{#39029}
      b9810ba0
    • mtrofin's avatar
      [wasm] mjsunit support for I32 globals and test · 03f3da45
      mtrofin authored
      Test ensuring globals are isolated between instances. Also
      added support for globals section to mjsunit's
      WebModuleBuilder as a prerequisite.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2296993002
      Cr-Commit-Position: refs/heads/master@{#39028}
      03f3da45
  2. 30 Aug, 2016 34 commits