Commit Graph

6158 Commits

Author SHA1 Message Date
bmeurer@chromium.org
d32fa64d33 Refactor ChangeLowering class to avoid template specialization.
Also refactor the unit tests and add support to easily
match DAGs using CaptureEq() matcher.

TEST=compiler-unittests
BUG=v8:3489
LOG=n
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 06:54:07 +00:00
mstarzinger@chromium.org
5c7edb7e2b Enable access check tests that no longer fail with TF.
R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 13:24:57 +00:00
mstarzinger@chromium.org
3adac582b0 Deprecate LoweringBuilder in favor of Reducer.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 12:24:37 +00:00
jarin@chromium.org
0caf06dbd2 Remove the flaky store buffer test for maps.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 11:31:42 +00:00
dslomov@chromium.org
eebb61a3f9 Fix OrderedHashTabelIterator accessors.
They might be undefined for uninitialized iterators.
The rest of the code is ready for this eventuality.

R=arv@chromium.org, adamk@chromium.org
BUG=403292
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 10:24:19 +00:00
titzer@chromium.org
8741997982 Enable more tests for simplified lowering after assuming signed for word32.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 09:52:21 +00:00
titzer@chromium.org
9803a72417 Unify MachineType and RepType.
MachineType now tracks both the representation and the value type of machine quantities and is used uniformly throughout TurboFan.

These types can now express uint8, int8, uint16, and int16, i.e. signed and unsigned smallish integers. Note that currently only uint8 and uint16 are implemented in the TF backends.

R=bmeurer@chromium.org, mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 09:19:54 +00:00
bmeurer@chromium.org
ae7d781d8b [turbofan] Introduce WordRor machine operator.
Move recognition of rotate-right operations to the
MachineOperatorReducer, so we don't need to repeat that in the
InstructionSelector for every backend.

TEST=base-unittests,compiler-unittests,cctests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 09:07:58 +00:00
jarin@chromium.org
18a10e3482 Fix pointer iteration for maps.
BUG=
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 07:41:33 +00:00
yangguo@chromium.org
efde48fb30 Fix test expectations.
TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 07:11:44 +00:00
yangguo@chromium.org
0ae0b81cdb Ignore default reject handler when looking for reject handlers.
LOG=N
BUG=v8:3093
R=aandrey@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 06:57:48 +00:00
bmeurer@chromium.org
f4b5224ae9 [turbofan] Refactor the InstructionSelector tests.
Also fix some issues and improve test coverage.

TEST=compiler-unittests
BUG=v8:3489
LOG=y
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-14 06:33:50 +00:00
mstarzinger@chromium.org
76a49573f3 Fix non-TF target build after r23107.
TBR=jarin@chromium.org
TEST=cctest/test-run-deopt

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23110 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 14:47:32 +00:00
arv@chromium.org
fdd094abcf ES6: Make Map/Set constructors support iterable values
Same for WeakMap/WeakSet

https://bugs.ecmascript.org/show_bug.cgi?id=3111

The change from the reverted version is that LoadIC_Miss now uses Name
instead of String.

BUG=v8:3508
LOG=Y
R=adamk@chromium.org, dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 14:34:15 +00:00
mstarzinger@chromium.org
8b7dd630da Move %IsOptimized runtime helper into test case.
R=jarin@chromium.org
TEST=cctest/test-run-deopt

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 14:09:50 +00:00
aandrey@chromium.org
3a3d6bd4f6 Expose Value::IsArgumentsObject in V8 API.
R=yangguo@chromium.org, svenpanne@chromium.org, yangguo

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 13:06:30 +00:00
jarin@chromium.org
b80e76841e Remove a brittle assertion from Turbofan lazy deoptimization handling.
As discussed in person with Benedikt, it is better to remove the assertion because it is too brittle. The assertion says that the continuation block should immediately follow the call. However, there are exceptions - such as nop or constant pool in-between being fine - that make the assertion brittle.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23102 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 11:46:05 +00:00
titzer@chromium.org
07ab6791a1 Add FOR_INT32_SHIFTS to value-helper.h
R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23100 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 10:30:00 +00:00
rodolph.perfetta@arm.com
b5b4e2c0b9 ARM64: unit tests for instruction selection.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 10:29:22 +00:00
mstarzinger@chromium.org
7f628527d8 Disable some deoptimization tests on ARM64 no-snap.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-13 10:23:17 +00:00
arv@chromium.org
0a35d53f7d Revert "ES6: Make Map/Set constructors support iterable values"
Reason for revert:
TestSetConstructorIterableValue(WeakSet) fails on x64.debug

TBR=adamk@chromium.org,dslomov@chromium.org
LOG=Y
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 21:42:27 +00:00
arv@chromium.org
f95b81a6ef ES6: Make Map/Set constructors support iterable values
Same for WeakMap/WeakSet

https://bugs.ecmascript.org/show_bug.cgi?id=3111

BUG=v8:3508
LOG=Y
R=dslomov@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 20:09:40 +00:00
arv@chromium.org
6c209206f5 WeakMap/WeakSet: Add test for non object keys
Add test for non object keys in the iterable passed to the constructor.

BUG=v8:3399
LOG=Y
R=rossberg@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 19:54:52 +00:00
dusan.milosavljevic@imgtec.com
8804736ba3 Reland "MIPS: Add support for arch. revision 6 to mips32 port."
Fixing gclient runhooks failure caused by reverted commit r23050.

TEST=
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23088 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 19:04:15 +00:00
mstarzinger@chromium.org
1d2a0759f2 Fix predictable mode to make time pass faster.
R=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 17:54:41 +00:00
dslomov@chromium.org
d2fe3e68ea Add "own" symbols support.
"Own" symbols are symbols that can only denote own properties of
objects.

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

Committed: https://code.google.com/p/v8/source/detail?r=23056

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 15:28:20 +00:00
yangguo@chromium.org
0f81d7698a Implement Math.log1p using port from fdlibm.
Port contributed by Raymond Toy <rtoy@google.com>.

R=rtoy@chromium.org
LOG=N
BUG=v8:3481

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 13:36:33 +00:00
mstarzinger@chromium.org
44247036a7 Fix newly discovered presubmit errors.
R=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 13:33:35 +00:00
jochen@chromium.org
5f1f897894 Revert 23077 - "Use CommonNodeCache for heap constants in ChangeLowering."
Breaks compilation on Mac64

| TEST=compiler-unittests
| R=jarin@chromium.org
|
| Committed: https://code.google.com/p/v8/source/detail?r=23077

TBR=bmeurer@chromium.org,jarin@chromium.org
LOG=n
BUG=none

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:53:14 +00:00
titzer@chromium.org
0e77a31cbd Fix presubmit error with explicit constructor in test.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:41:50 +00:00
bmeurer@chromium.org
dae1e1ea01 Use CommonNodeCache for heap constants in ChangeLowering.
TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:37:50 +00:00
rodolph.perfetta@arm.com
d5f0ecfbd3 ARM64: Enable TF tests.
Updated the test status file accordingly.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:30:45 +00:00
mstarzinger@chromium.org
b84dc47259 Reduce redundant phi nodes after graph building.
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:30:22 +00:00
sigurds@chromium.org
24f7a70df4 Provide mutators in NodeProperties instead of exposing indicies.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 12:20:39 +00:00
bmeurer@chromium.org
81c99058da Tests for ChangeLowering are target tests since they use the Linkage.
This fixes MIPS.

TBR=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 09:52:39 +00:00
bmeurer@chromium.org
a8b8fbbd98 Rename COMPILER_TEST to TARGET_TARGET.
The name COMPILER_TEST is misleading here.

R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 09:48:52 +00:00
bmeurer@chromium.org
77be85efaa Fix windows build.
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 08:30:13 +00:00
bmeurer@chromium.org
51846f64db Initial import of ChangeLowering.
ChangeLowering is a Reducer to lower simplified change operators
to machine subgraphs. This initial version supports ChangeBitToBool,
ChangeBoolToBit, ChangeTaggedToFloat64 and ChangeInt32ToTagged.

TEST=compiler-unittests/change-lowering-unittest
BUG=v8:3489
LOG=n
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 08:24:20 +00:00
titzer@chromium.org
81047ea644 Assume signed for converting to word32/float64 unless use or output is explicitly unsigned.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 08:09:24 +00:00
titzer@chromium.org
f3ccf2d51b Disable code generation in tests that use GraphBuilderTester on platforms that have no TF backend.
R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-12 08:06:02 +00:00
dslomov@chromium.org
dc4c277589 Revert "Add "own" symbols support."
This reverts commit r23056 for breaking Mac x64 test.

TBR=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 21:44:08 +00:00
machenbach@chromium.org
b50769cc54 Skip test with TF on GC stress.
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 19:44:33 +00:00
dslomov@chromium.org
cd30676052 ToNumber(Symbol) should throw TypeError
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tonumber

Based on patch from caitp <caitpotter88@gmail.com>
https://codereview.chromium.org/454233002/

BUG=v8:3499
LOG=Y
R=dslomov@chromium.org

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

Patch from Erik Arvidsson <arv@chromium.org>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 19:24:05 +00:00
dslomov@chromium.org
88f65f2c52 Add "own" symbols support.
"Own" symbols are symbols that can only denote own properties of
objects.

R=verwaest@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 18:59:38 +00:00
paul.lind@imgtec.com
fe7860fce2 MIPS: Fix test-simplified-lowering to pass without tf implemention.
GenerateCode() only for SupportedTarget() in 3 places, as in the
other tests here.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 18:54:40 +00:00
machenbach@chromium.org
604c52da52 Revert "Enable C++11 tests on windows."
This reverts commit r23052. This sets a new landmine.

TBR=jochen@chromium.org
BUG=400033
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 18:28:54 +00:00
machenbach@chromium.org
f744c68936 Revert "Reland "MIPS: Add support for arch. revision 6 to mips32 port.""
This reverts commit r23050 for breaking runhooks on chromium.

See e.g.:
http://build.chromium.org/p/client.v8/builders/Chrome%20Linux%20Perf/builds/1438/steps/runhooks/logs/stdio

TBR=jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 16:18:49 +00:00
machenbach@chromium.org
c9d217adf5 Enable C++11 tests on windows.
This also adds a landmine as windows bots need a clobber.

BUG=400033
LOG=n
TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23052 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 16:10:29 +00:00
titzer@chromium.org
6fa2cee262 Move MachineRepresentation to machine-type.h and rename to MachineType in preparation for merging it with RepType.
R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 15:55:28 +00:00
dusan.milosavljevic@imgtec.com
2097fa59b3 Reland "MIPS: Add support for arch. revision 6 to mips32 port."
Original commit r23028 breaks ARM64 build due to conflicting FP64 symbolic constant definition in src/globals.h and src/arm64/constants-arm64.h.

TEST=
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-11 15:46:32 +00:00