palfia@homejinni.com
27eb59ae33
MIPS: A performance regression in array literal creation was caused by refactoring.
...
Port r18046 (99c7352)
Original commit message:
A performance regression in array literal creation was caused by refactoring that eliminated a special fast case for shallow arrays. At the same time the general case got a bit slower. This CL restores most of the performance without coding the special fast case. The virtual dispatching is unnecessary because we know what we want to do at compile time. A flag was added to Runtime::CreateArrayLiteral. The flags delivers information about shallowness but also whether or not allocation mementos should be created. This is useful for crankshafted code.
BUG=v8:3008
LOG=Y
R=gergely@homejinni.com
Review URL: https://codereview.chromium.org/85633004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 21:18:59 +00:00
m.m.capewell@googlemail.com
f4d6deb817
ARM: Optimize TypeofIsAndBranch
...
Optimize register constraints and code generated for TypeofIsAndBranch Lithium
instruction.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/78583002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 19:17:21 +00:00
machenbach@chromium.org
e6e8acd446
Make test runner more flexible for running fast tests.
...
Transformed variant flags into named variants. Now, all combinations of variants can be specified on the command line. The old command-line flags are kept for backwards compatibility on the bots.
Added two new test groups: slow and pass|fail. Both are implemented similar to the flaky test feature and allow to either skip or run tests marked as slow or as pass|fail.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/85733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 17:34:52 +00:00
dslomov@chromium.org
c3a4d718ce
Generate TypedArrayInitialize builtin in hydrogen.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/59023003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:41:46 +00:00
jochen@chromium.org
5e177bd658
Add versions with an Isolate parameter for inlined API methods that need one
...
We shouldn't have APIs that call Isolate::GetCurrent() internally. This
change removes all remaining occurrences of inlined methods in v8.h
BUG=none
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/85693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:30:59 +00:00
machenbach@chromium.org
5201e8c396
Improve and refactor push-to-trunk script.
...
Let change log formatter squash title and bug reference. Repair wrongly indented first line in change log. Add automatic rietveld reload of commit messages to enable late corrections.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/83603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:20:39 +00:00
bmeurer@chromium.org
253d155048
Drop unused Assembler::set_external_target_at() method.
...
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/85793002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18055 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:07:05 +00:00
verwaest@chromium.org
80545b59fc
Minor cleanup in calling interceptors for loading properties.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/82743003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18054 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 14:06:06 +00:00
mvstanton@chromium.org
149516c63f
Fix failing test test-api/CheckCOWArraysCreatedRuntimeCounter
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/85743002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18051 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 13:27:36 +00:00
yangguo@chromium.org
c04659215a
Add -R option to merge-to-branch script to revert from bleeding_edge.
...
Usage:
tools/merge-to-branch.sh -R 12345 12346
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/85413004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:55:02 +00:00
yangguo@chromium.org
82021a832a
Force inline Math.random.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/85483002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:50:52 +00:00
mvstanton@chromium.org
81b22bbf96
A performance regression in array literal creation was caused by refactoring that eliminated a special fast case for shallow arrays. At the same time the general case got a bit slower. This CL restores most of the performance without coding the special fast case. The virtual dispatching is unnecessary because we know what we want to do at compile time. A flag was added to Runtime::CreateArrayLiteral. The flags delivers information about shallowness but also whether or not allocation mementos should be created. This is useful for crankshafted code.
...
BUG=v8:3008
LOG=Y
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/77293003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:41:27 +00:00
titzer@chromium.org
f5516a5adf
Enable global load elimination.
...
BUG=
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/48583005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:21:00 +00:00
svenpanne@chromium.org
f44901b8a9
Fixed printer for JSFunction.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/85613003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:19:02 +00:00
machenbach@chromium.org
289be48643
Prepare push to trunk. Now working on version 3.23.12.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/85623002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18040 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 12:00:44 +00:00
svenpanne@chromium.org
0b028c7146
Unbreak console=readline.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/85343002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18037 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 08:36:46 +00:00
svenpanne@chromium.org
49bdbc4bbd
freebsd: unbreak build after r16646
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/85313002
Patch from Ben Noordhuis <ben@strongloop.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 08:15:35 +00:00
jarin@chromium.org
4e439deb0b
Support for the Linux 'perf report' and 'perf annotate' tools.
...
In this change, the support comes in two flavours:
--perf_jit_prof - outputs the files in a new perf format that only works with a
patched perf tool (patch obtained from Stephane Eranian). Both 'perf report' and
'perf annotate' are supported (the file format also contains the machine code).
--perf_basic_prof - outputs the files in a format that the existing perf tool
can consume. Only 'perf report' is supported.
In both cases, we have to disable code compaction because the perf tool does not
understand code relocation. (We are told that code relocation should be
supported soon.)
Usage:
perf record -g d8 --perf_jit_prof --no_compact_code_space my.js
perf report
The change itself is straightforward - we simply listen to code events and
write an entry to a log file for every new piece of code.
I am not yet sure whether we should keep both versions or just one (and which
one). My hope is the reviewers can help here.
R=danno@chromium.org
BUG=
Review URL: https://codereview.chromium.org/70013002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18034 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 06:44:23 +00:00
dslomov@chromium.org
21dca31203
Safe HGraphBuilder::Add<> and New<>
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/82943005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18033 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 19:05:21 +00:00
palfia@homejinni.com
18feab95b6
MIPS: Only use Type for compiling load handlers.
...
Port r18025 (74fc739)
BUG=
Review URL: https://codereview.chromium.org/83913002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18032 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 18:55:13 +00:00
palfia@homejinni.com
f81d25e335
MIPS: Use Type in CheckPrototypes.
...
Port r18024 (8956065)
BUG=
Review URL: https://codereview.chromium.org/83483005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 18:28:44 +00:00
palfia@homejinni.com
a6be7b0f1a
MIPS: Fix and simplify code aging.
...
This commit fixes a lot of test failures that we saw earlier in the buildbots (http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20mips%20-%20sim/builds/3034/steps/Check/logs/stdio ).
In some very rare cases the code age stub address can be 0xXXXX0000 and in this case the li maco instruction emits only 1 instruction (instead of the expected 2). Thus the code age sequence will be 6 instructions long instead of 7, which breaks the code aging feature. This change makes sure that li always emits 2 instructions and it also simplifies the code aging sequence.
Also fixes a small mistake in the simulator at the jalr instruction.
BUG=
R=gergely@homejinni.com
Review URL: https://codereview.chromium.org/83583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 18:13:52 +00:00
mstarzinger@chromium.org
8982971213
Add counters for write barriers in generated code.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/78953003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18029 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 17:37:34 +00:00
palfia@homejinni.com
258d5e8a69
MIPS: Add function declarations missing from r18000.
...
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/83423002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18027 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 16:05:48 +00:00
verwaest@chromium.org
90cecd65dc
Only use Type for compiling load handlers.
...
BUG=
R=ishell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/80693002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18025 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 15:08:22 +00:00
verwaest@chromium.org
016113d945
Use Type in CheckPrototypes.
...
R=ishell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/78023002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18024 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 15:06:20 +00:00
jochen@chromium.org
24814616b9
Deprecate old versions of Isolate::SetData and GetData
...
BUG=none
R=svenpanne@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/83363003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18021 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 14:23:32 +00:00
yangguo@chromium.org
aa3518a0f3
Make sure files end with exactly one new line and police this in presubmit.
...
The changes are (excluding presubmit.py) mechanical. I added the following
lines after the check and iterated the presubmit script until all errors
went away:
f = open(name, "w");
if contents.endswith('\n\n'):
f.write(contents[0:-1])
else:
f.write(contents + '\n')
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/82803005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:50:39 +00:00
machenbach@chromium.org
bf473a4a94
Repair ChangeLog.
...
BUG=
R=danno@chromium.org , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/83533002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18016 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:39:55 +00:00
rossberg@chromium.org
e78783a35c
Introduce Type::IsCurrently
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/83003003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18015 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:16:40 +00:00
ulan@chromium.org
6a4d5b4228
Invalidate embedded objects in optimized code if it was marked for deoptimization.
...
It avoids having dead pointers in code from the time it was marked for deoptimization until it is deoptimized.
BUG=320532,v8:2996
TEST=mjsunit/regress/regress-320532.js
LOG=Y
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/61213012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18013 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:10:31 +00:00
jochen@chromium.org
c0c5efb9e7
Remove usage of deprecated APIs from cctests
...
Also turn on deprecation warnings
BUG=v8:3023
R=svenpanne@chromium.org , dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/83343002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:43:17 +00:00
rossberg@chromium.org
6aec0d39ae
Minor clean-up of Type::Print
...
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/75423002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18010 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:38:49 +00:00
jochen@chromium.org
709010dead
Remove usage of deprecated APIs from d8
...
Also turn on deprecation warnings
BUG=v8:3023
R=svenpanne@chromium.org , dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/83333002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:35:39 +00:00
jochen@chromium.org
a294defe9b
Remove usage of deprecated APIs from v8 itself
...
Also turn on depreaction warnings
BUG=v8:3023
R=svenpanne@chromium.org , dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/83323003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18008 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:28:58 +00:00
jochen@chromium.org
686616e4de
Remove usage of deprecated APIs from samples
...
Also turn on deprecation warnings for samples
BUG=v8:3023
R=dcarney@chromium.org , svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/83313002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18007 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:26:00 +00:00
yangguo@chromium.org
de432db19a
Exclude benchmark tests from presubmit check in a non-git checkout.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/83353002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18006 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:21:43 +00:00
bmeurer@chromium.org
7158b51125
Fix combined string length computation.
...
For 31-bit smis, we don't need to explicitly check whether the
combined string length exceeds the max supported string length,
since the value must be converted to a smi at some point (i.e.
when it is stored into the string length field of the resulting
string), which will emit an overflow check.
For 32-bit smis, we insert an explicit check that the combined
string length does not exceed String::kMaxLength.
This also enables to get rid of the JoinContinuation() usage in
BuildUncheckedStringAdd().
BUG=v8:2990
LOG=n
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/82733003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18005 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:03:01 +00:00
bmeurer@chromium.org
08df395f4e
Get rid of the binop_stub parameter to BuildBinaryOperation().
...
Just ask the graph builder whether we are compiling a stub.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/83073003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18004 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 11:49:04 +00:00
svenpanne@chromium.org
b6b84c02b2
Reland "Implement Math.random() purely in JavaScript" plus fixes.
...
The main change is that a bit has been added to array buffers to
signal that the backing store has to be freed when the buffer dies.
BUG=316359
LOG=Y
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/82763005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18003 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 11:35:39 +00:00
jochen@chromium.org
4452341b55
Clean up incorrect V8_DEPRECATION macro usage and enable deprecatitions
...
We turn the default for standalone builds on, however, I added overrides
to all targets to turn it locally off again. In follow up CLs, I'll
clean up one target at a time.
BUG=v8:3023
R=dcarney@chromium.org , machenbach@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/82763004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18002 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 10:57:55 +00:00
yangguo@chromium.org
3acd5dcdce
Dispose external string resource on heap teardown.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/83253002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18001 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 10:52:15 +00:00
ulan@chromium.org
21fb1401bd
Restore saved caller FP registers on stub failure
...
and preserve FP registers on NotifyStubFailure.
In debug mode, clobber FP registers on each runtime call to increase
chances of catching such bugs.
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/78283002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 10:21:47 +00:00
machenbach@chromium.org
988eb40d70
Prepare push to trunk. Now working on version 3.23.11.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/83173002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 10:04:04 +00:00
jkummerow@chromium.org
4235ab4653
Sync svn:ignore with .gitignore on trunk/test/* and bleeding_edge/test/*
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17996 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 09:56:59 +00:00
machenbach@chromium.org
416e82bb24
Pythonification and refactoring of push-to-trunk.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/81193002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 09:48:43 +00:00
yangguo@chromium.org
565c839f2c
Correctly change test expectations.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/82913003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17989 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 08:40:38 +00:00
yangguo@chromium.org
a7d38f7a41
Reland: Embed trigonometric lookup table.
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/78263005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17988 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 08:25:50 +00:00
machenbach@chromium.org
870c32e4b1
Make auto-roll testable.
...
Refactor the mock code for easier reuse. Mock out web requests.
TEST=python -m unittest test_scripts
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/77453009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17987 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 07:56:00 +00:00
mvstanton@chromium.org
3c95790f32
Pretenuring calculation fields in AllocationSite.
...
AllocationSite-based pretenuring needs additional fields to carry out
calculations.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/43603002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17986 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 07:34:21 +00:00