Commit Graph

11 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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