1. 01 Jun, 2015 11 commits
    • chunyang.dai's avatar
      X87: VectorICs: allocating slots for store ics in ast nodes. · f1cc4ed2
      chunyang.dai authored
      port 5450fc07 (r18659)
      
      original commit message:
      
          Also adapt code generation to pass the slot to the
          store/keyed-store ic. AST nodes ObjectLiteral, Assignment,
          ForEach, Call and CountOperation now include one or more
          feedback vector ic slot ids.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1155383003
      
      Cr-Commit-Position: refs/heads/master@{#28718}
      f1cc4ed2
    • chunyang.dai's avatar
      X87: [es6] Support super.property in eval and arrow functions · b471651e
      chunyang.dai authored
      port 44e98103 (r28644)
      
      original commit message:
      
          When we enter a method that needs access to the [[HomeObject]]
          we allocate a local variable `.home_object` and assign it the
          value from the [[HomeObject]] private symbol. Something along
          the lines of:
      
            method() {
              var .home_object = %ThisFunction()[home_object_symbol];
              ...
            }
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1158543004
      
      Cr-Commit-Position: refs/heads/master@{#28717}
      b471651e
    • chunyang.dai's avatar
      X87: Move hash code from hidden string to a private symbol · 5211fa0c
      chunyang.dai authored
      port eca5b5d7 (r28622).
      
      original commit message:
      
         * Hash code is now just done with a private own symbol instead of the hidden string, which predates symbols.
          * In the long run we should do all hidden properties this way and get rid of the
          hidden magic 0-length string with the zero hash code.  The advantages include
          less complexity and being able to do things from JS in a natural way.
          * Initially, the performance of weak set regressed, because it's a little harder
          to do the lookup in C++.  Instead of heroics in C++ to make things faster I
          moved some functionality into JS and got the performance back. JS is supposed to be good at looking up named properties on objects.
          * This also changes hash codes of Smis so that they are always Smis.
      
          Performance figures are in the comments to the code review.  Summary: Most of js-perf-test/Collections is neutral.  Set and Map with object keys are 40-50% better.  WeakMap is -5% and WeakSet is +9%.
      
          In the code review comments is a patch with an example of the heroics we could do in C++ to make lookup faster (I hope we don't have to do this.  Instead of checking for the property, then doing a new
      
          In a similar vein we could give the magic zero hash code to the hash code
          symbol.  Then when we look up the hash code we would sometimes see the table
          with all the hidden properties.  This dual use of the field for either the hash
          code or the table with all hidden properties and the hash code is rather ugly,
          and this CL gets rid of it.  I'd be loath to bring it back.  On the benchmarks quoted above it's slightly slower than moving the hash code lookup to JS like in this CL.
      
          One worry is that the benchmark results above are more monomorphic than real
          world code, so may be overstating the performance benefits of moving to JS.  I
          think this is part of a general issue we have with handling polymorphic code in
          JS and any solutions there will benefit this solution, which boils down to
          regular property access. Any improvement there will lift all boats.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1153963010
      
      Cr-Commit-Position: refs/heads/master@{#28716}
      5211fa0c
    • chunyang.dai's avatar
      X87: Move work to omit unnecessary ObjectLiteral stores to the numbering pass. · 6b93438d
      chunyang.dai authored
      port 32de6778 (r29615)
      
      original commit message:
      
          The reason is that this information will be needed to compute the number of
          vector ic slots done at numbering time.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1165693002
      
      Cr-Commit-Position: refs/heads/master@{#28715}
      6b93438d
    • hablich's avatar
      For Micro-benchmarks for 'with' · f62d5ce9
      hablich authored
      R=arv@chromium.org, mstarzinger@chromium.org
      BUG=v8:4131
      LOG=n
      
      Review URL: https://codereview.chromium.org/1153363002
      
      Cr-Commit-Position: refs/heads/master@{#28714}
      f62d5ce9
    • mstarzinger's avatar
      [turbofan] New operator for loads of DYNAMIC_[GLOBAL,LOCAL]. · 861c4274
      mstarzinger authored
      This introduces two new operators for loads of variables bound to
      Variable::LOOKUP locations. Currently they all still lower to runtime
      calls, but will allow optimization during typed lowering.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1155103004
      
      Cr-Commit-Position: refs/heads/master@{#28713}
      861c4274
    • jochen's avatar
      Also expose DefineOwnProperty · 4b548dd1
      jochen authored
      In contrast to CreateDataProperty, this will always call out to JS
      
      BUG=475206
      R=adamk@chromium.org,verwaest@chromium.org
      LOG=y
      
      Review URL: https://codereview.chromium.org/1167473002
      
      Cr-Commit-Position: refs/heads/master@{#28712}
      4b548dd1
    • bmeurer's avatar
      [turbofan] First step towards sanitizing for-in and making it optimizable. · e2e47f30
      bmeurer authored
      In a nutshell: The FILTER_KEY builtin is gone, and was replaced by a
      simple runtime call to ForInFilter, which does everything and is even
      cheaper (because FILTER_KEY used to call into the runtime anyway).
      And ForInFilter returns either the name or undefined, which makes it
      possible to remove the control flow construction from the AstGraphBuilder,
      and thereby make both the initialization and the per-loop code of for-in
      optimizable later (in typed lowering).
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1160983004
      
      Cr-Commit-Position: refs/heads/master@{#28711}
      e2e47f30
    • michael_dawson's avatar
      Fix compile failure for AIX · 212f4537
      michael_dawson authored
      Fix another may be uninitialized compile failure on AIX
      in src/heap/heap.cc
      
      R=svenpanne@chromium.org, mbrandy@us.ibm.com
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1153233004
      
      Cr-Commit-Position: refs/heads/master@{#28710}
      212f4537
    • jacob.bramley's avatar
      [arm] Fix detection of architecture versions. · 84b9afe4
      jacob.bramley authored
      Use __ARM_ARCH_6ZK__ instead of __ARM_ARCH_6KZ__. The architecture is
      technically called ARMv6KZ, but GCC has always called it 6ZK.
      
      Clang defines __ARM_ARCH_6K__ for this target, and is unaffected.
      
      BUG=v8:3978
      LOG=N
      
      Review URL: https://codereview.chromium.org/1145973004
      
      Cr-Commit-Position: refs/heads/master@{#28709}
      84b9afe4
    • v8-autoroll's avatar
      Update V8 DEPS. · df7a8adf
      v8-autoroll authored
      Rolling v8/tools/clang to ed19e3a88ba8dccc757b6f2e76d06c5d1355cfa3
      
      TBR=machenbach@chromium.org
      
      Review URL: https://codereview.chromium.org/1166613002
      
      Cr-Commit-Position: refs/heads/master@{#28708}
      df7a8adf
  2. 31 May, 2015 2 commits
  3. 30 May, 2015 1 commit
  4. 29 May, 2015 15 commits
  5. 28 May, 2015 11 commits