Commit Graph

14667 Commits

Author SHA1 Message Date
machenbach@chromium.org
33ebd4fdb2 Prepare push to trunk. Now working on version 3.24.28.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 01:05:08 +00:00
palfia@homejinni.com
8eb39f2aeb MIPS: Remove the HValueOf instruction.
Port r18905 (88f14cd3)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 21:51:08 +00:00
machenbach@chromium.org
f815198288 [Sheriff] Mark profviz flaky on GC stress.
BUG=
TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 20:50:51 +00:00
hpayer@chromium.org
e5d9803c17 Make eager allocation site pretenuring decisions.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 17:03:57 +00:00
alph@chromium.org
c911ec3322 Do not overwrite builtin code names in heap profiler
Make sure builtin code objects get their builtin tags
first. Otherwise a particular JSFunction object could set
its custom name to a generic builtin.

LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 17:03:13 +00:00
machenbach@chromium.org
953470bdf8 [Sheriff] Mark test-debug/* as flaky on Mac.
Now including release mode.

BUG=v8:3125
LOG=n
TBR=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 16:59:50 +00:00
jarin@chromium.org
ec51f26b9e Revert "Captured arguments object materialization"
R=jarin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:49:48 +00:00
machenbach@chromium.org
5d8e2f3435 Make 'ASAN' configurable in test status file.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:30:41 +00:00
machenbach@chromium.org
1f346769c1 Don't parallelize tests that register extensions.
These tests register extensions on the isolate and the configuration of the extensions runs out of scope. If run in parallel, other tests access the isolate's state and read the registered extensions.

BUG=
R=dcarney@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:29:58 +00:00
machenbach@chromium.org
2eb89824b5 [Sheriff] Mark test-debug/* as flaky on Mac.
BUG=v8:3125
LOG=n
TBR=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:15:37 +00:00
jarin@chromium.org
868ad01ecb This is a preview of the captured arguments object materialization,
mostly to make sure that it is going in the right direction. The current
version is passing all the existing test + a bunch of new tests
(packaged in the change list, too).

The patch extends the SlotRef object to describe captured and duplicated
objects. Since the SlotRefs are not independent of each other anymore,
there is a new SlotRefValueBuilder class that stores the SlotRefs and
later materializes the objects from the SlotRefs.

Note that unlike the previous implementation of SlotRefs, we now build
the SlotRef entries for the entire frame, not just the particular
function.  This is because duplicate objects might refer to previous
captured objects (that might live inside other inlined function's part
of the frame).

We also need to store the materialized objects between other potential
invocations of the same arguments object so that we materialize each
captured object at most once.  The materialized objects of frames live
in the new MaterielizedObjectStore object (contained in Isolate),
indexed by the frame's FP address.  Each argument materialization (and
deoptimization) tries to lookup its captured objects in the store before
building new ones.  Deoptimization also removes the materialized objects
from the store. We also schedule a lazy deopt to be sure that we always
get rid of the materialized objects and that the optmized function
adopts the materialized objects (instead of happily computing with its
captured representations).

Concerns:

- Is there a simpler/more correct way to store the already-materialized
objects? (At the moment there is a custom root reference to JSArray
containing frames' FixedArrays with their captured objects.)

- Is the FP address the right key for a frame? (Note that deoptimizer's
representation of frame is different from the argument object
materializer's one - it is not easy to find common ground.)

- Performance is suboptimal in several places, but a quick local run of
benchmarks does not seem to show a perf hit. Examples of possible
improvements: smarter generation of SlotRefs (build other functions'
SlotRefs only for captured objects and only if necessary), smarter
lookup of stored materialized objects.

- Ideally, we would like to share the code for argument materialization
with deoptimizer's materializer.  However, the supporting data structures
(mainly the frame descriptor) are quite different in each case, so it
looks more like a separate project.

Thanks for any feedback.

R=mstarzinger@chromium.org, danno@chromium.org
LOG=N
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18918 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:14:15 +00:00
machenbach@chromium.org
3b8b18c39c Skip Mozilla tests with timeouts.
- Let Mozilla tests with timeouts always run in no-variants mode. Otherwise the stress-run causes a 16 minutes timeout in debug mode and 32 minutes on arm debug.
- Four test cases with exponentially long running regular expressions are skipped entirely.

BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 15:13:45 +00:00
ulan@chromium.org
405e8eaf7a Generalize internalization of substrings.
Make a template version of SubStringKey, which allows internalization of substrings of sequential and external strings.

R=dcarney@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 14:31:34 +00:00
ulan@chromium.org
979cd4b0f3 Disable tracking of double fields during snapshot creation.
Follow-up to r18298.

R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 14:18:55 +00:00
bmeurer@chromium.org
4a0959e360 Replace HThrow with HCallRuntime.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18908 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 14:03:32 +00:00
alph@chromium.org
5a2fe0a670 Mark next_code_link as weak in heap profiler.
LOG=N
R=ulan@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:45:41 +00:00
bmeurer@chromium.org
f80e76cd58 Remove the unused HElementsKind instruction.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:44:50 +00:00
bmeurer@chromium.org
87a3951c11 Remove the HValueOf instruction.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:41:00 +00:00
svenpanne@chromium.org
a5af872994 Exit mksnapshot cleanly, making LSAN happy.
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:30:38 +00:00
bmeurer@chromium.org
3ba2f104c9 Turn RegExpConstructResultStub into a HydrogenCodeStub.
This has the additional benefit that it is now possible to
inline the RegExpResult construction code into Hydrogen
builtins.

R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:10:35 +00:00
verwaest@chromium.org
0537955a89 Extend ArrayPop hydrogen support to COW arrays and popping from empty arrays.
R=mvstanton@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 12:53:40 +00:00
bmeurer@chromium.org
1e6606849a Don't create dummy uses for control dependencies.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18900 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 12:48:32 +00:00
bmeurer@chromium.org
5bf5849f9f Use IfBuilder instead of handcrafted basic blocks in GenerateSetValueOf().
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 09:59:16 +00:00
bmeurer@chromium.org
d6458eb9a5 Add dependency operand to HLoadNamedField.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18897 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 09:48:35 +00:00
machenbach@chromium.org
3456047248 Prepare push to trunk. Now working on version 3.24.27.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 08:13:05 +00:00
bmeurer@chromium.org
c12593cf2b Kill obsolete HLoadExternalArrayPointer instruction.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:27:35 +00:00
svenpanne@chromium.org
abe807db7f ES6: Map and Set needs to normalize minus zero
BUG=v8:3069
LOG=Y
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:27:05 +00:00
bmeurer@chromium.org
1e7bbbc921 Both HGlobalObject and HGlobalReceiver can be replaced with HLoadNamedField.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 07:26:52 +00:00
palfia@homejinni.com
8a2d18bb88 MIPS: Fix global object loading in DoWrapReceiver.
This commit fixes the global object loading to load the result into the "result" register instead of the "receiver" register.

TEST=mjsunit/compiler/regress-arguments
BUG=
R=plind44@gmail.com, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 20:26:53 +00:00
palfia@homejinni.com
bea3014d9e ARM: Fix global object loading in DoWrapReceiver.
This commit fixes the global object loading to load the result into the "result" register instead of the "receiver" register.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 20:25:38 +00:00
bmeurer@chromium.org
215da5eca3 v8config.h: introduce V8_LIBC_MSVCRT
Use this for detecting MSVCRT library features instead of
V8_CC_MSVC.

One use case for this is when compiling with Clang together with the
MSVC library. In that case, V8_CC_MSVC will be false, but V8_LIBC_MSVCRT
will be true.

BUG=82385
LOG=n
R=bmeurer@chromium.org

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

Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 19:11:13 +00:00
ishell@chromium.org
9070615980 Fix for potential issue related to replacing CheckMaps with values.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18887 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 17:49:13 +00:00
ishell@chromium.org
5dafb426b3 Flow engine fixes: unreachable block processing, state merging.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 16:57:39 +00:00
ishell@chromium.org
d330d4801d Load elimination fix with a test case.
R=titzer@chromium.org, verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 16:45:04 +00:00
hpayer@chromium.org
a09a5a86b7 Allocation site pretenuring for StringAdd on all platforms.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 15:43:28 +00:00
bmeurer@chromium.org
a2d1f8b8f6 Drop the native FastNewBlockContextStub.
This code is almost never executed in real world and benchmarks,
and there's obviously absolutely no need to have this native code
hanging around for no benefit.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 13:43:04 +00:00
mvstanton@chromium.org
371d6f6a98 We shouldn't throw under FLAG_debug_code, rather abort.
Throwing under FLAG_debug_code confuses the rest of our infrastructure
which expects a safe point at the site of call into the runtime
for throw. We were doing that to make a clusterfuzz test happy, but
the better solution is to assert/abort under debug_code, and prevent
clusterfuzz from fuzzing on internal APIs that crash on incorrect
values.

We'll need to alter the fuzzer to turn off fuzzing for:

string-natives.js
lithium/SeqStringSetChar.js
regress/regress-seqstrsetchar-ex3.js
regress/regress-seqstrsetchar-ex1.js
regress/regress-crbug-320922.js

So as to prevent the fuzzer from running
%_OneByteSeqStringSetChar() and
%_TwoByteSeqStringSetChar().

BUG=
R=hpayer@chromium.org, machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18878 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 11:53:11 +00:00
ishell@chromium.org
1776dffa56 Make String.prototype.{starts,ends}With throw when passing a regular expression
Contributed by Mathias Bynens <mathiasb@opera.com>.

TEST=mjsunit/harmony
BUG=v8:3070
LOG=Y
R=arv@chromium.org, ishell@chromium.org

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

Patch from Mathias Bynens <mathiasb@opera.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18870 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 10:31:05 +00:00
hpayer@chromium.org
9e462504fb Turn off global pretenuring when allocation site pretenuring is in use.
BUG=
R=mstarzinger@chromium.org, mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18868 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 09:47:03 +00:00
bmeurer@chromium.org
f9575fb82a Remove obsolete instruction HOuterContext.
HOuterContext can be expressed in terms of HLoadNamedField.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 09:42:24 +00:00
machenbach@chromium.org
577b2de28b Prepare push to trunk. Now working on version 3.24.26.
R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 07:51:20 +00:00
palfia@homejinni.com
e5a534f389 MIPS: stub fast api calls
Port r18847 (c920fc50)

BUG=
R=plind44@gmail.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18863 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-28 01:35:20 +00:00
machenbach@chromium.org
fd4a006eb3 [Sheriff] Fix status file entry.
BUG=
TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18861 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 16:46:16 +00:00
hpayer@chromium.org
e624346e68 Skip regression test 320948 temporarily.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18859 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 15:59:10 +00:00
hpayer@chromium.org
86cf9ca690 Enable concurrent sweeping.
BUG=
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18855 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 14:37:22 +00:00
ishell@chromium.org
7c4594650b Hydrogen filter now supports trailing wildcard in negative filter.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18851 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 12:05:47 +00:00
dcarney@chromium.org
2c5c08170f fix windows after r18847
TBR=verwaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18850 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 11:13:50 +00:00
dcarney@chromium.org
d2a4bd32fb don't anger clang
R=svenpanne@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18848 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 10:06:37 +00:00
dcarney@chromium.org
d1a10c6e37 stub fast api calls
R=verwaest@chromium.org, vervaest@chromium.org

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18847 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 09:57:54 +00:00
alph@chromium.org
89ffd30537 Allow arbitrary names for weak references in heap snapshots.
LOG=N
BUG=
R=ulan@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 09:37:02 +00:00