1. 01 Aug, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Add support for accessor inlining. · 35a195e1
      bmeurer authored
      Allow inlining of getters and setters into TurboFan optimized code.
      This just adds the basic machinery required to essentially inline
      the setter and getter dispatch code for the (keyed) load/store ICs.
      There'll be follow up CLs to also actually inline some of the interesting
      accessor functions itself, like the byteLength and friends for the
      TypedArrays.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2198473002
      Cr-Commit-Position: refs/heads/master@{#38192}
      35a195e1
  2. 09 Mar, 2016 1 commit
  3. 05 Jan, 2016 1 commit
    • 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
  4. 18 Dec, 2015 1 commit
    • rmcilroy's avatar
      [Interpreter] Generate valid FrameStates in the Bytecode Graph Builder. · 32211800
      rmcilroy authored
      Adds FrameState nodes to graphs built by the Bytecode Graph Builder, in
      preparation for adding deopt support. Also adds a new
      FrameStateType::kInterpretedFunction to allow for specialized deopt
      stack translation for interpreted frames. Finally adds support for
      disabling typed lowering of binary ops, since the current approach
      relies on a FrameState hack which does not apply to interpreted frames
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1514413002
      
      Cr-Commit-Position: refs/heads/master@{#32964}
      32211800
  5. 12 Nov, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Initial support for constructor call inlining. · 11d5d09c
      mstarzinger authored
      This implements a first version of support for constructor call inlining
      in the inlining machinery. For now we can only inline calls where the
      actual constructor and the original constructor coincide (i.e. no super
      constructor calls). Note that the target of a super constructor call is
      loaded with a runtime call, so there is no way for it to be constant
      promoted at the moment.
      
      R=bmeurer@chromium.org
      BUG=v8:4544
      LOG=n
      
      Review URL: https://codereview.chromium.org/1435873002
      
      Cr-Commit-Position: refs/heads/master@{#31954}
      11d5d09c
  6. 12 Aug, 2015 1 commit
    • mstarzinger's avatar
      Remove inline header includes from non-inline headers (1). · 00a07bc1
      mstarzinger authored
      This tries to remove includes of "-inl.h" headers from normal ".h"
      headers, thereby reducing the chance of any cyclic dependencies and
      decreasing the average size of our compilation units.
      
      Note that this change still leaves 7 violations of that rule in the
      code. However there now is the "tools/check-inline-includes.sh" tool
      detecting such violations.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1283033003
      
      Cr-Commit-Position: refs/heads/master@{#30125}
      00a07bc1
  7. 23 Jun, 2015 1 commit
  8. 28 May, 2015 1 commit
  9. 15 May, 2015 1 commit
  10. 11 May, 2015 1 commit