Commit Graph

18279 Commits

Author SHA1 Message Date
bmeurer@chromium.org
b22724966b [turbofan] Merge compiler unit tests into src.
BUG=v8:3489
LOG=n
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 10:26:12 +00:00
bmeurer@chromium.org
40da0e5ee6 Use the "enum hack" to fix the SmiTagging constants.
The "enum hack" (see Item 2 of "Effective C++") is the only known
portable way to define constant integral values within template
classes. Fixes the weird work-arounds required for certain GCC
versions.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 10:24:04 +00:00
jarin@chromium.org
5fe360b9cd Fix typo in math-hyperbolic test.
TBR=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 10:23:07 +00:00
yangguo@chromium.org
fa1bf00e6a Port fdlibm implementation for Math.cosh.
R=rtoy@chromium.org
BUG=v8:3494
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:36:00 +00:00
jarin@chromium.org
a668cd6fc8 Context deoptimization and removal of the deoptimization block in Turbofan
This adds context deoptimization to Turbofan and Crankshaft (also submitted separately as https://codereview.chromium.org/515723004/).

The second patchset removes the deoptimization/continuation block from calls.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:31:14 +00:00
mvstanton@chromium.org
8786006022 Multiple stubs can point to the same calling convention.
R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23546 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:18:39 +00:00
bmeurer@chromium.org
58a5d15ba7 Merge heap unit tests into src.
Also rip out the unused runtime-unittests; will be added back on-demand.

BUG=v8:3489
LOG=n
R=ulan@chromium.org, svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23545 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:12:50 +00:00
yangguo@chromium.org
7be66cf5d7 Do not expose termination exceptions to the Exception API.
R=verwaest@chromium.org
BUG=403509
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 09:11:44 +00:00
jarin@chromium.org
73da434b8e Fix manual allocation folding of RegExpConstructResult.
R=mstarzinger@chromium.org
BUG=409533
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 08:08:31 +00:00
svenpanne@chromium.org
db2f83ca01 Removed dead #define.
It used the wrong tests, anyway...

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 07:23:18 +00:00
bmeurer@chromium.org
4edcff907f Refactor libplatform unit tests to use GTest/GMock.
Also migrate them to src.

BUG=v8:3489
LOG=n
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-01 07:13:55 +00:00
machenbach@chromium.org
6cd03e7fb0 [Auto-roll] Bump up version to 3.29.34.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-31 10:04:16 +00:00
jarin@chromium.org
d8414c57fe Reland "More aggressive reuse of spill slots in the register allocator."
This relands r23532 (https://codereview.chromium.org/310003003). Flakes seem unrelated.

TBR=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-31 07:27:38 +00:00
machenbach@chromium.org
616572535b [Auto-roll] Bump up version to 3.29.33.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-30 18:34:16 +00:00
jarin@chromium.org
c0d3e1faed Revert "More aggressive reuse of spill slots in the register allocator."
This reverts commit r23532 for introducing bunch of flakes.

TBR=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-30 17:21:04 +00:00
jarin@chromium.org
5fba4891de More aggressive reuse of spill slots in the register allocator.
Two improvements:
- At phi nodes, we now try to merge operands into one spill slot and
  then reuse the spill slot for the phi.
- After register allocation we merge disjoint spill slots.

With this change, I see about 4% improvement in zlib.

BUG=
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-30 15:50:24 +00:00
machenbach@chromium.org
630572a52b [Auto-roll] Bump up version to 3.29.32.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 22:04:14 +00:00
rodolph.perfetta@arm.com
bfd5fb0693 [turbofan] Allow unittest to call TruncateDoubleToI.
Switches stack pointer if necessary.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 18:46:30 +00:00
machenbach@chromium.org
62d0eaf36e [Auto-roll] Bump up version to 3.29.31.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 18:34:15 +00:00
m.m.capewell@googlemail.com
5336e356a2 [arm64] Fix order of decoder visitor add functions
AppendVisitor and PrependVisitor implementations were switched.

BUG=
R=ulan@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23526 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:42:51 +00:00
balazs.kilvady@imgtec.com
78da4a3bd2 MIPS: Refactoring InterfaceDescriptors away from code-stubs.h - external.
Port r23515 (fe0bdbf)

Original commit message:
Clean up and create seperation between the concept of a call descriptor and a
code stub interface descriptor. The former is just concerned with how to call,
but the latter has many extra hints related to code generation and
deoptimization for the implementation of a particular code stub.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:28:26 +00:00
balazs.kilvady@imgtec.com
de2c668db8 MIPS: Refactoring InterfaceDescriptors away from code-stubs.h - internal.
Port r23515 (fe0bdbf)

Original commit message:
Clean up and create seperation between the concept of a call descriptor and a
code stub interface descriptor. The former is just concerned with how to call,
but the latter has many extra hints related to code generation and
deoptimization for the implementation of a particular code stub.

BUG=
R=paul.lind@imgtec.com

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23524 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:25:41 +00:00
rmcilroy@chromium.org
bf81e33283 Fix missing bracket in gyp file from r23522.
TBR=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23523 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:11:00 +00:00
rmcilroy@chromium.org
1e14742ed2 Properly separate host and target builds when using external natives.
R=rmcilroy@chromium.org, vogelheim@chromium.org

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

Patch from André Baixo <baixo@google.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23522 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:04:59 +00:00
mstarzinger@chromium.org
1047a48c0c Workaround to avoid generic lowering breaking branches.
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23521 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 15:01:50 +00:00
bmeurer@chromium.org
e552ffc687 Revert "Move base library definitions from v8.gyp to base.gyp."
This reverts commit r23518 for breaking Blink bots.

TBR=vogelheim@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23520 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 12:30:50 +00:00
mstarzinger@chromium.org
e019dc7414 Fix Node::ReplaceUses to handle unused nodes.
R=bmeurer@chromium.org
TEST=cctest/test-node/NodeUseIteratorReplaceNoUses

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23519 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 12:14:52 +00:00
bmeurer@chromium.org
5a37d2276f Move base library definitions from v8.gyp to base.gyp.
Less confusion is best confusion.

R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23518 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 11:18:50 +00:00
bmeurer@chromium.org
5992acc242 Merge base unit tests into src to be in line with Chrome.
We still need the test/base-unittests folder until the test driver is
updated to handle unittests without the boilerplate.

TEST=base-unittests
R=svenpanne@chromium.org
BUG=v8:3489
LOG=n

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23516 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 10:53:08 +00:00
mvstanton@chromium.org
9514d34e14 Refactoring InterfaceDescriptors away from code-stubs.h
Clean up and create seperation between the concept of a call descriptor and a
code stub interface descriptor. The former is just concerned with how to call,
but the latter has many extra hints related to code generation and
deoptimization for the implementation of a particular code stub.

R=yangguo@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23515 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 10:40:02 +00:00
rodolph.perfetta@arm.com
fb7e3c8f95 ARM64: re-enable turbofan tests.
The tests were already passing.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23514 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 09:49:50 +00:00
svenpanne@chromium.org
dfda8950de More PNaCL fixes (without GYP/Makefile tweaks)
This is basically https://codereview.chromium.org/513923005/ with a
few changes:

   * Makefile.nacl and v8.gyp are untouched.

   * MAP_NORESERVE-handling is more defensive.

   * Added ugly busy-wait emulation of sem_timedwait.

R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23513 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 09:39:28 +00:00
yangguo@chromium.org
8938126d1b Port fdlibm implementation for Math.sinh.
R=rtoy@chromium.org
BUG=v8:3493
LOG=N

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 09:32:51 +00:00
sigurds@chromium.org
9091e87d8f Add more inlining unit tests.
- Scheduler can inline a function with a loop.
- Inlining strict into non-strict works correctly.
- Inlining non-strict into strict works correctly.

R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23511 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 08:58:51 +00:00
machenbach@chromium.org
e97bf94175 [Auto-roll] Bump up version to 3.29.30.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 08:04:16 +00:00
bmeurer@chromium.org
8c26a93fb2 [turbofan] Use enum instead of bool for parameter.
TEST=compiler-unittests
R=svenpanne@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23509 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 06:42:41 +00:00
bmeurer@chromium.org
804ef93d99 Fix windows build.
TBR=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23508 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 05:45:16 +00:00
bmeurer@chromium.org
ffbe019e22 Fix cctest/test-run-properties/TypedArrayLoad.
Note: The test failure was unrelated to the fact that it run on actual
ARM hardware, but it was failing because the test relied on undefined
and implementation defined behaviour of the C++ compiler.

TBR=mstarzinger@chromium.org
TEST=cctest

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23507 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 05:37:55 +00:00
bmeurer@chromium.org
b23abba7e5 [turbofan] Explicitly mark call sites as patchable.
TEST=cctest,mjsunit
R=mstarzinger@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-29 05:00:55 +00:00
machenbach@chromium.org
19197378a8 [Auto-roll] Bump up version to 3.29.28.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 21:34:14 +00:00
mstarzinger@chromium.org
d0ea36cb5b Move constructors for [Element/Field]Access into AccessBuilder.
R=titzer@chromium.org
TEST=cctest/test-simplified-lowering

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 17:53:24 +00:00
mstarzinger@chromium.org
9faf9200ab Skip failing test on ARM after r23492.
TBR=vogelheim@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23500 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 17:46:33 +00:00
mstarzinger@chromium.org
7c6759e982 Fix test failures after r23492.
R=vogelheim@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23498 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 17:28:57 +00:00
machenbach@chromium.org
daf64af43c [Auto-roll] Bump up version to 3.29.26.0
TBR=machenbach@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23495 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 15:34:15 +00:00
mstarzinger@chromium.org
b2548ebddf Skip Windows failure after r23492.
TBR=vogelheim@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23494 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 15:19:05 +00:00
machenbach@chromium.org
8aa7bb8a10 Let benchmark runner add summary traces.
BUG=374740
LOG=n
R=jarin@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 14:42:24 +00:00
mstarzinger@chromium.org
cc8cec354c Preliminary lowering of typed array loads in TF.
R=titzer@chromium.org
TEST=cctest/test-run-properties/TypedArrayLoad

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 14:35:11 +00:00
titzer@chromium.org
d6831dbd4b Use TruncateFloat64ToInt32 instead of ChangeFloat64ToInt32 in lowering of simplified operators NumberToInt32/NumberToUint32.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23491 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 13:31:55 +00:00
titzer@chromium.org
496697df4e Add MachineSignature, which is an encapsulation of the machine types for parameters and return values in a graph.
This utility will be used to simplify Linkage and fix representation inference
to work with graphs where parameters and return values are something other
than tagged. It will also make testing representation inference a lot
easier, since we can then exactly nail down the machine types of parameters
and returns.

This CL also adds c-signature.h, which demonstrates how to convert C function
signatures into MachineSignatures. The CSignatures will be used in tests to
make it easier and simpler to codegen tests.

R=jarin@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23490 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 13:17:38 +00:00
sigurds@chromium.org
7bdba61b02 Simplify inlining now that the scheduler is smart(er).
* Only control adjustment is to move everything from the inlinee's
  start block to the block the call was in.
* Add a unit test to ensure that the scheduler actually picks the
  right order when placing the code.

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

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23489 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-28 12:18:25 +00:00