mvstanton@chromium.org
f3a22f965e
The goal is to discover the appropriate heap space for objects created in full
...
code. By the time we optimize the code, we'll be able to decide on new or old
space based on the number of surviving objects after one or more gcs.
The mechanism is a "memento" placed behind objects in the heap. It's currently
done for array and object literals, with plans to use mementos for constructed
objects as well (in a later CL).
The feature is behind the flag allocation_site_pretenuring, currently off.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/40063002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:03:40 +00:00
verwaest@chromium.org
50a4bb5084
Remove the strict-mode flag from store handlers. It's only relevant to the IC stub.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/91413003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:00:54 +00:00
rmcilroy@chromium.org
49627050d0
Avoid trying to decode the raw inline constant which is part of the aged code prologue.
...
BUG=v8:3007
LOG=N
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/88303003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 10:07:57 +00:00
yangguo@chromium.org
525876350d
Add ES specification reference to DateNow.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/89353002
Patch from Victor Costan <costan@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18094 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 09:39:41 +00:00
dcarney@chromium.org
89fb55c463
Split Persistent into Persistent and UniquePersistent
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/88013002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 09:30:49 +00:00
bmeurer@chromium.org
a02ef8ff2e
Avoid useless #ifdef DEBUG checks for the --trace-ic flag.
...
FLAG_trace_ic is constant false in non-DEBUG builds anyways.
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/91003002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 09:24:42 +00:00
dslomov@chromium.org
f7927265f2
Provide "freeBuffer()" primitive for testing under ASan.
...
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/85883002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18091 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 09:22:04 +00:00
titzer@chromium.org
ddb4ad853b
Avoid copying flow-sensitive state when only a goto separates blocks.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/48353007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18090 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 07:13:00 +00:00
palfia@homejinni.com
b558a10c67
MIPS: Optimize Integer32ToSmi.
...
Port r18084 (426bc19)
Original commit message:
Optimize register constraints and code generated for Integer32ToSmi Lithium
instruction.
TEST=none
BUG=
R=gergely@homejinni.com
Review URL: https://codereview.chromium.org/88623004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 20:31:47 +00:00
machenbach@chromium.org
c95173b2eb
Increase test runner speed.
...
Let the test runner preserve the order of test suites to let suites with long running tests run first.
Mark some tests as slow that can now be skipped via --slow-tests=skip.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/88343002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 16:53:04 +00:00
machenbach@chromium.org
0dd03f7c11
Make optimized debug builds compile with all optimizations.
...
This results in a speed-up of around 30% on all architectures. For local developer builds only. The bots will continue to use level 1 for now.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/88563002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 16:48:55 +00:00
m.m.capewell@googlemail.com
f6a5a262d0
ARM: Optimize Integer32ToSmi
...
Optimize register constraints and code generated for Integer32ToSmi Lithium
instruction.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/88383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 16:34:13 +00:00
yangguo@chromium.org
ab96631177
Increase precision for base conversion for large integers.
...
R=jkummerow@chromium.org
BUG=v8:3025
LOG=Y
Review URL: https://codereview.chromium.org/88583002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 15:48:13 +00:00
yangguo@chromium.org
4240cd2506
Flatten cons string for single character substrings.
...
For substrings of non-flat cons strings, we bail out
to runtime. For single character substrings, we forget
to flatten it. This causes successive bailouts.
R=bmeurer@chromium.org
BUG=323041
LOG=Y
Review URL: https://codereview.chromium.org/88173002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 14:21:46 +00:00
svenpanne@chromium.org
57a0c1fec3
Removed dead ceiling function.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/88133002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 13:55:06 +00:00
ishell@chromium.org
f951a2e893
Range info propagation through HBoundsCheck.
...
R=titzer@chromium.org
Review URL: https://codereview.chromium.org/86233002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 13:52:44 +00:00
machenbach@chromium.org
f4c282042e
Prepare push to trunk. Now working on version 3.23.13.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/88363002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 13:50:16 +00:00
svenpanne@chromium.org
afdf615683
Implement Math.ceil via Math.floor.
...
This way we get all the Crankshaft goodness and avoid always going
through the runtime: Less code + even some small speedup in Kraken.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/88053002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18072 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 12:29:47 +00:00
titzer@chromium.org
5f2d8bc393
Disable load elimination.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/88073002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18071 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 12:18:27 +00:00
yangguo@chromium.org
afd8e5a305
Speed up long-running test cases.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/85163003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 11:32:39 +00:00
yangguo@chromium.org
4716b292db
Make some ARM test cases faster.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/85473004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 10:43:44 +00:00
jochen@chromium.org
4765788a11
Add Isolate* parameter to static API methods that don't take one.
...
We cannot yet deprecate the versions that don't take one, because
there's too much test code in v8 using them. To keep this CL small and
managable, I'll first introduce the new APIs.
BUG=none
R=dcarney@chromium.org , svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/84833006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18068 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 09:45:17 +00:00
yangguo@chromium.org
3d21f84fcf
Fix generate_trig_table build target.
...
It now closely resembles the js2c target, so that we only have
one platform to run it on (either 'host' or 'target'). This way
we do not run into warnings when compiling for e.g. ARM.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/85893002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 08:50:15 +00:00
palfia@homejinni.com
1372f76357
MIPS: Generate TypedArrayInitialize builtin in hydrogen.
...
Port r18059 (b2849c3)
BUG=
R=dslomov@chromium.org , gergely@homejinni.com
Review URL: https://codereview.chromium.org/86053003
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18066 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 21:25:15 +00:00
palfia@homejinni.com
4ce1b0180b
MIPS: Minor cleanup in calling interceptors for loading properties.
...
Port r18054 (59d9d99)
BUG=
Review URL: https://codereview.chromium.org/84943008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-25 21:22:06 +00:00
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