Commit Graph

14183 Commits

Author SHA1 Message Date
bmeurer@chromium.org
da6d5586f9 Don't generate useless string checks for string adds.
If we know that one side of a string add is definitely a string
(i.e. if it's a string constant), then we don't need to emit a
string check for the argument.

This adds a new BuildCheckString() method to the graph builder,
which does "the right thing".

TEST=mjsunit/string-add
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 11:53:09 +00:00
rmcilroy@chromium.org
782040d275 Remove deprecated v8::SetResourceConstraints without Isolate parameter
LOG=Y
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 11:21:51 +00:00
rmcilroy@chromium.org
57dc3139cb Remove deprecated v8-defaults.h and defaults.cc.
BUG=312241
LOG=Y
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 11:20:01 +00:00
jochen@chromium.org
4515fb5c4f Make it possible to add more than one piece of embedder data to isolates
This will allow for using gin and blink bindings in the same process

BUG=317398
R=svenpanne@chromium.org, dcarney@chromium.org
LOG=y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 10:59:13 +00:00
dcarney@chromium.org
c595853bb5 faster stack frame generation for accessor property ics
this is implemented for intel platforms only, as they are the only ones which show speed up with this change

R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 10:11:56 +00:00
bmeurer@chromium.org
54dc61a504 Reset overwrite mode for BinaryOpStub unless we can actually make use of it.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17899 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 09:30:46 +00:00
machenbach@chromium.org
15582e2467 Prepare push to trunk. Now working on version 3.23.9.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17896 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 09:25:38 +00:00
mvstanton@chromium.org
daf4e6580d Quit running EnsureAllocationSiteDependentCodesProcessed test until
it's failure is diagnosed.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 08:55:20 +00:00
machenbach@chromium.org
8b38259728 Add forced mode to push-to-trunk script.
This CL depends on https://codereview.chromium.org/65933003/.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 08:49:42 +00:00
machenbach@chromium.org
6fcd94cc7c Refactor and improve bug line generation for push-to-trunk.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-20 08:25:17 +00:00
plind44@gmail.com
79de22a56a MIPS: Fixed crashes exposed though fuzzing.
Port r17886 (e2fb3ed)

Original commit message:
The %_OneByteSeqStringSetChar intrinsic expects its arguments to be checked before being called for efficiency reasons, but the fuzzer provided no such checks. Now the intrinsic is robust to bad input if FLAG_debug_code is set.

R=plind44@gmail.com, yangguo@chromium.org
TEST=test/mjsunit/regress/regress-320948.js
BUG=chromium:320948
LOG=Y

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 22:23:41 +00:00
danno@chromium.org
a5f910eb2b Turn ASSERTs to CHECKs in test-heap.cc
This fixes unused variable compile failures in release builds introduced in r17887.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 17:29:43 +00:00
mvstanton@chromium.org
25fdcf27f2 Test that AllocationSite::dependent_code doesn't leak code objects.
Verify that code objects are treated weakly by the AllocationSite
dependent_code field.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 16:57:49 +00:00
danno@chromium.org
06c7620302 Fixed crashes exposed though fuzzing.
The %_OneByteSeqStringSetChar intrinsic expects its arguments to be checked before being called for efficiency reasons, but the fuzzer provided no such checks. Now the intrinsic is robust to bad input if FLAG_debug_code is set.

R=yangguo@chromium.org
TEST=test/mjsunit/regress/regress-320948.js
BUG=chromium:320948
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17886 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 16:41:07 +00:00
plind44@gmail.com
1cfcf25efe MIPS: Remove unused StubType's, freeing 2 bits in Code objects.
Port r17867 (a305bd3)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 16:06:11 +00:00
plind44@gmail.com
44f3f410f4 MIPS: Properly initialize desc->origin in the MIPS assembler.
Port r17865 (5b2e594)

BUG=
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 15:58:10 +00:00
jochen@chromium.org
e744b82fae Revert 17877 - Introduce a v8::Platform class that bundles embedder callbacks
This also reverts 17879 and 17880.

BUG=v8:3015
TBR=svenpanne@chromium.org
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 14:28:07 +00:00
jochen@chromium.org
28b807597a Remove faulty CHECK() statement.
TBR=svenpanne@chromium.org
BUG=none
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 14:15:12 +00:00
jochen@chromium.org
611e1185be Fix typo in header guard of v8-platform.h
TBR=svenpanne@chromium.org
BUG=none
LOG=n

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 14:00:45 +00:00
machenbach@chromium.org
12755f7f7c Fix push-to-trunk runtime call.
This broke after a recent refactoring.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 13:44:51 +00:00
jochen@chromium.org
c24ce076e9 Introduce a v8::Platform class that bundles embedder callbacks
Also provide a default implementation to use in cctests.

For now, there are just two thread releated callbacks. In future CLs, I will
move callbacks registered e.g. via V8::SetFooCallback over.

BUG=v8:3015
R=svenpanne@chromium.org, danno@chromium.org
LOG=no

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17877 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 13:44:36 +00:00
verwaest@chromium.org
40d255ec82 Move template instance check from Object to FunctionTemplateInfo::IsTemplateFor
BUG=
R=dcarney@chromium.org

Review URL: https://chromiumcodereview.appspot.com/67613005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17876 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 13:38:15 +00:00
yangguo@chromium.org
9b6151946d Fix debugger wrt concurrent recompilation flag.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 13:19:51 +00:00
jochen@chromium.org
34b534c906 Add a proper way to pass the number of processors to V8
BUG=321060
LOG=n
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17874 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 13:08:37 +00:00
jkummerow@chromium.org
37443768bf Fix register trashing in Emit*ByteSeqStringSetChar
This is currently not observable without --allow-natives-syntax because all internal usages are safe, but it deserves to be fixed nonetheless.

BUG=chromium:320922
LOG=N
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17873 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 12:59:09 +00:00
jochen@chromium.org
062f0b0b21 Deprecate v8::External::New without Isolate parameter
R=bmeurer@chromium.org, machenbach@chromium.org, svenpanne@chromium.org
LOG=y
BUG=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17869 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 12:20:08 +00:00
yangguo@chromium.org
baf0f96d0b Fix compilation.
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 12:14:22 +00:00
bmeurer@chromium.org
b39db7bbf3 Remove unused StubType's, freeing 2 bits in Code objects.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 12:04:54 +00:00
yangguo@chromium.org
e2563d7a8e Make number of available threads isolate-dependent and expose it to ResourceConstraints.
R=svenpanne@chromium.org
BUG=v8:2991
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 11:52:47 +00:00
bmeurer@chromium.org
3d2f9cf3cf Properly initialize desc->origin in the ARM assembler.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 11:52:38 +00:00
ishell@chromium.org
53bd540ee0 Constant-folding through HForceRepresentation fix.
Reverts changes in HValue::IsInteger32Constant() made in https://code.google.com/p/v8/source/detail?r=17787

R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 11:41:04 +00:00
machenbach@chromium.org
0767ee86d8 Prepare push to trunk. Now working on version 3.23.8.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17858 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 11:04:54 +00:00
mvstanton@chromium.org
bff41483dc Bugfix: dependent code field in AllocationSite was keeping code objects alive even after context death.
BUG=320532
LOG=Y
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17856 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 10:17:33 +00:00
bmeurer@chromium.org
e2613ce7ba ARM: use vstm/vldm when possible.
R=bmeurer@chromium.org

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

Patch from Rodolph Perfetta <rodolph.perfetta@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 06:39:36 +00:00
palfia@homejinni.com
ca5265d9c7 MIPS: Convert PatchCache (and related methods) to use types rather than objects/maps.
Port r17847 (67c371a4)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17853 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 02:26:42 +00:00
palfia@homejinni.com
0817235218 MIPS: Make HTypeofIsAndBranch accept any representation input
Port r17834 (cf97fcb6)

Original commit message:
Make HTypeofIsAndBranch accept any representation input
when the input is known unbox number value, eliminate the dynamic check

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17852 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-19 02:26:10 +00:00
plind44@gmail.com
5274b0806a MIPS: Match max property descriptor length to corresponding bit fields.
Port r17823 (b1b8ae0)

BUG=v8:3010
LOG=N
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 20:51:30 +00:00
vegorov@chromium.org
0ec0d5fc32 Reapply r11765
Add static_cast<int> in HPositionInfo::position to please Win64 build.

Improvements in positions handling in optimizing compiler.

- When building binary arithmetic op and comparison restore source position of the operation itself before building operation itself after it was changed by building operands. This ensures that position recorded for operation points to the operation token instead of pointing to the rightmost operand;

- Add support for recording operands' positions and use these positions when inserting HChange instructions;

- When generating hydrogen.cfg emit H-instruction position as BCI (previously 0 was emitted), additionally on every lithium instruction emit annotation pointing to corresponding hydrogen-instruction. This allows to easily reach from deopt_id to lithium instruction and from it to hydrogen instruction and source position.

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 17:24:00 +00:00
verwaest@chromium.org
38630a765f Convert PatchCache (and related methods) to use types rather than objects/maps.
R=rossberg@chromium.org

Review URL: https://chromiumcodereview.appspot.com/75413002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 17:18:14 +00:00
dslomov@chromium.org
6c72c29506 Fix build on arm/x64 after r17840.
TBR=jkummerow@chromium.org
BUG=v8:3013
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17843 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:27:14 +00:00
svenpanne@chromium.org
c524efd759 Introduce addps/subps/mulps/divps for IA32/X64
BUG=
R=svenpanne@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:24:41 +00:00
dslomov@chromium.org
6749e57f47 Fix data view accessors to throw execptions on offsets bigger than size_t.
R=jkummerow@chromium.org
BUG=v8:3013
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17840 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:16:22 +00:00
dslomov@chromium.org
cb6e8b334d Revert "Fix data view accessors to throw execptions on offsets bigger than size_t."
This reverts commit r17838 for breaking arm build.

TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17839 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 15:05:05 +00:00
dslomov@chromium.org
dd5c7ec89e Fix data view accessors to throw execptions on offsets bigger than size_t.
R=jkummerow@chromium.org
BUG=v8:3013
LOG=Y

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:58:16 +00:00
dslomov@chromium.org
4228132e74 Use mock ArrayBuffer allocator to avoid really allocating 1Gb.
R=jkummerow@chromium.org
BUG=v8:3014
LOG=N

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17837 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:50:45 +00:00
jkummerow@chromium.org
ec9a9ac103 Fix broken pipe caused by commands in toolchain.gypi.
I sometimes observe broken pipe errors when I run gyp, which causes the gyp
process to fail. This seems to happen if gyp is executed under heavy I/O
pressure.

This change removes the pipes by replacing "echo |" with "< /dev/null".
Technically these are not the same, because "echo |" prints a newline while
"< /dev/null" doesn't, but this difference is not significant in the context of
the commands in toolchain.gypi.

BUG=
R=jkummerow@chromium.org

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

Patch from Yuta Kitamura <yutak@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17836 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:32:30 +00:00
jkummerow@chromium.org
0ca68f712e Make HTypeofIsAndBranch accept any representation input
when the input is known unbox number value, eliminate the dynamic check

BUG=
R=jkummerow@chromium.org

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

Patch from Weiliang Lin <weiliang.lin@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17834 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:17:33 +00:00
machenbach@chromium.org
775201dbd1 Add initial auto-roll script.
To be called with a cron job.

TEST=tools/push-to-trunk/auto_roll.py

TODO: Add a revision filter to allow "MIPS" related changes to take over the lkgr.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:10:47 +00:00
dslomov@chromium.org
f5c632b5e1 Ensure that ToPositiveInteger is optimizable.
'throw %NAME(..)' cause hydrogen optimizations to be disabled for
surrounding function. This patch rectifies.

R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17832 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 14:07:24 +00:00
dslomov@chromium.org
99133912bd Generate DataViewInitialize built-in in hydrogen.
R=bmeurer@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-18 13:57:49 +00:00