Commit Graph

20605 Commits

Author SHA1 Message Date
bmeurer
ec35c52e54 [turbofan] Generalize constant propagation.
Also support additional number types (singleton ranges, NaN and minus
zero) for constant propagation in typed lowering.

TEST=unittests

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

Cr-Commit-Position: refs/heads/master@{#25963}
2015-01-07 08:24:38 +00:00
Sven Panne
6fff5880e3 Print the SharedFunctionInfo besides the function name, makes matching against --trace_opt output easier.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25962}
2015-01-07 08:14:28 +00:00
yunchao.he
8cb08cdc4e just a typo
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25961}
2015-01-07 07:45:02 +00:00
chunyang.dai
818340a410 Disable test case for turbofan unsupported platform.
Test case LowerAnyToBoolean_tagged_tagged invokes "Linkage::GetStubCallDescriptor(...)"
  function but this function is not implemented on turbofan unsupported platform.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25960}
2015-01-06 12:09:24 +00:00
jarin
a9716d9840 Make control reducer revisit newly introduced merges.
TEST=mjsunit/compiler/regress-445876
BUG=chromium:445876
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25959}
2015-01-05 16:35:34 +00:00
Benedikt Meurer
9def087efc [turbofan] Correctify JSToBoolean lowering.
Introduce a new AnyToBoolean simplified operator to handle the later
lowering of boolean conversions. Previously we tried to hack that with
the generic JSToBoolean, having its context set to zero, but that lead
to various problems/bugs and did not handle all cases.

TEST=cctest,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25958}
2015-01-05 13:44:31 +00:00
Benedikt Meurer
17a180842e [turbofan] Don't crash when typing load from a Uint8ClampedArray.
TEST=mjsunit/compiler/regress-446156
BUG=chromium:446156
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25957}
2015-01-05 13:43:47 +00:00
bmeurer
c329a49d69 [turbofan] Fix incorrect minus zero handling in the unit tests.
TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25956}
2015-01-05 12:29:27 +00:00
Michael Achenbach
f087cc5f4d Whitespace commit to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25955}
2015-01-04 23:18:21 +00:00
Michael Achenbach
efc36bb4d3 Whitespace commit to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25954}
2015-01-04 12:53:13 +00:00
jarin
bdf446f590 Do not reduce effect phis for loops.
This prevents eliminating effectful statements before the loop.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25953}
2015-01-03 12:46:00 +00:00
bmeurer
26fce420da [turbofan] Cache common Loop, Merge and Parameter operators.
R=jarin@chromium.org
BUG=v8:3792
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25952}
2015-01-02 14:16:57 +00:00
bmeurer
fb2643c858 [turbofan] Truncation of Bit/Word8/16 to Word32 is a no-op.
TEST=mjsunit/compiler/regress-445859
BUG=chromium:445859
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25951}
2015-01-02 10:39:10 +00:00
bmeurer
cf866b7c61 [x64] Rearrange code for OOB integer loads.
We cannot just clear the result register optimistically, because the
register allocator might assign the same register to result and buffer.

TEST=mjsunit/compiler/regress-445858
BUG=chromium:445858
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25950}
2015-01-02 10:15:40 +00:00
bmeurer
a64ac4575a Fix %NeverOptimizeFunction() intrinsic.
Set a valid reason for disabling optimization when using
%NeverOptimizeFunction.

TEST=mjsunit/compiler/regress-445732
BUG=chromium:445732
LOG=y
TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25949}
2015-01-02 08:18:01 +00:00
bmeurer
643ed5b8be [turbofan] Fix missing MachineOperator unittest.
The machine-operator-unittest.cc file was missing from unittests.gyp.
Fixed the compiler errors and added it back.

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25948}
2015-01-02 07:44:52 +00:00
Michael Achenbach
c6e74e7079 Whitespace change to trigger bots.
Cr-Commit-Position: refs/heads/master@{#25947}
2014-12-31 13:01:17 +00:00
machenbach
ce1b433e8f Work around 'Text file busy' errors in android perf runner.
BUG=374740
TBR=ulan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25946}
2014-12-31 11:16:10 +00:00
bmeurer
ef41f70684 [turbofan] Fix invalid bounds check with overflowing offset.
TEST=mjsunit/compiler/regress-445267
BUG=chromium:445267
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25945}
2014-12-29 10:01:15 +00:00
v8-autoroll
8f9e9ecce6 Update V8 DEPS.
Rolling v8/tools/clang to c945be21f6485fa177b43814f910b76cce921653

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25944}
2014-12-29 04:29:45 +00:00
v8-autoroll
8aa39e561d Update V8 DEPS.
Rolling v8/tools/clang to 51f59463cfea7fc19d085253cf9bd40c1b4c0038

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25943}
2014-12-27 04:30:37 +00:00
v8-autoroll
c960a30d68 Update V8 DEPS.
Rolling v8/tools/clang to 6f504ec1a843c7c6af799768a774dec205ce4f3b

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25942}
2014-12-26 04:31:01 +00:00
bmeurer
b5e8dd0e12 [turbofan] Raise max virtual registers and call parameter limit.
Change InstructionOperand to use a 64-bit field for encoding the operand
information instead of the 32-bit field that was used before. Ideally we
wouldn't use the Zone-allocated bit field at all, and use an integer
instead of the pointer; but that requires fixing the register allocator
first, which will take some time.

TEST=mjsunit/compiler/regress-3786
BUG=v8:3786
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25941}
2014-12-25 18:18:04 +00:00
jochen
96143d1931 Remove UNREACHABLE() statements from sys-info.cc
We have safe fallbacks in all cases, and it's possible to hit those
codepaths, e.g., on Linux when /proc is not mounted

BUG=v8:3544
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25940}
2014-12-23 19:25:27 +00:00
bmeurer
4a8623c637 [turbofan] Turn IrOpcode::Mnemonic() into a table lookup.
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25939}
2014-12-23 19:24:15 +00:00
jochen
bbe8b00d6a Don't pass -pie when building a shared library build on android
BUG=none
R=ulan@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25938}
2014-12-23 19:23:03 +00:00
bmeurer
4f9193e047 [turbofan] Cache float32 constants on the JSGraph level.
Also slightly refactor the NodeCache and CommonNodeCache classes to
reduce inherent overhead of caching.

TEST=cctest

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

Cr-Commit-Position: refs/heads/master@{#25937}
2014-12-23 14:12:21 +00:00
jochen
9be7f79aa4 Fast-forward version number on bleeding_edge to 3.32.0
BUG=none
LOG=n
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25936}
2014-12-23 13:50:14 +00:00
bmeurer
eeec886e5f [turbofan] Deinlinify OperatorProperties implementation.
TEST=cctest,unittests
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25935}
2014-12-23 12:50:51 +00:00
machenbach
d1d9b833f6 Work-around for file pushing in android perf runner.
Also include the device serial when logging adb commands.

BUG=374740
TBR=ulan@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#25934}
2014-12-23 12:40:50 +00:00
Benedikt Meurer
0a03b5ef18 [turbofan] Turn DCHECK for fixed slot index into a CHECK.
This is a temporary workaround to ensure that we crash in release mode
instead of running into undefined behavior.

BUG=chromium:444681
LOG=y
R=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25933}
2014-12-23 11:00:57 +00:00
Benedikt Meurer
3f00ce2d59 [turbofan] Fix missing ChangeUint32ToUint64 in lowering of LoadBuffer.
TEST=mjsunit/compiler/regress-444695
BUG=chromium:444695
LOG=y
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25932}
2014-12-23 06:54:00 +00:00
Dusan Milosavljevic
8c4b7d272a MIPS: Enable Math rounding operations call reduction optimization in TF.
TEST=
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25931}
2014-12-22 17:37:20 +00:00
hpayer
1903447927 Reset old generation limit on main frame context disposal.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25930}
2014-12-22 15:40:36 +00:00
jochen
d98d97ee17 Mark mjsunit/setters-on-elements as flaky
TBR=machenbach@chromium.org
LOG=n
BUG=v8:3784
NOTREECHECKS=true

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

Cr-Commit-Position: refs/heads/master@{#25929}
2014-12-22 15:30:46 +00:00
ulan
0344722a16 Remove custom weak handling of monomorphic IC.
This is not needed anymore since all ICs use weak cells to embed maps.

BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25928}
2014-12-22 15:04:18 +00:00
bmeurer
00013a5692 [turbofan] Minor cleanup to reduce code duplication.
TEST=unittests
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25927}
2014-12-22 14:37:22 +00:00
jochen
18b1e6d353 Enable the embedder to specify what kind of context was disposed
This API is used by Blink to inform V8 about HTML frames being disposed.
Using the optional parameter, Blink can tell V8 whether the disposed
frame was a main frame. In that case, we might want to reset GC
parameters

BUG=none
R=hpayer@chromium.org
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#25926}
2014-12-22 14:27:37 +00:00
jochen
88feffc2ab Implement missing functionality for job based recompilation
BUG=v8:3608
R=bmeurer@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#25925}
2014-12-22 13:53:07 +00:00
Benedikt Meurer
1ec1f5957f [turbofan] Cleanup use of virtual, OVERRIDE, FINAL.
Following the Google/Chromium coding style wrt. virtual, OVERRIDE and
FINAL specifications.

TEST=unittests
R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25924}
2014-12-22 13:48:10 +00:00
ulan
eff42215f0 Use weak cell in monomorphic KeyedStore IC.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25923}
2014-12-22 13:38:17 +00:00
Benedikt Meurer
ee98a1d760 [turbofan] Introduce CommonOperatorReducer.
The CommonOperatorReducer currently takes care of redundant Phis,
EffectPhis and Selects. This functionality overlaps with ControlReducer,
but is required to make certain optimizations effective, since the
ControlReducer only runs really early and really late in the pipeline
and therefore other reducers aren't reapplied properly after redundant
phi/select elimination.

TEST=unittests
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25922}
2014-12-22 13:06:43 +00:00
machenbach
096e1972cd Work-around to make webkit test suite work with optdebug==2.
The test driver doesn't know at the moment if optdebug 1 or 2 has been used (the first is used on the bots, the second
locally in quickcheck). It can't know therefore if slow
asserts can be enabled or not. Trying to enable them leads
to a warning if they weren't compiled, which causes webkit
1:1 text comparison to fail.

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

Cr-Commit-Position: refs/heads/master@{#25921}
2014-12-22 11:13:12 +00:00
hpayer
892f6c7127 Do not use out of range visitor ids.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25920}
2014-12-22 11:12:17 +00:00
Benedikt Meurer
c61abc1426 [turbofan] Materialize the correct kind of constant for bit 1.
Bit 1 should be represented as Int32Constant 1 after simplified
lowering, but OneConstant returns NumberConstant 1.0.

R=jochen@chromium.org, hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25919}
2014-12-22 09:24:21 +00:00
ulan
64e1b56107 Revert "Retain maps for several garbage collections"
This reverts commit 2bc756e4b3
because of performance regression in kraken.

BUG=chromium:444232
LOG=N
TBR=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25918}
2014-12-22 09:15:07 +00:00
hpayer
c37e09d7ea Keep AllocationSpace and ObjectSpace enums in sync.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25917}
2014-12-22 08:52:22 +00:00
Benedikt Meurer
65e69497ab [turbofan] Correctify lowering of Uint8ClampedArray buffer access.
TEST=mjsunit/compiler/regress-444508.js
BUG=chromium:444508
LOG=y
R=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25916}
2014-12-22 08:27:59 +00:00
Benedikt Meurer
1ed16c587e [turbofan] Improve typing of ToBoolean.
According to ES6 draft, revision 29 (2014-12-06), section 7.1.2,
ToBoolean yields true for true, detectable receivers (the ES6 Object
type), symbols and numbers except -0, +0 and NaN.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25915}
2014-12-22 07:21:51 +00:00
chunyang.dai
b4302150b1 X87: fix one test case failure under debug mode.
This issue is exposed by CL https://codereview.chromium.org/807273003.

  The DeoptimizeIf(...) function will generate more Assembler code and the
  distance between the link point and the bind point is larger then near
  link distance (127) for labels.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25914}
2014-12-22 07:04:47 +00:00