1. 31 Aug, 2016 15 commits
    • jochen's avatar
      Move pre-declaring the this variable to Scope::Analyze · 92679b02
      jochen authored
      The goal is to not have to look at the outer scope chain during parsing.
      
      BUG=v8:5215
      R=verwaest@chromium.org,marja@chromium.org
      
      Review-Url: https://codereview.chromium.org/2298673002
      Cr-Commit-Position: refs/heads/master@{#39042}
      92679b02
    • mlippautz's avatar
      [heap] Integrate embedder heap tracer into incremental marking · 998c9285
      mlippautz authored
      - Respect a deadline when processing wrappers during incremental marking, i.e.,
        don't force completetion on each individual step
      - Only finalize when both, the internal marking deque and wrappers, are
        processed
      
      Some results (twitter using --enable-blink-features=TraceWrappables)
      
      === BEFORE ===
      incremental_wrapper_tracing_longest_step
        len: 13
        min: 0.0
        ---> max: 6.6
        ---> avg: 3.83846153846
        [0,5[: 7
        [5,10[: 6
      mark.wrapper_tracing
        len: 13
        min: 0.0
        max: 2.0 (non-incremental MC)
        avg: 0.153846153846
        [0,5[: 13
      
      === AFTER ===
      incremental_wrapper_tracing_longest_step
        len: 8
        min: 0.0
        ---> max: 1.1
        ---> avg: 0.8875
        [0,5[: 8
      mark.wrapper_tracing (not excluding non-incremental MC)
        len: 8
        min: 0.0
        max: 2.5 (non-incremental MC)
        avg: 0.3125
        [0,5[: 8
      
      BUG=chromium:468240
      R=ulan@chromium.org
      
      Review-Url: https://codereview.chromium.org/2287343002
      Cr-Commit-Position: refs/heads/master@{#39041}
      998c9285
    • bmeurer's avatar
      [crankshaft] Disable further folding already folded allocations. · 7b79224b
      bmeurer authored
      When we try to further fold previously folded allocations in Crankshaft
      GVN we don't properly transform the allocations involved, which causes
      the mechanism to leave holes in the new/old space (and thereby violate
      the iterability property of the new/old space).
      
      BUG=chromium:621868
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2297983003
      Cr-Commit-Position: refs/heads/master@{#39040}
      7b79224b
    • verwaest's avatar
      Get rid of PropagateScopeInfo, update asm_function in set_asm_module instead. · ce9e7738
      verwaest authored
      The last user was propagating asm_module_ to inner function scopes as asm_function_. asm_function_ is already set upon scope creation when the outer scope IsAsmModule(). With default parameter it's possible that inner scopes are created before set_asm_module() is called. To keep current behavior we'll eagerly mark inner scopes as asm_function_ upon set_asm_module().
      
      There's only one special case that used to be marked asm_function_ which is now no longer marked as such: asm functions in block scopes that are 'Finalized'. PropagateScopeInfo used to mark them as asm_function_ as well, whereas the new version would not mark them upon construction of the inner scope.
      
      I presume both above cornercases aren't actually intended valid asm.js use-cases anyway. The second we can now easily identify in the verifier and mark as invalid asm, since we'll have an asm module with non-asm-function inner functions. If we want to disallow the first, we can also not mark them as asm_functions_ (by removing the loop I added in set_asm_module), which will reveal this structure to the validator.
      
      BUG=v8:5209
      
      Review-Url: https://codereview.chromium.org/2270743003
      Cr-Commit-Position: refs/heads/master@{#39039}
      ce9e7738
    • marja's avatar
      Separate CompilationInfo into its own file. · 06451354
      marja authored
      This way, many files which only need CompilationInfo but not compiler.h
      and its dependencies can include just compilation-info.h.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2284313003
      Cr-Commit-Position: refs/heads/master@{#39038}
      06451354
    • jochen's avatar
      Unify DeclarationScope::Analyze · 5b25cbb5
      jochen authored
      R=marja@chromium.org
      TBR=verwaest@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/2294193003
      Cr-Commit-Position: refs/heads/master@{#39037}
      5b25cbb5
    • marja's avatar
      Move DeclarationDescriptor to ParserBase. · 4999717e
      marja authored
      This is the first step towards unifying ParseVariableDeclarations.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2297643002
      Cr-Commit-Position: refs/heads/master@{#39036}
      4999717e
    • v8-autoroll's avatar
      Update V8 DEPS. · 896323eb
      v8-autoroll authored
      Rolling v8/build to 679c9fd3fa7390897bcf6891f0dc57a5e5dced0d
      
      Rolling v8/tools/mb to d939c7d364f0565ac2ddcae09aafe01c9bf8007d
      
      TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2293333002
      Cr-Commit-Position: refs/heads/master@{#39035}
      896323eb
    • machenbach's avatar
      [gn] Port linux_use_bundled_binutils_override GN variable · d4ec5f1c
      machenbach authored
      Ports https://codereview.chromium.org/2293853002 to unblock
      deps roller.
      
      BUG=474921
      TBR=jochen@chromium.org, kjellander@chromium.org, vogelheim@chromium.org
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/2290233005
      Cr-Commit-Position: refs/heads/master@{#39034}
      d4ec5f1c
    • 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 25 commits