mvstanton@chromium.org
e066a3667d
Move responsibility for definition of ExtraICState bits into the ICs.
...
Currently it's in the Code object for some ICs and in ICs for other ICs.
This should make it easier to alter bits as needed.
2) Recover an extra bit in the code object to give us 6 bits for the extra ic state. We'll need it soon to store contextual state.
3) Cleanup code that treated StrictMode enum and ExtraICState enum as interchangeble.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/91803003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18136 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:32:55 +00:00
yangguo@chromium.org
f235194518
Fix bug in inlining Function.apply.
...
R=jkummerow@chromium.org
BUG=323942
LOG=Y
Review URL: https://codereview.chromium.org/95123003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:30:17 +00:00
titzer@chromium.org
bbdd21ebb0
Fix load elimination: can only .Equals() GVN-able instructions.
...
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/95193002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:27:42 +00:00
verwaest@chromium.org
bb86f02462
Cleanup in the CallStubCompiler.
...
BUG=
R=ishell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/91963003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:26:04 +00:00
rossberg@chromium.org
b974978e41
Move more logic from AST to oracle, pt 2
...
(More to follow)
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/95163002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:25:38 +00:00
dslomov@chromium.org
7372596615
Ensure that length is Smi in TypedArrayFromArrayLike constructor.
...
R=jkummerow@chromium.org
BUG=324028
LOG=Y
Review URL: https://codereview.chromium.org/94473002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 15:22:36 +00:00
jochen@chromium.org
5264959374
Undeprecate Persistent::ClearAndLeak
...
We depend on this in blink, and won't be able to replace it in
the near future
R=svenpanne@google.com , svenpanne@chromium.org
BUG=none
LOG=n
Review URL: https://codereview.chromium.org/95003004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:30:20 +00:00
rmcilroy@chromium.org
adbcede1c8
Swap cp and pp registers on Arm such for work on OOL Constant Pool.
...
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/94723002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:13:47 +00:00
machenbach@chromium.org
3516002001
Fix quickcheck make target.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/95073002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 14:10:56 +00:00
verwaest@chromium.org
bbef8af130
Use the HandlerFrontendHeader in most call compilers.
...
R=ishell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/83753002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:56:49 +00:00
hpayer@chromium.org
0e95ffddf2
Fix allocation memento bookeeping code for js arrays.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/95053002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:45:23 +00:00
machenbach@chromium.org
7b924a32de
Prepare push to trunk. Now working on version 3.23.15.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/95033002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18121 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:42:23 +00:00
machenbach@chromium.org
59ff4ec657
Add fast make and test all target.
...
The new target called "quickcheck" builds and tests with several configurations using recent test runner speed improvements.
Runtime from scratch (after make clean): < 8 min
Runtime tests only: < 3 min
TEST=make quickcheck
R=jkummerow@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/94703002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18120 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:18:04 +00:00
rossberg@chromium.org
5532af4437
Move more type collection logic from AST to oracle.
...
(More to come in follow-up CL.)
R=jkummerow@chromium.org
BUG=
Review URL: https://codereview.chromium.org/91863003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 13:16:51 +00:00
m.m.capewell@googlemail.com
843fca161a
ARM: Optimize fixed double arguments
...
Optimize fixed double arguments to arithmetic Lithium instructions.
TEST=none
BUG=
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/91113003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 11:38:40 +00:00
hpayer@chromium.org
0213fc9035
Added tracing support for pretenuring.
...
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/94493002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 10:49:02 +00:00
mstarzinger@chromium.org
d53e38777f
Fix missing bounds check in n-arguments Array constructor.
...
LOG=N
R=mvstanton@chromium.org
BUG=v8:3027
TEST=mjsunit/regress/regress-3027
Review URL: https://codereview.chromium.org/92103003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 09:29:57 +00:00
yangguo@chromium.org
ea43173cf4
Shorten autogenerated error message.
...
R=rossberg@chromium.org
BUG=v8:3019
LOG=Y
Review URL: https://codereview.chromium.org/88393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 08:59:45 +00:00
jochen@chromium.org
c1da40c08d
Mark deprecated APIs with relatively little use as deprecated
...
BUG=none
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/91503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 08:21:26 +00:00
rossberg@chromium.org
e943623b12
Harmony promises
...
Based on prototype at
https://github.com/rossberg-chromium/js-promise
which informed the latest spec draft version at
https://github.com/domenic/promises-unwrapping/blob/master/README.md
Activated by --harmony-promises.
Feature complete with respect to the draft spec, plus the addition of .when and .deferred methods. Final naming and other possible deviations from the current draft will hopefully be resolved soon after the next TC39 meeting.
This CL also generalises the Object.observe delivery loop into a simplistic microtask loop. Currently, all observer events are delivered before invoking any promise handler in a single fixpoint iteration. It's not clear yet what the final semantics is supposed to be (should there be a global event ordering?), but it will probably require a more thorough event loop abstraction inside V8 once we get there.
R=dslomov@chromium.org , yhirano@chromium.org
BUG=
Review URL: https://codereview.chromium.org/64223010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 17:21:40 +00:00
machenbach@chromium.org
8903dcbab8
Prepare push to trunk. Now working on version 3.23.14.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/91763002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 15:10:46 +00:00
mvstanton@chromium.org
d18a103e56
ARM/MIPS compilation error.
...
Due to an error during platform porting.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/91583002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-27 14:32:35 +00:00
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