1. 16 Feb, 2016 27 commits
  2. 15 Feb, 2016 13 commits
    • bmeurer's avatar
      [turbofan] Combine GenericLoweringPhase and ChangeLoweringPhase. · 0835ed9c
      bmeurer authored
      There's no need to use a dedicated ChangeLoweringPhase before we go to
      GenericLoweringPhase; instead that change lowering (which is really
      simplified lowering by now) should run together with generic lowering.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1697133002
      
      Cr-Commit-Position: refs/heads/master@{#34008}
      0835ed9c
    • verwaest's avatar
      [runtime] Optimize MigrateFastToFast for the transition case · 8a286ece
      verwaest authored
      This avoids quite expensive computation further downstream.
      
      Review URL: https://codereview.chromium.org/1697173002
      
      Cr-Commit-Position: refs/heads/master@{#34007}
      8a286ece
    • mbrandy's avatar
      PPC: Support immediate indices for StoreWriteBarrier. · 5ca122a1
      mbrandy authored
      Port 4eff883b
           c72b49bd
      
      Original commit message:
          Ideally we would not need the StoreWriteBarrier instructions at all,
          but represent the RecordWrite functionality as machine subgraph, but
          that'll take some time to get there. In the mean time we can have a
          shorter instruction sequence by recognizing immediate indices here.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1695333002
      
      Cr-Commit-Position: refs/heads/master@{#34006}
      5ca122a1
    • mbrandy's avatar
      PPC: [runtime] Turn ArgumentAccessStub into FastNewSloppyArgumentsStub. · ea08453c
      mbrandy authored
      Port e0129d0f
      
      Original commit message:
          Turn the fast case of ArgumentsAccessStub into a new stub
          FastNewSloppyArgumentsStub, which is similar to the existing
          FastNewStrictArgumentsStub, although not polished yet, and the slow
          case always went to the runtime anyway, so we can just directly emit
          a runtime call there.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1699923002
      
      Cr-Commit-Position: refs/heads/master@{#34005}
      ea08453c
    • mbrandy's avatar
      PPC: [crankshaft] Fix Math.min(0, 0) · dd23044a
      mbrandy authored
      Port 0d59772b
      
      Original commit message:
          for the special case where the same register is used as both left and
          right input.
      
      R=jkummerow@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1698903002
      
      Cr-Commit-Position: refs/heads/master@{#34004}
      dd23044a
    • balazs.kilvady's avatar
      MIPS64: Fix '[runtime] Introduce FastNewStrictArgumentsStub to optimize strict arguments.' · 3b980234
      balazs.kilvady authored
      Port 09d84535
      
      Original commit message:
      The FastNewStrictArgumentsStub is very similar to the recently added
      FastNewRestParameterStub, it's actually almost a copy of it, except that
      it doesn't have the fast case we have for the empty rest parameter. This
      patch improves strict arguments in TurboFan and fullcodegen by up to 10x
      compared to the previous version.
      
      Also introduce proper JSSloppyArgumentsObject and JSStrictArgumentsObject
      for the in-object properties instead of having them as constants in the
      Heap class.
      
      Drive-by-fix: Use this stub and the FastNewRestParameterStub in the
      interpreter to avoid the runtime call overhead for strict arguments
      and rest parameter creation.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1698173002
      
      Cr-Commit-Position: refs/heads/master@{#34003}
      3b980234
    • cbruni's avatar
      [counters] adding more counters and trace-events · 8eb09fac
      cbruni authored
      V8 tracks already most useful information, but lacks proper tracing scopes
      that make it possible to distinguish certain events from each other.
      - add trace-scope to track lazy-parsing due to optimization
      - add trace-scope to track code optimization
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1661883003
      
      Cr-Commit-Position: refs/heads/master@{#34002}
      8eb09fac
    • bmeurer's avatar
      [turbofan] Robustify the GraphTrimmer. · 86d1b7e8
      bmeurer authored
      The GraphTrimmer should not ever see a dead node, except for the roots
      that are explicitly fed into it. To defend against this, turn the
      condition into a DCHECK.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1698883003
      
      Cr-Commit-Position: refs/heads/master@{#34001}
      86d1b7e8
    • bmeurer's avatar
      [turbofan] Make pipeline.h independent of compiler.h. · 73eae4c2
      bmeurer authored
      Eventually compiler.h might need to depend on the Pipeline to manage its
      life cycle for concurrent recompilation, so we should not have the
      cyclic include dependency here.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1698113002
      
      Cr-Commit-Position: refs/heads/master@{#34000}
      73eae4c2
    • titzer's avatar
      [wasm] Clean up handling of function names. · 3a0377a4
      titzer authored
      R=ahaas@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1698133002
      
      Cr-Commit-Position: refs/heads/master@{#33999}
      3a0377a4
    • jkummerow's avatar
      [crankshaft] Replace stub cache harvesting with a bit of type propagation · 5aa2cb3b
      jkummerow authored
      Harvesting maps from the stub cache for megamorphic ICs is both slow
      (linear in the size of the stub cache) and imprecise (as it finds all
      maps that have a cached handler for the given property name).
      In the canonical megamorphic situation, this type feedback is useless
      anyway. The interesting case is when we can filter it down to a single
      map; however in these cases it is often possible to derive this map
      just by looking at the HGraph, which is both faster and more reliable.
      
      Review URL: https://codereview.chromium.org/1669213003
      
      Cr-Commit-Position: refs/heads/master@{#33998}
      5aa2cb3b
    • ssanfilippo's avatar
      [Interpreter] Change the output format of generate-bytecode-expectations. · e082ebdb
      ssanfilippo authored
      Now the tool produces a far more readable output format, which bears a
      lot of resemblance to YAML. In fact, the output should be machine
      parseable as such, one document per testcase. However, the output format
      may be subject to changes in future, so don't rely on this property.
      
      In general, the output format has been optimized for producing a meaningful
      textual diff, while keeping a decent readability as well. Therefore, not
      everything is as compact as it could be, e.g. for an empty const pool we get:
      
          constant pool: [
          ]
      
      instead of:
      
          constant pool: []
      
      Also, trailing commas are always inserted in lists.
      
      Additionally, now the tool accepts its output format as input. When
      operating in this mode, all the snippets are extracted, processed and
      the output is then emitted as usual. If nothing has changed, the output
      should match the input. This is very useful for catching bugs in the
      bytecode generation by running a textual diff against a known-good file.
      
      The core (namely bytecode-expectations.cc) has been extracted from the
      original cc file, which provides the utility as usual. The definitions
      in the matching header of the library have been moved into the
      v8::internal::interpreter namespace.
      
      The library exposes a class ExpectationPrinter, with a method
      PrintExpectation, which takes a test snippet as input, and writes the
      formatted expectation to the supplied stream. One might then use a
      std::stringstream to retrieve the results as a string and run it through
      a diff utility.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1688383003
      
      Cr-Commit-Position: refs/heads/master@{#33997}
      e082ebdb
    • jkummerow's avatar
      [crankshaft][arm][mips][mips64] Fix Math.min(0, 0) · 0d59772b
      jkummerow authored
      for the special case where the same register is used as both left and
      right input.
      
      Review URL: https://codereview.chromium.org/1695283002
      
      Cr-Commit-Position: refs/heads/master@{#33996}
      0d59772b