1. 13 Dec, 2016 1 commit
  2. 15 Nov, 2016 1 commit
  3. 27 Sep, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Fix indirect escapes in escape analysis. · 437a33ef
      mstarzinger authored
      This makes sure we only replace load operations for fields on virtual
      objects. Even though data flow information for non-virtual (escaping)
      allocations is available, it might be inaccurate in certain situations
      where object state hasn't been cleared.
      
      R=jarin@chromium.org
      TEST=mjsunit/compiler/regress-escape-analysis-indirect
      
      Review-Url: https://codereview.chromium.org/2369953002
      Cr-Commit-Position: refs/heads/master@{#39776}
      437a33ef
  4. 23 Sep, 2016 1 commit
  5. 22 Sep, 2016 1 commit
  6. 09 Aug, 2016 1 commit
  7. 03 Aug, 2016 1 commit
  8. 17 May, 2016 2 commits
  9. 04 Feb, 2016 1 commit
  10. 25 Jan, 2016 2 commits
  11. 22 Jan, 2016 1 commit
  12. 20 Jan, 2016 1 commit
    • sigurds's avatar
      [turbofan] Improve escape analysis. · 4efbeac1
      sigurds authored
      * Treat Select nodes as escaping
      * Correctly void virtual field information
        after a store to a non-const index
      * Add a shortcut if all allocates escape
      * Add a shortcut if no allocates are discovered
      * Only reduce FrameState/StateValues nodes if they
        have virtual allocates as input (transitively)
      * Fix bug in FrameState/StateValues duplication
      * Add check to verifier: First 3 inputs of FrameState
        must be StateValues
      
      R=mstarzinger@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1583213003
      
      Cr-Commit-Position: refs/heads/master@{#33406}
      4efbeac1
  13. 14 Jan, 2016 1 commit
  14. 13 Jan, 2016 1 commit
  15. 05 Jan, 2016 2 commits
    • sigurds's avatar
      [turbofan] Deopt support for escape analysis · 3b473d7a
      sigurds authored
      Deopt support is added on two levels. On the IR level,
      a new ObjectState node is added, which represenents an
      object to be materialized. ObjectState nodes appear as
      inputs of FrameState and StateValues nodes. On the
      instruction select/code-generation level, the
      FrameStateDescriptor class handles the nesting
      introduced by ObjectState, and ensures that deopt code
      with CAPTURED_OBJECT/DUPLICATED_OBJECT entries are
      generated similarly to what crankshaft's escape
      analysis does.
      
      Two unittests test correctness of the IR level implementation.
      
      Correctness for instruction selection / code generation
      is tested by mjsunit tests.
      
      R=jarin@chromium.org,mstarzinger@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1485183002
      
      Cr-Commit-Position: refs/heads/master@{#33115}
      3b473d7a
    • sigurds's avatar
      [turbofan] Add performance counters for escape analysis · 89654538
      sigurds authored
      R=bmeurer@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1559003002
      
      Cr-Commit-Position: refs/heads/master@{#33107}
      89654538
  16. 14 Dec, 2015 2 commits
    • sigurds's avatar
      [turbofan] Escape Analysis improvements · 43905141
      sigurds authored
      Move replacements out of virtual object. Replacements are
      global to the graph and are not dependent on the virtual
      state (after they are discovered).
      
      R=mstarzinger@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1527533002
      
      Cr-Commit-Position: refs/heads/master@{#32838}
      43905141
    • sigurds's avatar
      [turbofan] Stabilize escape analysis (without deopt) · 3161c171
      sigurds authored
      Bugfixes and improvements in escape analysis include:
      
      * Handling of ObjectIsSmi (non-escaping)
      * Handling of nested phi replacements
      * Handling of phis with arity > 2
      * Resilience against effectful nodes dangling from start
      * Allocations escape now, if non-const load/store is performed
      * Fixed a bug where non-allocated objects where tracked
      * Allow fixed double arrays to be tracked
      
      R=mstarzinger@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1510973006
      
      Cr-Commit-Position: refs/heads/master@{#32833}
      3161c171
  17. 07 Dec, 2015 1 commit
    • sigurds's avatar
      [turbofan] Improve escape analysis · 5b582114
      sigurds authored
      This patch improves escape analysis and fixes bugs
      triggered by clusterfuzz. Impovements include:
      * Handling of LoadElement/StoreElement if index is a
        constant
      * Handling of JSStoreProperty: invalidate all information,
        as the store could have altered any field.
      * Treat phis that use an allocation as escaping
      * Improve resolution of replacements
      
      R=mstarzinger@chromium.org
      BUG=v8:4586
      LOG=n
      
      Review URL: https://codereview.chromium.org/1499143002
      
      Cr-Commit-Position: refs/heads/master@{#32656}
      5b582114
  18. 02 Dec, 2015 2 commits