Commit Graph

38 Commits

Author SHA1 Message Date
jarin@chromium.org
2e1295d4dc Disable running some instruction selector test on unsupported backends.
BUG=
R=jarin@chromium.org

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23485 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 11:06:26 +00:00
jarin@chromium.org
8eb5c1524d Unit test of instruction selection for calls with deoptimization.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23467 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 15:56:11 +00:00
titzer@chromium.org
79c8cfe2a8 Fix expectations of lowering tests.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23462 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 14:47:50 +00:00
m.m.capewell@googlemail.com
31497a4542 [turbofan] ARM64 FP instruction selection tests
Add some tests for floating pointer instruction selection, and change conversion
tests to be parameterised.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23439 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-27 09:47:16 +00:00
bmeurer@chromium.org
3e188ace5c [turbofan] Add backend support for load/store float32 values.
This is the bare minimum required to support typed arrays. Support for
working with float32 values will be added based on this.

TEST=compiler-unittests,cctest
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23386 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-26 08:29:12 +00:00
bmeurer@chromium.org
66dd869980 [turbofan] Add backend support for signed loads.
Also rename the arch opcodes to match their native counterparts.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-25 10:35:38 +00:00
bmeurer@chromium.org
3193f59a39 [turbofan] Add support for change/truncate to MachineOperatorReducer.
TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 07:54:09 +00:00
bmeurer@chromium.org
7cb564b580 [turbofan] Initial import of SimplifiedOperatorReducer.
TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-22 04:47:55 +00:00
bmeurer@chromium.org
e6d32405be Fix parsing of --gtest_list_tests output.
R=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-21 12:36:00 +00:00
bmeurer@chromium.org
66dcb63276 Fix arm64 build.
TBR=hpayer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 10:33:47 +00:00
m.m.capewell@googlemail.com
a8b09acd7b [turbofan] Add ARM64 tests and fix shift bug
Add more tests for logical immediate and shift instruction selection, and fix bug in range for supported shifts.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 09:25:30 +00:00
bmeurer@chromium.org
98293ab8d2 [turbofan] Add support for Finish to the InstructionSelector.
Also fix an off-by-one bug in the handling of Parameter nodes, and
improve test coverage for pointer map computation.

TEST=compiler-unittest
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 09:16:30 +00:00
bmeurer@chromium.org
fa3dc0a534 [turbofan] Add support for ChangeTaggedToUint32 in ChangeLowering.
Also refactor some common code in ChangeLowering.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 08:13:00 +00:00
bmeurer@chromium.org
7c36df7b03 [turbofan] Add support for ChangeUint32ToTagged in ChangeLowering.
TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 04:01:36 +00:00
bmeurer@chromium.org
37058c1413 [turbofan] Add TruncateFloat64ToInt32 machine operator.
Fix ChangeLowering to use TruncateFloat64ToInt32.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 04:01:00 +00:00
rodolph.perfetta@arm.com
4d895bd217 ARM64: Refactor instruction selection unit tests.
BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 10:14:29 +00:00
bmeurer@chromium.org
c26d0b5f20 Fix NaCl build.
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 09:20:51 +00:00
bmeurer@chromium.org
cf51230881 [turbofan] Add proper conversion operators for int32<->int64.
This affects arm64 and x64. Note that we do not yet optimize
these conversions. Later we will add support for merging these
conversion operators into other operations during instruction
selection.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 08:48:41 +00:00
ulan@chromium.org
96038b7183 Fix Android build.
BUG=v8:3506
LOG=N
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 08:27:33 +00:00
bmeurer@chromium.org
e0e17b905d Revert "[arm] Shorter test names for parameterized tests."
This reverts commit r23142 because GoogleTest is very picky about the
parameterized test case names, so not even using an anonymous namespace
can please GTest. Also reverts the renaming applied to in the
ChangeLowering unit test.

TBR=jarin@chromium.org
BUG=v8:3489
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 05:24:32 +00:00
bmeurer@chromium.org
936d7218b4 [turbofan] Support lowering of ChangeFloat64ToTagged/ChangeTaggedToInt32.
Adds new ValueEffect operator to ensure proper scheduling of
AllocateHeapNumber call nodes.

Also includes some refactoring to reduce code duplication.

TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-19 04:54:06 +00:00
bmeurer@chromium.org
d9fe1e71c3 [turbofan] Add new ControlEffect and Finish operators.
Fix the ChangeLowering to properly use ControlEffect nodes
to turn the control output of IfTrue nodes into an effect
input for the Load nodes, and to properly use Finish nodes
to ensure that allocation and store were both performed
prior to actually using the allocated heap number.

TEST=compiler-unittests
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 11:36:06 +00:00
bmeurer@chromium.org
e4db78e705 [arm] Recognize comparisons of shifts with zero.
For example, recognize

  0 == r1 << r2

and generate a single

  MOVS rt, r1, lsl r2

instruction.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 11:10:01 +00:00
bmeurer@chromium.org
669305c50a [arm] Shorter test names for parameterized tests.
See https://codereview.chromium.org/475823002 for the discussion.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-18 07:56:14 +00:00
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
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
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
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
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
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
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
bmeurer@chromium.org
12e8b34b07 Reland "Add initial support for compiler unit tests using GTest/GMock.".
LOG=y
BUG=v8:3489
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-08 07:04:07 +00:00
bmeurer@chromium.org
38ca3f4fc2 Revert "Add initial support for compiler unit tests using GTest/GMock."
This reverts commit r22927 for breaking build.

TBR=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 12:59:02 +00:00
bmeurer@chromium.org
1f1e9495e5 Add initial support for compiler unit tests using GTest/GMock.
TEST=compiler-unittests
BUG=v8:3489
LOG=y
R=svenpanne@chromium.org, jochen@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-06 12:52:47 +00:00