1. 13 May, 2016 33 commits
  2. 12 May, 2016 7 commits
    • vogelheim's avatar
      Remove Expression::bounds_, in order to conserve memory during parsing. · bb04e124
      vogelheim authored
      Expression::bounds_ is used only by a subset of compile passes, but the
      data structure occupies space for every Expression node ever parsed. This
      unneccessarily increases memory consumption. Particularly, peak memory
      consumption during startup, which may cause out-of-memory errors.
      
      This CL
      - removes Expression::bounds_;
      - introduces an AstTypeBounds container, which mappes Expression* to Bounds;
      - modifies the code that actually requires bounds information, namely
        Crankshaft compile and AsmWasmBuilder, to instantiate such an AstTypeBounds
        container before typing and to pass it to the code that consumes this
        information; and
      - modifies all accesses to Expression::bounds_ to instead access the bounds
        via the container instead.
      
      Additionally, this rewrites test-ast-expression-visitor. The reason is that
      this code attempted to test AstExpressionVisitor but did so exclusively
      through its subclass ExpressionTypeCollector, meaning that the test dealt
      almost exclusively with type bounds despite the class-under-test having
      no knowledge or functionality related to it. Worse, the test was written
      in a way to assume that type bounds were available outside & after
      compilation, which is something this change changes.
      
      BUG=v8:4947
      
      Review-Url: https://codereview.chromium.org/1968383002
      Cr-Commit-Position: refs/heads/master@{#36222}
      bb04e124
    • jwolfe's avatar
      In parallel to the strict octal check that would reject `012` in strict mode,... · d0b6686c
      jwolfe authored
      In parallel to the strict octal check that would reject `012` in strict mode, this patch collects UseCounters for `089` in strict mode. The spec says this should be an error, but this patch does not report it as such.
      
      BUG=v8:4973
      LOG=y
      
      Review-Url: https://codereview.chromium.org/1948403002
      Cr-Commit-Position: refs/heads/master@{#36221}
      d0b6686c
    • oth's avatar
      [interpreter] Introduce bytecode generation pipeline. · 02b7373a
      oth authored
      This change introduces a pipeline for the final stages of
      bytecode generation.
      
      The peephole optimizer is made distinct from the BytecodeArrayBuilder.
      
      A new BytecodeArrayWriter is responsible for writing bytecode. It
      also keeps track of the maximum register seen and offers a potentially
      smaller frame size.
      
      R=rmcilroy@chromium.org
      LOG=N
      BUG=v8:4280
      
      Review-Url: https://codereview.chromium.org/1947403002
      Cr-Commit-Position: refs/heads/master@{#36220}
      02b7373a
    • bmeurer's avatar
      [turbofan] Fix optimized lowering of Math.imul. · fa7460ad
      bmeurer authored
      We eagerly inserted Int32Mul for Math.imul during builtin lowering and
      messed up with the types, which confused the representation selection.
      This adds a proper NumberImul operator, and fixes the builtin reducer to
      do the right thing according to the spec.
      
      R=mstarzinger@chromium.org
      BUG=v8:5006
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1971163002
      Cr-Commit-Position: refs/heads/master@{#36219}
      fa7460ad
    • jacob.bramley's avatar
      [arm] Clean up handling of usat. · 83b9e1be
      jacob.bramley authored
      The usat instruction is available from ARMv6, so there's no need to
      check for the ARMv7 feature before using it. ARMv6 is the oldest
      supported architecture in V8.
      
      Correcting this allows the removal of a special case for predictable
      code size.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1974903002
      Cr-Commit-Position: refs/heads/master@{#36218}
      83b9e1be
    • rmcilroy's avatar
      Add V8.Execute histogram to measure time spent executing JS code. · e8f5a272
      rmcilroy authored
      Adds a V8.Execute histogram to measure the amount of time spent executing
      JS code.
      
      BUG=v8:4865
      LOG=N
      
      Review-Url: https://codereview.chromium.org/1974003002
      Cr-Commit-Position: refs/heads/master@{#36217}
      e8f5a272
    • mstarzinger's avatar
      [wasm] Add flag to validate asm.js modules. · f73cf983
      mstarzinger authored
      This adds the --validate-asm flag which will trigger validation of all
      asm.js modules before they are being compiled. In case a module doesn't
      pass validation, a warning will be printed, but compilation as well as
      execution will continue unhampered.
      
      R=mvstanton@chromium.org
      
      Review-Url: https://codereview.chromium.org/1972593002
      Cr-Commit-Position: refs/heads/master@{#36216}
      f73cf983