1. 11 Sep, 2015 3 commits
    • mvstanton's avatar
      Vector ICs: gyp flag to run with vector-stores on. · 18bba7cb
      mvstanton authored
      This is so we can build with the flag on in the snapshot.
      D8 then needs to be run with --vector-stores.
      
      BUG=
      R=machenbach@chromium.org
      
      Review URL: https://codereview.chromium.org/1339593002
      
      Cr-Commit-Position: refs/heads/master@{#30692}
      18bba7cb
    • bmeurer's avatar
      [stubs] Simplify the non-function case of CallConstructStub. · 622fa0ea
      bmeurer authored
      Currently we do this dance between the CallConstructStub, the
      CALL_* builtins and the %GetConstructorDelegate, %GetProxyTrap,
      and %Apply runtime functions for every [[Construct]] operation on
      non-function callables. This is complexity is unnecessary, and can
      be simplified to work without any JS builtin. This will also make it
      a lot easier to implement ES6 compliant [[Construct]] for proxies.
      
      Also sanitize the invariant for CallConstructStub, which up until now
      always restored the context itself, but that force us to always create
      another copy of all arguments in case of proxies and other callables,
      so we can relax that constraint by making the caller restore the context
      (this only affects fullcodegen, since the optimizing compilers already
      properly restore the context anyway).
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1335723002
      
      Cr-Commit-Position: refs/heads/master@{#30691}
      622fa0ea
    • mtrofin's avatar
      [turbofan] Greedy: live range grouping. · 8043a53a
      mtrofin authored
      Grouping of live ranges that would be beneficial if
      allocated on the same register. Currently, that means phi
      outputs and inputs.
      
      Review URL: https://codereview.chromium.org/1312473018
      
      Cr-Commit-Position: refs/heads/master@{#30690}
      8043a53a
  2. 10 Sep, 2015 23 commits
  3. 09 Sep, 2015 14 commits
    • mbrandy's avatar
      PPC: Fix "Desugar %DefaultConstructorCallSuper partially in parser." · f852f56c
      mbrandy authored
      R=mstarzinger@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1303333009
      
      Cr-Commit-Position: refs/heads/master@{#30666}
      f852f56c
    • mtrofin's avatar
      [turbofan] relative_id of splinters and their children. · 96c0e6f9
      mtrofin authored
      A LiveRange is identified by 2 integers: the vreg() of its TopLevel,
      which is the virtual register (operand) ID; and a relative_id(), which has
      no meaning in the program, but is valuable in debugging or tracing
      scenarios.
      
      This change ensures that relative_id is unique even in cases of splinter
      ranges and their children.
      
      Review URL: https://codereview.chromium.org/1318493005
      
      Cr-Commit-Position: refs/heads/master@{#30665}
      96c0e6f9
    • mstarzinger's avatar
      Desugar %DefaultConstructorCallSuper partially in parser. · 5b938f52
      mstarzinger authored
      This desugars the loading of the super constructor function using the
      %GetPrototype runtime function in the parser. The produced code remains
      the same while fewer parts need to be glued together.
      
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1321343004
      
      Cr-Commit-Position: refs/heads/master@{#30664}
      5b938f52
    • mstarzinger's avatar
      [runtime] Move AtomicIsLockFree out of Runtime class. · a14d2dfa
      mstarzinger authored
      R=binji@chromium.org
      
      Review URL: https://codereview.chromium.org/1327743004
      
      Cr-Commit-Position: refs/heads/master@{#30663}
      a14d2dfa
    • mbrandy's avatar
      PPC: [calls] Consistent call protocol for calls. · 422b0fa7
      mbrandy authored
      Port b37907ff
      
      Original commit message:
          The number of actual arguments should always be available, there's no
          point in trying to optimize away a simple assignment of an immediate to
          a register before some calls.
      
          The main motivation is to have a consistent state at the beginning of every
          function. Currently the arguments register (i.e. rax or eax) either contains
          the number of arguments or some random garbage depending on whether
          the callsite decided that the callee might need the information or not.
          This causes trouble with runtime implementations of functions that
          do not set internal_formal_parameter_count to the DontAdaptArguments
          sentinel (we don't have any of those yet), but also makes it impossible
          to sanity check the arguments in the callee, because the callee doesn't
          know whether the caller decided to pass the number of arguments or
          random garbage.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1314353007
      
      Cr-Commit-Position: refs/heads/master@{#30662}
      422b0fa7
    • mbrandy's avatar
      PPC: On a call to Array(), we patched a call ic. This CL makes do with a... · 50fa1e50
      mbrandy authored
      PPC: On a call to Array(), we patched a call ic. This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately.
      
      Port ba7b6413
      
      R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1322103005
      
      Cr-Commit-Position: refs/heads/master@{#30661}
      50fa1e50
    • rmcilroy's avatar
      [Interpreter] Add support for property store operations. · 23f7d34d
      rmcilroy authored
      Adds support for property store operations via Store/KeyedStore ICs. Adds the
      following bytecodes:
       - StoreIC
       - KeyedStoreIC
      
      The --vector_store flag is now required for --ignition.
      
      BUG=v8:4280
      LOG=N
      
      Review URL: https://codereview.chromium.org/1319833004
      
      Cr-Commit-Position: refs/heads/master@{#30660}
      23f7d34d
    • mvstanton's avatar
      Crankshaft: consolidated element loads always deopted on seeing the hole · 164f92d2
      mvstanton authored
      Update the consolidated load case to carefully chose the load mode
      based on the consolidated elements kind.
      
      BUG=v8:4380
      LOG=N
      
      Review URL: https://codereview.chromium.org/1329793003
      
      Cr-Commit-Position: refs/heads/master@{#30659}
      164f92d2
    • mbrandy's avatar
      AIX: Fix 'may be used uninitialized' compiler errors · 44b9f1e7
      mbrandy authored
      Fix additional cases where the AIX compiler reports that a variable
      may be used uninitialized.
      
      R=danno@chromium.org, michael_dawson@ca.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1323313003
      
      Cr-Commit-Position: refs/heads/master@{#30658}
      44b9f1e7
    • mbrandy's avatar
      PPC: Reland Vector ICs: platform support for vector-based stores. · 1b191a5d
      mbrandy authored
      Port 40fbed06
      
      Original commit message:
          The last changes for vector store functionality, they are in 3 areas:
      
          1) The new vector [keyed] store code stubs - implementation.
          2) IC and handler compiler adjustments
          3) Odds and ends. A change in ast.cc, a test update, a small Oracle fix.
      
      R=mvstanton@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=
      
      Review URL: https://codereview.chromium.org/1330883002
      
      Cr-Commit-Position: refs/heads/master@{#30657}
      1b191a5d
    • mbrandy's avatar
      PPC: [builtins] Unify the various versions of [[Call]] with a Call builtin. · 31a9396e
      mbrandy authored
      Port ccbb4ff0
      
      Original commit message:
          The new Call and CallFunction builtins supersede the current
          CallFunctionStub (and CallIC magic) and will be the single bottleneck
          for all calling, including the currently special Function.prototype.call
          and Function.prototype.apply builtins, which had handwritten (and
          not fully compliant) versions of CallFunctionStub, and also the
          CallIC(s), which where also slightly different.
      
          This also reduces the overhead for API function calls, which is still
          unnecessary high, but let's do that step-by-step.
      
          This also fixes a bunch of cases where the implicit ToObject for
          sloppy receivers was done in the wrong context (in the caller
          context instead of the callee context), which basically meant
          that we allowed cross context access to %ObjectPrototype%.
      
          MIPS and MIPS64 ports contributed by akos.palfi@imgtec.com.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1327093002
      
      Cr-Commit-Position: refs/heads/master@{#30656}
      31a9396e
    • mbrandy's avatar
      PPC: [runtime] Replace many buggy uses of %_CallFunction with %_Call. · 50c6b031
      mbrandy authored
      Port db2ba190
      
      Original commit message:
          The semantics of the %_CallFunction intrinsic seem to be very unclear,
          which resulted in a lot of bugs. Especially the combination with
          %IsSloppyModeFunction is always a bug, because the receiver would be
          wrapped in the wrong context. So the %IsSloppyModeFunction helper is
          gone now, and many of the buggy uses of %_CallFunction are also
          eliminated.
      
          If you ever need to call something with a different receiver, then
          %_Call is your friend now. It does what you want and implements the
          call sequence fully (and correct).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
      BUG=v8:4413
      LOG=n
      
      Review URL: https://codereview.chromium.org/1310303008
      
      Cr-Commit-Position: refs/heads/master@{#30655}
      50c6b031
    • mstarzinger's avatar
      [turbofan] Make %Arguments composable with inlining. · a504a184
      mstarzinger authored
      This makes the C++ fallback implementations for the two intrinsics,
      %Arguments and %ArgumentsLength composable with respect to inlining.
      Using deoptimization information gives us accurate data here.
      
      R=bmeurer@chromium.org
      TEST=mjsunit/regress/regress-4374
      BUG=v8:4374
      LOG=n
      
      Review URL: https://codereview.chromium.org/1328363002
      
      Cr-Commit-Position: refs/heads/master@{#30654}
      a504a184
    • balazs.kilvady's avatar
      MIPS64: Fix 'On a call to Array(), we patched a call ic.' · da830b0e
      balazs.kilvady authored
      Port ba7b6413
      
      Original commit message:
      This CL makes do with a single dispatcher which inlines the special handling for the Array() call case, loading the allocation site found in the vector and calling the array constructor stub appropriately.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1324093005
      
      Cr-Commit-Position: refs/heads/master@{#30653}
      da830b0e