1. 17 May, 2016 3 commits
  2. 13 May, 2016 5 commits
  3. 12 May, 2016 3 commits
    • 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
    • lpy's avatar
      [Reland] Implement CPU time for OS X and POSIX. · efa27fb2
      lpy authored
      V8 tracing controller uses 2 clocks: wall clock and cpu clock. This patch
      implements CPU time for OS X and POSIX to provide more accurate
      accounting of CPU time used by each thread.
      
      BUG=v8:4984
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1966183003
      Cr-Commit-Position: refs/heads/master@{#36213}
      efa27fb2
  4. 11 May, 2016 5 commits
  5. 10 May, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Initial version of allocation folding and write barrier elimination. · b8229ec4
      bmeurer authored
      This adds a new pass MemoryOptimizer that walks over the effect chain
      from Start and lowers all Allocate, LoadField, StoreField, LoadElement,
      and StoreElement nodes, trying to fold allocations into allocation
      groups and eliminate write barriers on StoreField and StoreElement if
      possible (i.e. if the object belongs to the current allocation group and
      that group allocates in new space).
      
      R=hpayer@chromium.org, jarin@chromium.org
      BUG=v8:4931, chromium:580959
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1963583004
      Cr-Commit-Position: refs/heads/master@{#36128}
      b8229ec4
  6. 09 May, 2016 4 commits
  7. 06 May, 2016 3 commits
  8. 04 May, 2016 3 commits
    • pierre.langlois's avatar
      ARM64: [turbofan] Avoid zero-extension after a 32-bit load · f07d2cdd
      pierre.langlois authored
      A load instruction will implicitely clear the top 32 bits when writing to a W
      register. This patch avoids generating a `mov` instruction to zero-extend the
      result in this case.
      
      For example, this occurs in the generated code for dispatching to the next
      bytecode in the interpreter:
      
        kind = BYTECODE_HANDLER
        name = LdaZero
        compiler = turbofan
        Instructions (size = 36)
        0x32e64c60     0  add x19, x19, #0x1 (1)
        0x32e64c64     4  ldrb w0, [x20, x19]
        0x32e64c68     8  mov w0, w0
                          ^^^^^^^^^^
        0x32e64c6c    12  lsl x0, x0, #3
        0x32e64c70    16  ldr x1, [x21, x0]
        0x32e64c74    20  movz x0, #0x0
        0x32e64c78    24  br x1
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1950013003
      Cr-Commit-Position: refs/heads/master@{#36038}
      f07d2cdd
    • bmeurer's avatar
      [turbofan] Inline the allocation fast path. · ce38a8a9
      bmeurer authored
      Now that everything is properly wired to the effect chain when we get to
      ChangeLowering, we can safely inline the allocation fast path and only
      need to consule the slow path stub fallback when bump pointer allocation
      fails.
      
      R=jarin@chromium.org
      BUG=v8:4931
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1951853002
      Cr-Commit-Position: refs/heads/master@{#36022}
      ce38a8a9
    • martyn.capewell's avatar
      [turbofan] ARM64: Use zr to store immediate zero · 0322c20d
      martyn.capewell authored
      When storing an immediate integer or floating point zero, use the zero register
      as the source value. This avoids the need to sometimes allocate a new register.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/1945783002
      Cr-Commit-Position: refs/heads/master@{#36013}
      0322c20d
  9. 03 May, 2016 2 commits
  10. 02 May, 2016 4 commits
    • titzer's avatar
      [wasm] Remove the module environment and signature as arguments to OpcodeArity. · e2f94946
      titzer authored
      R=rossberg@chromium.org,ahaas@chromium.org
      BUG=
      
      Review-Url: https://codereview.chromium.org/1937083002
      Cr-Commit-Position: refs/heads/master@{#35941}
      e2f94946
    • bmeurer's avatar
      [turbofan] Remove left-over change bits from ChangeLowering. · 4aa02441
      bmeurer authored
      Now ChangeLowering is only concerned with lowering memory access and
      allocation operations, and all changes are consistently lowered during
      the effect/control linearization pass. The next step is to move the
      left over lowerings to a pass dedicated to eliminate redundant loads and
      stores, eliminate write barriers, fold and inline allocations.
      
      Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
      ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
      ChangeInt31ToTaggedSigned for consistency.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
      
      Committed: https://crrev.com/ceca5ae308bddda166651c654f96d71d74f617d0
      Cr-Commit-Position: refs/heads/master@{#35924}
      
      Review-Url: https://codereview.chromium.org/1941673002
      Cr-Commit-Position: refs/heads/master@{#35929}
      4aa02441
    • machenbach's avatar
      Revert of [turbofan] Remove left-over change bits from ChangeLowering.... · b4c3864b
      machenbach authored
      Revert of [turbofan] Remove left-over change bits from ChangeLowering. (patchset #2 id:20001 of https://codereview.chromium.org/1941673002/ )
      
      Reason for revert:
      [Sheriff] Breaks mac gc stress:
      https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/5821
      
      Original issue's description:
      > [turbofan] Remove left-over change bits from ChangeLowering.
      >
      > Now ChangeLowering is only concerned with lowering memory access and
      > allocation operations, and all changes are consistently lowered during
      > the effect/control linearization pass. The next step is to move the
      > left over lowerings to a pass dedicated to eliminate redundant loads and
      > stores, eliminate write barriers, fold and inline allocations.
      >
      > Also remove the atomic regions now that we wire everything into the
      > effect chain properly. This is an important step towards allocation
      > inlining.
      >
      > Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
      > ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
      > ChangeInt31ToTaggedSigned for consistency.
      >
      > CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
      >
      > Committed: https://crrev.com/ceca5ae308bddda166651c654f96d71d74f617d0
      > Cr-Commit-Position: refs/heads/master@{#35924}
      
      TBR=ishell@chromium.org,bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      
      Review-Url: https://codereview.chromium.org/1942733002
      Cr-Commit-Position: refs/heads/master@{#35927}
      b4c3864b
    • bmeurer's avatar
      [turbofan] Remove left-over change bits from ChangeLowering. · ceca5ae3
      bmeurer authored
      Now ChangeLowering is only concerned with lowering memory access and
      allocation operations, and all changes are consistently lowered during
      the effect/control linearization pass. The next step is to move the
      left over lowerings to a pass dedicated to eliminate redundant loads and
      stores, eliminate write barriers, fold and inline allocations.
      
      Also remove the atomic regions now that we wire everything into the
      effect chain properly. This is an important step towards allocation
      inlining.
      
      Drive-by-fix: Rename ChangeBitToBool to ChangeBitToTagged,
      ChangeBoolToBit to ChangeTaggedToBit, and ChangeInt31ToTagged to
      ChangeInt31ToTaggedSigned for consistency.
      
      CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux64_tsan_rel
      
      Review-Url: https://codereview.chromium.org/1941673002
      Cr-Commit-Position: refs/heads/master@{#35924}
      ceca5ae3
  11. 29 Apr, 2016 3 commits
    • machenbach's avatar
      [gn] Move build to gypfiles · 3bf44848
      machenbach authored
      This prepares for pulling chromium's build as dependency for
      gn. After this, the files in build and gypfiles need to stay
      in sync until chromium is updated.
      
      BUG=chromium:474921
      LOG=n
      
      Review-Url: https://codereview.chromium.org/1848553003
      Cr-Commit-Position: refs/heads/master@{#35898}
      3bf44848
    • titzer's avatar
      [wasm] Binary 11: Bump module version to 0xB. · ee03b721
      titzer authored
      [wasm] Binary 11: Swap the order of section name / section length.
      [wasm] Binary 11: Shorter section names.
      [wasm] Binary 11: Add a prefix for function type declarations.
      [wasm] Binary 11: Function types encoded as pcount, p*, rcount, r*
      [wasm] Fix numeric names for functions.
      
      R=rossberg@chromium.org,jfb@chromium.org,ahaas@chromium.org
      BUG=chromium:575167
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/1896863003
      Cr-Commit-Position: refs/heads/master@{#35897}
      ee03b721
    • titzer's avatar
      [wasm] Binary 11: WASM AST is now postorder. · 2aa4656e
      titzer authored
      [wasm] Binary 11: br_table takes a value.
      [wasm] Binary 11: Add implicit blocks to if arms.
      [wasm] Binary 11: Add arities to call, return, and breaks
      [wasm] Binary 11: Add experimental version.
      
      This CL changes the encoder, decoder, and tests to use a postorder
      encoding of the AST, which is more efficient in decode time and
      space.
      
      R=bradnelson@chromium.org,rossberg@chromium.org,binji@chromium.org
      BUG=chromium:575167
      LOG=Y
      
      Review-Url: https://codereview.chromium.org/1830663002
      Cr-Commit-Position: refs/heads/master@{#35896}
      2aa4656e
  12. 28 Apr, 2016 1 commit
  13. 25 Apr, 2016 3 commits