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. 19 Feb, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Remove the JSContextRelaxation reducer. · 8a7186b8
      bmeurer authored
      This reducer doesn't really add value, because:
      
       (a) it is only concerned with JSCallFunction and JSToNumber, but when
           we get to it, all JSCallFunction nodes will have been replaced by
           Call nodes, and in the not so far future, we will also have
           replaced almost all JSToNumber nodes with better code,
       (b) and the reducer tries to be smart and use one of the outermost
           contexts, but that might not be beneficial always; actually it
           might even create longer live ranges and lead to more spilling
           in some cases.
      
      But most importantly, the JSContextRelaxation currently blocks inlining
      based on SharedFunctionInfo, because it requires the inliner to check
      the native context, which in turn requires JSFunction knowledge. So I'm
      removing this reducer for now to unblock the more important inliner
      changes.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1715633002
      
      Cr-Commit-Position: refs/heads/master@{#34139}
      8a7186b8
  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. 20 Jul, 2015 1 commit
    • danno's avatar
      [turbofan]: Add a context relaxation Reducer · cca5e74a
      danno authored
      In many cases, the context that TurboFan's ASTGraphBuilder or subsequent
      reduction operations attaches to nodes does not need to be that exact
      context, but rather only needs to be one with the same native context,
      because it is used internally only to fetch the native context, e.g. for
      creating and throwing exceptions.
      
      This reducer recognizes common cases where the context that is specified
      for a node can be relaxed to a canonical, less specific one. This
      relaxed context can either be the enclosing function's context or a specific
      Module or Script context that is explicitly created within the function.
      
      This optimization is especially important for TurboFan-generated code stubs
      which use context specialization and inlining to generate optimal code.
      Without context relaxation, many extraneous moves are generated to pass
      exactly the right context to internal functions like ToNumber and
      AllocateHeapNumber, which only need the native context. By turning context
      relaxation on, these moves disappear because all these common internal
      context uses are unified to the context passed into the stub function, which
      is typically already in the correct context register and remains there for
      short stubs. It also eliminates the explicit use of a specialized context
      constant in the code stub in these cases, which could cause memory leaks.
      
      Review URL: https://codereview.chromium.org/1244583003
      
      Cr-Commit-Position: refs/heads/master@{#29763}
      cca5e74a
  8. 23 Jun, 2015 1 commit
  9. 28 May, 2015 1 commit
  10. 20 May, 2015 1 commit
  11. 15 May, 2015 1 commit
  12. 11 May, 2015 1 commit