Commit Graph

26431 Commits

Author SHA1 Message Date
machenbach
392d1469d3 [Interpreter] Disable another flaky test262 test.
This is for disabling 9.2.2. for release on arm64
(approximating a bit).

BUG=v8:4280
LOG=N
NOTRY=True
TBR=rmcilroy@chromium.org

Review URL: https://codereview.chromium.org/1432183002

Cr-Commit-Position: refs/heads/master@{#31939}
2015-11-11 08:09:59 +00:00
bmeurer
f5e6dcb62b [turbofan] Add support to lower Function.prototype.call.
Support lowering of Function.prototype.call in the JSBuiltinReducer,
which is actually straightforward because of the way we represent JS
calls in TurboFan.  Currently we cannot inline the actual target yet,
since inlining still runs before typed lowering, but that will be
possible as well soon(ish).

R=jarin@chromium.org

Review URL: https://codereview.chromium.org/1439533002

Cr-Commit-Position: refs/heads/master@{#31938}
2015-11-11 07:26:45 +00:00
paul.lind
6e0aa37c7e MIPS64: Fix after [turbofan] Avoid unnecessary write barriers and improve code generation.
Use 64-bit add for address.

TEST=mjsunit/sparse-array.js, others.
BUG=

Review URL: https://codereview.chromium.org/1435793002

Cr-Commit-Position: refs/heads/master@{#31937}
2015-11-11 06:38:40 +00:00
v8-autoroll
1ff9258ba6 Update V8 DEPS.
Rolling v8/buildtools to 4a95614772d9bcbd8bc197e1d9bd034e088fc740

TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org

Review URL: https://codereview.chromium.org/1439503002

Cr-Commit-Position: refs/heads/master@{#31936}
2015-11-11 04:26:08 +00:00
zhengxing.li
f1478bd141 X87: [turbofan] Avoid unnecessary write barriers and improve code generation.
port 1e2770123b (r31914)

   original commit message:
   Avoid write barriers when storing values in the root set, and use
   cheaper write barriers for storing maps or tagged pointers. Also
   improve the generated code for write barriers, utilizing the out
   of line code mechanism that is available to TurboFan backends,
   which moves the unlikely case out of the hot path.

BUG=

Review URL: https://codereview.chromium.org/1435743003

Cr-Commit-Position: refs/heads/master@{#31935}
2015-11-11 03:37:55 +00:00
zhengxing.li
e9528b8300 X87: Support fast-path allocation for subclass constructors with correctly initialized initial maps.
port b9d25d86a8 (r31913)

  original commit message:

BUG=

Review URL: https://codereview.chromium.org/1434853002

Cr-Commit-Position: refs/heads/master@{#31934}
2015-11-11 03:35:19 +00:00
mbrandy
693c553c54 PPC64: Implemented the RoundInt64ToFloat32 TurboFan operator.
R=ahaas@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/1409073016

Cr-Commit-Position: refs/heads/master@{#31933}
2015-11-11 02:17:04 +00:00
mostynb
d62efc1284 make v8_use_snapshot configurable in gn
Changing this value is not guaranteed to work yet, but it needs to be
an arg in order to experiment with it.

Review URL: https://codereview.chromium.org/1427343003

Cr-Commit-Position: refs/heads/master@{#31932}
2015-11-11 01:09:15 +00:00
mbrandy
d151feeb37 PPC64: Implemented the Word64Popcnt TurboFan operator.
R=ahaas@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/1413833013

Cr-Commit-Position: refs/heads/master@{#31931}
2015-11-10 23:06:24 +00:00
epertoso
56c7a053e9 Revert changes introduced in http://crrev.com/1367953002.
This CL is in preparation for the API change introduced in http://crrev.com/1407313004.

BUG=

Review URL: https://codereview.chromium.org/1434693008

Cr-Commit-Position: refs/heads/master@{#31930}
2015-11-10 21:00:18 +00:00
ahaas
1b535ca075 Implemented the RoundInt64ToFloat32 TurboFan operator for x64, arm64, and mips64.
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1435603003

Cr-Commit-Position: refs/heads/master@{#31929}
2015-11-10 20:39:57 +00:00
ahaas
01fd8e05dc Implemented the Word64Popcnt TurboFan operator for x64.
Popcnt is implemented as an optional operator, which is only implementd by x64
at the moment.

Review URL: https://codereview.chromium.org/1424173006

Cr-Commit-Position: refs/heads/master@{#31928}
2015-11-10 20:38:40 +00:00
mbrandy
e2f4f04f20 PPC: [turbofan] Avoid unnecessary write barriers and improve code generation.
Port 1e2770123b

Original commit message:
    Avoid write barriers when storing values in the root set, and use
    cheaper write barriers for storing maps or tagged pointers. Also
    improve the generated code for write barriers, utilizing the out
    of line code mechanism that is available to TurboFan backends,
    which moves the unlikely case out of the hot path.

R=bmeurer@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/1431923003

Cr-Commit-Position: refs/heads/master@{#31927}
2015-11-10 19:59:23 +00:00
mbrandy
f372694458 PPC: Support fast-path allocation for subclass constructors with correctly initialized initial maps.
Port b9d25d86a8

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=v8:3330
LOG=n

Review URL: https://codereview.chromium.org/1434793002

Cr-Commit-Position: refs/heads/master@{#31926}
2015-11-10 19:56:09 +00:00
mbrandy
432d1a6f6a PPC64: Define the optional ctz Turbo Fan operator.
Like its 32-bit counterpart, this is not implemented on PPC.

R=ahaas@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/1438583002

Cr-Commit-Position: refs/heads/master@{#31925}
2015-11-10 19:54:53 +00:00
mtrofin
b10e8506ac Revert "Revert of [turbofan] Remove redundant code. (patchset #1 id:1
of https://codereview.chromium.org/1428943004/ )"

This reverts commit 5f4828a12d.

Maintaining the behavior of processing both ranges with spill ranges,
as well as those with spill operands.

BUG=

Review URL: https://codereview.chromium.org/1406223010

Cr-Commit-Position: refs/heads/master@{#31924}
2015-11-10 18:06:32 +00:00
rmcilroy
0609ed27a0 [Interpreter] Disable Arm/Arm64 tests on release as well as debug for ignition.
BUG=v8:4280
LOG=N
NOTRY=True
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1423803009

Cr-Commit-Position: refs/heads/master@{#31923}
2015-11-10 17:39:48 +00:00
balazs.kilvady
6993cd0de5 MIPS: Fix 'MIPS:r6 compact branch optimization.'
Jic and jialc compact branch ops are fixed as they does not have 'forbidden slot' restriction. Also COP1 branches (CTI instructions) added to IsForbiddenAfterBranchInstr().

TEST=cctest/test-disasm-mips/Type0
BUG=

Review URL: https://codereview.chromium.org/1423493006

Cr-Commit-Position: refs/heads/master@{#31922}
2015-11-10 17:16:09 +00:00
ulan
e28e4d5f52 Remove redundant activation threshold for incremental marking.
The minimum allocation limit already enforces this constraint for normal GCs.

GCs triggered by the memory reducer and external limit should work for all heap sizes.

BUG=chromium:552305
LOG=NO

Review URL: https://codereview.chromium.org/1418293006

Cr-Commit-Position: refs/heads/master@{#31921}
2015-11-10 17:14:18 +00:00
rmcilroy
6e599ce9d8 [Interpreter] Disable mjsunit/array-sort on Arm/Arm64
BUG=v8:4280
LOG=N
NOTRY=true
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1410883009

Cr-Commit-Position: refs/heads/master@{#31920}
2015-11-10 16:55:50 +00:00
rmcilroy
1820acb9c9 [Interpreter] Skip some more tests on Arm64 for Ignition.
Skips some more tests which started failing after https://codereview.chromium.org/1414183006 landed.

BUG=v8:4280
LOG=N
NOTRY=True

Review URL: https://codereview.chromium.org/1412343009

Cr-Commit-Position: refs/heads/master@{#31919}
2015-11-10 15:21:57 +00:00
mbrandy
40eeb69b94 PPC: Disable gcc generation of fmadd/fmsub in cctests.
Generated code performs distinct floating multiply and add/subtract
operations.  Tests fail when GCC uses fmadd/fmsub to calculate the
expected result since these instructions provide higher accuracy due
to the lack of an intermediate round.

R=machenbach@chromium.org
BUG=

Review URL: https://codereview.chromium.org/1416123007

Cr-Commit-Position: refs/heads/master@{#31918}
2015-11-10 14:31:28 +00:00
Djordje.Pesic
60b97e802f MIPS: JALR to JAL optimization removal
Review URL: https://codereview.chromium.org/1419793014

Cr-Commit-Position: refs/heads/master@{#31917}
2015-11-10 13:18:26 +00:00
sigurds
45787501e5 [turbofan] Pseudo-inline 'instanceof'
This patch extends the typed lowering with a specialized version of 'instanceof' that is used if the "class", i.e. the constructor function, is a known constant.

Unittests check that replacement occurs as intended. Functional correctness is ensured by extensive unit tests covering instanceof already in the testsuite.

TESTS=unittests/JSTypedLoweringTest.{JSInstanceOfSpecializationWithSmiCheck,JSInstanceOfSpecializationWithoutSmiCheck,JSInstanceOfNoSpecialization}

Review URL: https://codereview.chromium.org/1407413014

Cr-Commit-Position: refs/heads/master@{#31916}
2015-11-10 12:20:11 +00:00
ishell
8e09ee1dba Make JSFunction::BodyDescriptor the only single place that knows how to iterate JSFunction's body.
The body descriptor supports different visiting policies: it could visit or skip
the code entry and it could visit or skip next function field.

BUG=v8:4531
LOG=Y

Review URL: https://codereview.chromium.org/1422773007

Cr-Commit-Position: refs/heads/master@{#31915}
2015-11-10 11:46:39 +00:00
bmeurer
1e2770123b [turbofan] Avoid unnecessary write barriers and improve code generation.
Avoid write barriers when storing values in the root set, and use
cheaper write barriers for storing maps or tagged pointers. Also
improve the generated code for write barriers, utilizing the out
of line code mechanism that is available to TurboFan backends,
which moves the unlikely case out of the hot path.

R=jarin@chromium.org, mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1414183006

Cr-Commit-Position: refs/heads/master@{#31914}
2015-11-10 11:05:59 +00:00
verwaest
b9d25d86a8 Support fast-path allocation for subclass constructors with correctly initialized initial maps.
BUG=v8:3330
LOG=n

Review URL: https://codereview.chromium.org/1413003008

Cr-Commit-Position: refs/heads/master@{#31913}
2015-11-10 08:51:16 +00:00
ahaas
a594ff73a9 Implemented the ctz Turbo Fan operator for x64.
Ctz is implemented as an optional operator at the moment, which is only
implemented by x64 at the moment.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1421163005

Cr-Commit-Position: refs/heads/master@{#31912}
2015-11-10 08:43:00 +00:00
yangguo
9a569ec2c8 [es6] Implement @@split subclassing.
RegExp.prototye[@@split] is not yet implement to spec regarding creating
new RegExp object with the SpeciesConstructor.

R=littledan@chromium.org
BUG=v8:4345
LOG=N

Review URL: https://codereview.chromium.org/1427573005

Cr-Commit-Position: refs/heads/master@{#31911}
2015-11-10 07:00:44 +00:00
yangguo
483d8b9bd8 Unify setting accessor properties in native code.
R=cbruni@chromium.org

Review URL: https://codereview.chromium.org/1416093006

Cr-Commit-Position: refs/heads/master@{#31910}
2015-11-10 06:58:41 +00:00
zhengxing.li
12a073e69a X87: [runtime] Drop redundant %CharFromCode runtime entry.
port 2b4cb2a140 (r31873)

  original commit message:
  The %StringCharFromCode and %CharFromCode runtime function perform
  exactly the same task, so we need only one of them.

BUG=

Review URL: https://codereview.chromium.org/1432063002

Cr-Commit-Position: refs/heads/master@{#31909}
2015-11-10 02:25:21 +00:00
bradnelson
318bcbee31 Allow constant heap accesses in asm typer.
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-asm-validator
R=titzer@chromium.org,aseemgarg@chromium.org
LOG=N

Review URL: https://codereview.chromium.org/1405993009

Cr-Commit-Position: refs/heads/master@{#31908}
2015-11-10 02:00:03 +00:00
neis
ec0f891d1e Revert of "[es6] Partially implement Reflect.ownKeys."
Reason for revert: failed tests on a Windows build.

TBR=rossberg,cbruni,neis
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

Review URL: https://codereview.chromium.org/1426943007

Cr-Commit-Position: refs/heads/master@{#31907}
2015-11-10 00:05:21 +00:00
neis
4194d0ebad [es6] Partially implement Reflect.ownKeys.
Proxies are not properly supported yet.

R=cbruni, rossberg
BUG=

Review URL: https://codereview.chromium.org/1405243006

Cr-Commit-Position: refs/heads/master@{#31906}
2015-11-09 23:30:53 +00:00
mbrandy
74966e61ea PPC: [builtins] Introduce specialized Call/CallFunction builtins.
Port 7c3396d01c

Original commit message:
    Introduce receiver conversion mode specialization for the Call and
    CallFunction builtins, so we can specialize the builtin functionality
    (actually an optimization only) based on static information from the
    callsite (this is basically a superset of the optimizations that were
    available with the CallFunctionStub and CallICStub, except that these
    optimizations are correct now).

    This fixes a regression introduced by the removal of CallFunctionStub,
    for programs that call a lot.

R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=chromium:552244
LOG=n

Review URL: https://codereview.chromium.org/1425083004

Cr-Commit-Position: refs/heads/master@{#31905}
2015-11-09 21:11:37 +00:00
mbrandy
bdb04d5b8b PPC: [runtime] Drop redundant %CharFromCode runtime entry.
Port 2b4cb2a140

Original commit message:
    The %StringCharFromCode and %CharFromCode runtime function perform
    exactly the same task, so we need only one of them.

R=bmeurer@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/1429953005

Cr-Commit-Position: refs/heads/master@{#31904}
2015-11-09 21:02:46 +00:00
mbrandy
dba4dfb2b0 PPC64: Implemented the Word64Clz TurboFan operator.
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=

Review URL: https://codereview.chromium.org/1433733002

Cr-Commit-Position: refs/heads/master@{#31903}
2015-11-09 20:57:02 +00:00
mbrandy
96baec278c PPC: Remove receiver conversion from function prologue
Port 4ab1b05d5e

Original commit message:
    Depends on https://codereview.chromium.org/1407373007/
    After that CL, all receiver conversion is handled by the call builtin.

R=verwaest@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/1412803014

Cr-Commit-Position: refs/heads/master@{#31902}
2015-11-09 20:55:49 +00:00
mbrandy
44fcc2e795 PPC: Remove CallFunctionStub, always call through the Call builtin (also from CallIC).
Port 44c44521ae

Original commit message:
    This fixes receiver conversion since the Call builtin does it correctly.

R=verwaest@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, dstence@us.ibm.com
BUG=v8:4526
LOG=n

Review URL: https://codereview.chromium.org/1423973006

Cr-Commit-Position: refs/heads/master@{#31901}
2015-11-09 20:48:11 +00:00
rmcilroy
aca03dfca1 [Interpreter] Disable mjsunit/readonly test on ignition due to flakes.
BUG=v8:4280
LOG=N
NOTRY=True
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1438463002

Cr-Commit-Position: refs/heads/master@{#31900}
2015-11-09 20:46:21 +00:00
fedor
461e5b49d0 binary-operator-reducer: reduce mul+div(shift)
Reduction Input:

    ChangeInt32ToFloat64=>          TruncateFloat64ToInt32
                         Float64Mul=>
    ChangeInt32ToFloat64=>          Float64Div=>TruncateFloat64ToInt32

Output:

         =>  TruncateInt64ToInt32
Int64Mul
         =>  Int64Shr => TruncateInt64ToInt32

Test code:

    function mul(a, b) {
      var l = a & 0x3ffffff;
      var h = b & 0x3ffffff;
      var m = l * h;

      var rl = m & 0x3ffffff;
      var rh = (m / 0x4000000) | 0;

      return rl | rh;
    }

    mul(1, 2);
    var a0 = mul(0x3ffffff, 0x3ffffff);
    mul(0x0, 0x0);
    %OptimizeFunctionOnNextCall(mul);
    var a1 = mul(0x3ffffff, 0x3ffffff);

    print(a0 + ' == ' + a1);

BUG=
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/1350223006

Cr-Commit-Position: refs/heads/master@{#31899}
2015-11-09 20:42:39 +00:00
mlippautz
aecd084dd9 [test] Move away from deprecated API for heap-related tests.
Removed deprecated API usage in
 - test-heap.cc
 - test-incremental-marking.cc
 - test-alloc.cc

BUG=v8:4134
LOG=n

Review URL: https://codereview.chromium.org/1406393005

Cr-Commit-Position: refs/heads/master@{#31898}
2015-11-09 19:48:44 +00:00
brucedawson
744424208b Fix pointer truncation in 64-bit Windows builds
This was found through a VC++ 2015 Update 1 warning about
pointer truncation. The fix is required for VC++ 2015
compatibility.

Review URL: https://codereview.chromium.org/1411403011

Cr-Commit-Position: refs/heads/master@{#31897}
2015-11-09 19:08:07 +00:00
ahaas
7558e93347 Improved some tests in test-run-machops.
I improved the tests for Word32Clz, Word32Ctz, and Word32Popcnt, and ported
some tests to the BufferedRawMachineAssemblerTester.

R=titzer@chromium.org

Review URL: https://codereview.chromium.org/1437493002

Cr-Commit-Position: refs/heads/master@{#31896}
2015-11-09 17:42:00 +00:00
mstarzinger
0c1994c64d [heap] Simplify zapping of old optimized code maps.
This unconditionally enables zapping of old optimized code maps and
unifies the various zapping paths. The unconditional zapping, even if
heap verification is off, is needed because slots in the code map have
not been recorded and evacuation invariants break.

R=ulan@chromium.org

Review URL: https://codereview.chromium.org/1410833009

Cr-Commit-Position: refs/heads/master@{#31895}
2015-11-09 17:20:07 +00:00
rmcilroy
8b5a010242 [Interpreter] Skip failing tests on arm.debug in Ignition.
BUG=v8:4280
LOG=N
NOTRY=True
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1424263004

Cr-Commit-Position: refs/heads/master@{#31894}
2015-11-09 17:13:56 +00:00
mstarzinger
f27d2e593f [turbofan] Fix inlining with --trace-turbo flag.
This makes sure that --trace-turbo or --turbo-source-positions does not
completely disable inlining. The recent introduction of a finalization
interface to the reducer borked the SourcePositionWrapper reducer.

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/1406113008

Cr-Commit-Position: refs/heads/master@{#31893}
2015-11-09 16:44:16 +00:00
ishell
2ed1749091 Establish an invariant on initial maps:
1) they always own descriptors,
2) the number of own descriptors is equal to the number of descriptors in the descriptor array.

This allows an initial map of a subclass to share descriptor array with initial map of the parent class (if it already contains properties).

BUG=chromium:551430
LOG=N

Review URL: https://codereview.chromium.org/1411933005

Cr-Commit-Position: refs/heads/master@{#31892}
2015-11-09 16:27:11 +00:00
rmcilroy
fd6c005982 [Ignition] Skip another failing mjsunittest on ignition.
Skips regress-446389.

BUG=v8:4280
LOG=N
NOTRY=true
TBR=machenbach@chromium.org

Review URL: https://codereview.chromium.org/1412313010

Cr-Commit-Position: refs/heads/master@{#31891}
2015-11-09 16:23:42 +00:00
adamk
9a8c0119ef Properly handle parsing a '%'-prefixed runtime call as a binding pattern
R=rossberg@chromium.org
BUG=chromium:552302
LOG=n

Review URL: https://codereview.chromium.org/1425723004

Cr-Commit-Position: refs/heads/master@{#31890}
2015-11-09 15:32:25 +00:00