palfia@homejinni.com
6a91645a84
MIPS: Fix stack frame reconstruction for generators with formal arguments.
...
Port r15230 (e2bbe01)
Original commit message:
The formal parameter count was always being treated as an untagged
integer, but it is actually a Smi on ia32 and arm.
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/17261028
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 15:29:22 +00:00
yurys@chromium.org
c7b3ef0e05
Make sure ExternalCallbackScope is always created when VM state changes to EXTERNAL
...
ExternalCallbackScope is used to let CPU profiler know which API callback is being executed. Whenever such callback is called we should create VMState<ETERNAL> and ExternalCallbackScope. This patch fixes several places where VMState<ETERNAL> went without ExternalCallbackScope.
BUG=244580
R=dcarney@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17059005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 14:47:35 +00:00
verwaest@chromium.org
6ae544eca7
Also apply InferControlFlowRange to smi-based tests.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16870011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 14:20:15 +00:00
verwaest@chromium.org
917ac7d413
Improve range analysis for smi phi
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17498002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 14:11:52 +00:00
olivf@chromium.org
29d3461529
Let NaN flow as double into HBranch + some minor improvements
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/17082003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 13:51:03 +00:00
verwaest@chromium.org
2b485416ed
Properly assign heapobject to constant functions.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17406009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 13:46:29 +00:00
verwaest@chromium.org
4922e3d206
Flexible representation for BuildIncrement, but CannotBeTagged.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17028017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 13:22:46 +00:00
verwaest@chromium.org
b17e759dc1
Add soft-deopt for uninitialized assignment
...
R=hpayer@google.com
Review URL: https://chromiumcodereview.appspot.com/17071002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 13:09:43 +00:00
wingo@igalia.com
646a34e1e0
Generators: Avoid calling into runtime if operand stack is empty
...
This patch makes yield sites save the resume continuation and context
inline. If the operand stack is empty, we can avoid a call into the
runtime. This also makes the SuspendJSGeneratorObject runtime function
less magical: it just has to save the operand stack and stack handlers.
This speeds up the following case by a factor of 3 or so:
function* until(n) {
for (var i = 0; i < n; i++)
yield i;
}
function sum(iter) {
var sum = 0;
for (var x of iter) sum += x;
return sum;
}
for (var i = 0; i < 10000; i++) sum(until(1000))
Also, there is no more sentinel value as the generators will resume in
the right place already, allowing me to remove the hack added to the
--debug-code check in r14437.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/15990004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:59:45 +00:00
dcarney@chromium.org
8202410cca
deprecate old style callbacks
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17069003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15239 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:53:19 +00:00
mstarzinger@chromium.org
697bee6157
Use +kCallerSPOffset instead of -kMarkerOffset to compute the args pointer
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17451014
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:51:36 +00:00
verwaest@chromium.org
149d31eb14
Fix the flags used to probe the megamorphic code cache.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17448017
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 12:07:56 +00:00
olivf@chromium.org
4ee7a92d83
Lithium codegen should not pass around block_ids. Rather encapsulate the basic block to assembly label mapping in the LInstruction.
...
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17276002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 11:50:50 +00:00
hpayer@chromium.org
6ed90f08ed
Report store buffer overflows to v8 counters.
...
BUG=
R=jkummerow@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17303006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15234 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 11:47:58 +00:00
dcarney@chromium.org
3a5e4c45a6
windows test fix for 15221
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/16831020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15232 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 11:03:04 +00:00
wingo@igalia.com
f7ba3a7bb1
Fix stack frame reconstruction for generators with formal arguments
...
The formal parameter count was always being treated as an untagged
integer, but it is actually a Smi on ia32 and arm.
R=mstarzinger@chromium.org
BUG=v8:2355
TEST=mjsunit/harmony/generators-iteration
Review URL: https://codereview.chromium.org/17485002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:48:34 +00:00
mstarzinger@chromium.org
ea87d08557
Revert r14930 and r14935 temporarily.
...
This is a temporary revert to track down a potential perf regression
introduced in r14930. The following two changes were reverted:
- "Deprecate HAllocateObject in favor of HAllocate."
- "Added pretenuring support for call new."
R=danno@chromium.org
BUG=chromium:247504
Review URL: https://codereview.chromium.org/17491002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:48:14 +00:00
hpayer@chromium.org
d51a0d06e3
Make isolate id getter public.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17343004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 10:05:33 +00:00
verwaest@chromium.org
e829fb4fa2
Merge assignment handling for Assignment and CompoundAssignment
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17328005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 09:19:19 +00:00
dcarney@chromium.org
b9e5c586a8
symbols should be in the startup snapshot
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17366004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 09:10:19 +00:00
rossberg@chromium.org
eb099a1a8c
Introduce Type::Intersect function
...
Also, fix bugs in Type::Union and Type::Maybe.
(This subsumes the in-flight fix for Union in https://codereview.chromium.org/16925008/ , including test cases).
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/17335003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 09:10:10 +00:00
yangguo@chromium.org
0d409f5213
Directly use C++ builtin of ArrayPush for String.prototype.split.
...
R=svenpanne@chromium.org
BUG=v8:2737
Review URL: https://codereview.chromium.org/17283007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 08:13:21 +00:00
yurys@chromium.org
3b53f7dc61
Fix data race in v8::internal::UnboundQueue
...
This change modifies memory accesses to ensure proper load/store ordering.
BUG=249750
R=dvyukov@google.com , jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17294004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 06:23:34 +00:00
yurys@chromium.org
07ae09c124
Nuke OS::ReleaseStore, use Release_Store instead
...
The operation is already implemented in atomicops.h No need to duplicate the code.
BUG=None
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17222004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 06:16:24 +00:00
yurys@chromium.org
e64c79c2e7
Fix typo in #undef parameter
...
BUG=None
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/17176003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-20 06:13:03 +00:00
verwaest@chromium.org
2ca5c6cd03
Fix using monomorphic store instruction for polymorphic stores.
...
R=jkummerow@chromium.org
Review URL: https://chromiumcodereview.appspot.com/16875008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 18:07:35 +00:00
plind44@gmail.com
127af45629
MIPS: Fix test-cpu-profiler/SampleWhenFrameIsNotSetup flakiness on MIPS simulator.
...
BUG=v8:2628
TEST=cctest/test-cpu-profiler/SampleWhenFrameIsNotSetup
R=jkummerow@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17265004
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:20:25 +00:00
plind44@gmail.com
f76e55fb38
MIPS: Use type feedback for Array (non-constructor) call sites.
...
Port r15201 (8c56d50)
BUG=
R=plind44@gmail.com
Review URL: https://codereview.chromium.org/17447004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:08:46 +00:00
mstarzinger@chromium.org
ade5b02606
Lower limit for external allocation and improve tracing.
...
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/16896012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:01:43 +00:00
mstarzinger@chromium.org
a527f451bc
Deprecate old code aging mechanism.
...
The old code aging mechanism is too agressive with flushing as it leads
to many functions being flushed and recompiled over and over again. By
now the new code aging mechanism has stabilized enough to deprecate the
old fallback mechanism.
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17061004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 17:00:01 +00:00
jkummerow@chromium.org
aea73c155d
Remove unused counters
...
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17157006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 16:50:38 +00:00
mvstanton@chromium.org
7f0f022792
Bugfix in hydrogen array literal code generation.
...
If an array literal contains some non-constant elements, is of type SMI, and
then the boilerplate transitions to double or fast sometime after we've
crankshafted the code, then we could incorrectly store smis in double arrays.
BUG=
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17334004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 13:48:50 +00:00
svenpanne@chromium.org
010d9aba16
Avoid relying on monkey-patchable things in String.prototype.split.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17391016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15206 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 12:25:40 +00:00
dslomov@chromium.org
51f3e2f055
Do not use weak handles for ArrayBuffers.
...
Instead of allocating weak handles to free ArrayBuffer backing store, dispose of memory while walking the weak list of ArrayBuffers on GC.
Also, free all array buffers on isolate tear-down.
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/16950013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 11:53:30 +00:00
jkummerow@chromium.org
7821715dc1
Always reset allowed OSR nesting level when reverting interrupt code patches.
...
Also, --trap-on-deopt should only affect optimized functions, not hydrogen stubs.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/16848020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:38:28 +00:00
jkummerow@chromium.org
3ca50a576a
x64: LAddI must use LEAL, not LEAQ
...
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17448005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:36:38 +00:00
mvstanton@chromium.org
c70b41684d
Use type feedback for Array (non-constructor) call sites.
...
BUG=
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/17155010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 09:25:24 +00:00
svenpanne@chromium.org
3f69800acc
Removed ReplaceResultBuilder.
...
Most of its code was dead, and the remaining part was a simple
one-liner, which is now inlined at its single call-site.
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/17101021
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 08:59:56 +00:00
hpayer@chromium.org
137a8c5181
Move static flag modifications to V8::InitializeOncePerProcessImpl().
...
BUG=
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17250006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 08:57:26 +00:00
mstarzinger@chromium.org
6510948b2c
Make Zone::allocation_size work with parallel zones.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/16858018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-19 07:48:41 +00:00
yangguo@chromium.org
6e420a66be
Tweak type info threshold.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/17390004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15196 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 14:36:17 +00:00
mstarzinger@chromium.org
0524263a27
Remove obsolete elements kind check for array literals.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17378005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 13:32:06 +00:00
yangguo@chromium.org
496af21047
Turn on parallel recompilation.
...
R=jkummerow@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/17394002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 13:06:22 +00:00
dslomov@chromium.org
3af076a406
Prepare push to trunk. Now working on 3.19.19.
...
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/17392002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 11:42:34 +00:00
svenpanne@chromium.org
fb7310b1fd
Fixed read-only attribute of Function.length in strict mode.
...
R=cira@chromium.org
Review URL: https://codereview.chromium.org/17006006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-18 07:51:50 +00:00
jkummerow@chromium.org
07596dd7b8
Fix Runtime_SetProperty to properly handle OOM failures
...
BUG=chromium:249873
R=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/17167002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 17:42:27 +00:00
palfia@homejinni.com
c9624a44cd
MIPS: Fix constant function transition. Insert return instruction before returning.
...
Port r15180 (2f9dcce3)
BUG=
Review URL: https://codereview.chromium.org/17088008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 16:37:15 +00:00
palfia@homejinni.com
f8fc5c443e
Allow running mjsunit/manual-parallel-recompile on single-core systems.
...
- Add an %IsParallelSupported() builtin function to make possible to check support of parallel processing from JavaScripts.
- Change the test script that if parallel recompilation is forced on a single core CPU, expect that it won't be recompiled in parallel.
- Change the JSFunction::MarkForParallelRecompilation() to fall back gracefully if parallel recompilation is not supported.
BUG=v8:2733
TEST=mjsunit/manual-parallel-recompile
Review URL: https://codereview.chromium.org/17277002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 16:27:18 +00:00
verwaest@chromium.org
7a229ccf39
Emit deprecated check for constant function transitions.
...
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/17287003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 16:10:01 +00:00
plind44@gmail.com
5ad53577db
Add Gergely Kis to MIPS owners file.
...
BUG=
R=danno@chromium.org
Review URL: https://codereview.chromium.org/17175003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 15:19:44 +00:00