Commit Graph

10205 Commits

Author SHA1 Message Date
palfia@homejinni.com
93609033e1 MIPS: Optimise Math.floor(x/y) to use integer division for MIPS.
Use div instruction if some divisors do not have magic number.

Based on commit r11427 (318a9598).

This commit also ports commit r15161 (554d45c1).

BUG=

Review URL: https://codereview.chromium.org/16951016
Patch from Dusan Milosavljevic <Dusan.Milosavljevic@rt-rk.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 15:06:41 +00:00
verwaest@chromium.org
202df2e758 Fix constant function transition. Insert return instruction before returning.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17250003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 13:50:56 +00:00
mstarzinger@chromium.org
5fe01da568 Fix bogus replay of arguments object binding in LChunkBuilder.
R=jkummerow@chromium.org
BUG=chromium:249894
TEST=webkit:fast/js/regress/inline-arguments-access.html

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-17 11:11:41 +00:00
jkummerow@chromium.org
681cfe9cad Fix MathFloorOfDiv optimization on non-SDIV ARM
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 18:15:49 +00:00
verwaest@chromium.org
328aeb14fb Revert "Improved range analysis for bitwise operations."
This reverts commit r15170

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17093005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 17:25:03 +00:00
jkummerow@chromium.org
47ba2b2dd8 Migrate BinaryOpICs and UnaryOpICs to new type rep
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 17:02:39 +00:00
palfia@homejinni.com
60c2218ae3 MIPS: Refactor only: Rename JSGlobaPropertyCell to PropertyCell
Port r15165 (daf37483)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 17:00:24 +00:00
verwaest@chromium.org
98167ed0a8 Improved range analysis for bitwise operations.
R=fschneider@chromium.org, verwaest@chromium.org

Review URL: https://chromiumcodereview.appspot.com/9156001

Patch from Stephen Adams <sra@google.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:55:34 +00:00
jkummerow@chromium.org
5229b181e2 Add missing NULL check to TypeFeedbackOracle::CompareTypes()
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:50:50 +00:00
jkummerow@chromium.org
fb1057ad5d Fix MathFloorOfDiv canonicalization ASSERT failures
- remove outdated ASSERT about instruction type
- add inserted HChanges to the graph

R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:27:52 +00:00
danno@chromium.org
61a23ceb4d Refactor only: Rename JSGlobaPropertyCell to PropertyCell
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:06:12 +00:00
mstarzinger@chromium.org
3626e48e5c Make --trace-code-flushing uniform with other tracing.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 16:04:58 +00:00
jkummerow@chromium.org
de71923b20 Make MathFloorOfDiv optimization trigger more often
BUG=v8:2205
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:33:15 +00:00
ulan@chromium.org
f751e89416 Reland "Make more GCs in idle notification handler."
Fix performance regression on benchmarks by filtering out short idle
notifications.

R=hpayer@chromium.org
BUG=241815

Review URL: https://chromiumcodereview.appspot.com/17005005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:24:03 +00:00
verwaest@chromium.org
7cebf3f684 When HBranch sees Smi, it sees Smi.
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17064006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:23:05 +00:00
verwaest@chromium.org
773c08c58f Try convert polymorphic stores into a single monomorphic store.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16975006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:16:03 +00:00
yangguo@chromium.org
af599c835d Increase default type info threshold.
R=jkummerow@chromium.org
BUG=v8:2730

Review URL: https://chromiumcodereview.appspot.com/17074002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:15:05 +00:00
verwaest@chromium.org
41c63d8899 Only infer int32 in HBoundsCheck if input is double or int32.
R=jkummerow@chromium.org, mmassi@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17057004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:14:07 +00:00
verwaest@chromium.org
84759d7e6e Cleanup RepresentationFromUseRequirements, move it to HValue and use it where relevant
BUG=
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17005004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:13:48 +00:00
svenpanne@chromium.org
62254ae97c Prepare push to trunk. Now working on version 3.19.17.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 14:02:09 +00:00
dcarney@chromium.org
a07b99f3ae build fix for d8-readline for 15142
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 13:40:47 +00:00
palfia@homejinni.com
7d53546097 MIPS: Install a generic handler whenever we fail to update the IC. Ignore select cases in StoreIC since we don't have premonomorphic.
Port r15145 (e415de7c)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 13:36:13 +00:00
hpayer@chromium.org
08a4a37616 Decrease size of first page of property cell space.
BUG=
R=danno@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:36:55 +00:00
yangguo@chromium.org
b863016da2 Inhibit OSR for big functions.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/17030008

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:35:00 +00:00
hpayer@chromium.org
9e70cb84fb As a last resort try to allocate out of the smaller size size-class in
the free list allocator.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:22:25 +00:00
verwaest@chromium.org
2987b11701 Install a generic handler whenever we fail to update the IC.
Ignore select cases in StoreIC since we don't have premonomorphic.

R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/17027007

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 11:21:34 +00:00
mstarzinger@chromium.org
4578f634eb Remove bogus cast in LChunkBuilder::CreateEnvironment.
R=jkummerow@chromium.org
TEST=chromium:content_browsertests

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15141 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 09:02:11 +00:00
verwaest@chromium.org
cff21dc168 Observe smi as input for HCompareIDAndBranch
R=mvstanton@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16994002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15140 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 07:45:16 +00:00
svenpanne@chromium.org
bcf5912b3f Reduce the amount of full code generated to fill out array literals.
This is achieved by tuning the calling convention of StoreArrayLiteralStub:

 * The map of the array literal can be loaded in the stub from the
   array literal itself, there is no need to pass it at all.

 * The array literal is already on the stack, so there is no need to
   pass it again via a register.

 * The literal index is unchanged while filling the literal, so we can
   push it on the stack once and avoid passing it every time. Note that
   we need to mirror this change in the stack layout in crankshaft, too.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15138 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-14 06:06:00 +00:00
yurys@chromium.org
c4224f09a2 Notify CPU profiler when calling native getters
This change modifies code produced by BaseLoadStubCompiler::GenerateLoadCallback so that instead of calling AccessorGetter direcly it calls InvokeAccessorGetter which changes VM state and calls the actual callback. This way CPU profiler knows which external callback is being executed in this case. Indirect call happens only if CpuProfiler::is_profiling() is true.

This is exactly same change as r15116 with a build fix for test-api.cc

BUG=244580
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15135 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 19:16:35 +00:00
palfia@homejinni.com
6dcc6e27f6 MIPS: Only extend storage if FIELD
Port r15125 (0c202ff0)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15134 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 18:49:09 +00:00
palfia@homejinni.com
ddffbb7249 MIPS: Implement IC support for Constant Function transitions.
Port r15124 (6b02a945)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15133 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 18:48:19 +00:00
verwaest@chromium.org
91eda65014 Reduce usage of AssumeRepresentation
BUG=
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16871011

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15132 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 18:09:33 +00:00
palfia@homejinni.com
674d594606 MIPS: Delegating yield does not re-box result objects.
Port r15113 (9d28761)

Delegating yield (yield*) should just pass on the iterator results it
receives instead of re-boxing them.

TEST=mjsunit/harmony/generators-iteration
BUG=

Review URL: https://codereview.chromium.org/16855009
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15131 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 17:47:28 +00:00
verwaest@chromium.org
1b5835f69f Remove manual representation annotations for constants.
R=mstarzinger@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16818016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15130 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 17:38:10 +00:00
hpayer@chromium.org
ce6a0e4def Allow allocations in spaces with constant allocation size use the
smallest possible size-class.

BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 17:03:57 +00:00
palfia@homejinni.com
69b43a07ec MIPS: Use keyed-call inline caches in delegating yield.
Port r15111 (7de1a19)

Original commit message:
Since we can't assume anything about the shape of the iterator in a
yield* (delegating yield), use an IC to do the next() and throw()
iterator method calls.

BUG=v8:2691
TEST=mjsunit/regress/regress-2691

Review URL: https://codereview.chromium.org/16923008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 16:50:22 +00:00
palfia@homejinni.com
9e1c894a9e MIPS: Increase sanity of integer division handling.
Port r15057 (c82c777)

Original commit message:
- In the INT32 BinaryOpStub, fix type feedback collection for DIV,
bringing it in line with other platforms.
- In Lithium codegen, emit proper inlined code, don't call the stub.
- Drive-by fix: assert appropriate CpuFeaturesScope for SDIV.

BUG=

Review URL: https://codereview.chromium.org/16857004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15127 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 16:44:54 +00:00
verwaest@chromium.org
1d74cfaaf4 Refactor turning polymorphic loads into monomorphic loads
- remove special code for polymorphic loading of array length
- use it in VisitCountOperation

BUG=
R=hpayer@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16948005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15126 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 16:36:15 +00:00
verwaest@chromium.org
1d5cdf215d Only extend storage if FIELD
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16818014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 16:21:32 +00:00
verwaest@chromium.org
8bc9d98786 Implement IC support for Constant Function transitions.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16826016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 15:01:25 +00:00
mstarzinger@chromium.org
fede5231bc Deprecate several unchecked accessors.
R=hpayer@google.com
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15123 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 15:00:30 +00:00
verwaest@chromium.org
4ac1aa533d Temporarily patch HCompareIDAndBranch to accept Smi.
R=jkummerow@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16957005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15122 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 14:58:41 +00:00
danno@chromium.org
681b10b3c0 Prepare push to trunk. Now working on version 3.19.16.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 14:38:36 +00:00
mvstanton@chromium.org
5b2c1a50d9 HCheckFunction is needed to protect new array constructors in
crankshafted code.

BUG=
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15118 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 14:29:01 +00:00
yurys@chromium.org
24ec017182 Revert "Notify CPU profiler when calling native getters"
This reverts commit f323d984a73bab345c4eab5c1907552ccfa7ccaa.

Broke compilation on the bots with an error that doesn't occur locally:

  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-bignum-dtoa.o
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = int]’:
../test/cctest/test-api.cc:1129: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = unsigned int]’:
../test/cctest/test-api.cc:1136: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = double]’:
../test/cctest/test-api.cc:1143: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = bool]’:
../test/cctest/test-api.cc:1150: error: insufficient contextual information to determine type
../test/cctest/test-api.cc: In function ‘void FastReturnValueCallback(const v8::FunctionCallbackInfo<v8::Value>&) [with T = void]’:
../test/cctest/test-api.cc:1157: error: insufficient contextual information to determine type
  CXX(target) /mnt/data/b/build/slave/v8-linux-debug/build/v8/out/Debug/obj.target/cctest/test/cctest/test-circular-queue.o

BUG=None
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 14:05:19 +00:00
yurys@chromium.org
1a3c3cee9d Notify CPU profiler when calling native getters
This change modifies code produced by BaseLoadStubCompiler::GenerateLoadCallback so that instead of calling AccessorGetter direcly it calls InvokeAccessorGetter which changes VM state and calls the actual callback. This way CPU profiler knows which external callback is being executed in this case.

BUG=244580
R=dcarney@chromium.org, loislo@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15116 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 13:46:33 +00:00
loislo@chromium.org
2f811dbb99 Revert "DevTools: CPUProfiler: provide url for scripts that have sourceURL property."
This reverts commit d95b7bb92ad1a191cf505250830d094b86d61e8f.
This reverts commit ca81c09a367600be79452e1fc53ac63b75e369c4.

record-cpu-profile.html is crashing

TBR= yurys@chromium.org, danno@chromium.org
BUG=none

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 11:09:19 +00:00
wingo@igalia.com
d73dace0f5 Delegating yield does not re-box result objects
Delegating yield (yield*) should just pass on the iterator results it
receives instead of re-boxing them.

R=rossberg@chromium.org
TEST=mjsunit/harmony/generators-iteration
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15113 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 10:57:11 +00:00
dcarney@chromium.org
608a6b8965 another attempt at fixing 15107
TBR=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15112 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 10:39:44 +00:00
wingo@igalia.com
09fcac5e39 Use keyed-call inline caches in delegating yield
Since we can't assume anything about the shape of the iterator in a
yield* (delegating yield), use an IC to do the next() and throw()
iterator method calls.

BUG=v8:2691
R=rossberg@chromium.org
TEST=mjsunit/regress/regress-2691

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 10:18:28 +00:00
mstarzinger@chromium.org
a7f3cd7486 Trace amount of external memory with --trace-gc-verbose.
R=hpayer@google.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15108 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 09:48:23 +00:00
dcarney@chromium.org
8b2c26d736 remove most uses of raw handle constructors
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15107 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 09:27:09 +00:00
yangguo@chromium.org
28db1d0ebd Fix memory leak in assert scopes.
R=svenpanne@chromium.org
BUG=246567

Review URL: https://chromiumcodereview.appspot.com/15709020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 07:47:42 +00:00
dcarney@chromium.org
9103afa291 Deprecate the version of MakeWeak which takes an Isolate.
BUG=NONE
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 07:23:23 +00:00
palfia@homejinni.com
2ed2fde83b MIPS: Fix for bug 245480. Calling new Array(a) with a single argument could result in creating a holey array with a packed elements kind.
Port r15095 (4a97e1e4)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 23:40:46 +00:00
palfia@homejinni.com
f5461d3c8a MIPS: Separate Cell and PropertyCell spaces
Port r15089 (5c28e4e7)

Original commit message:
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15103 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 23:39:22 +00:00
danno@chromium.org
d353e81143 Prepare push to trunk. Now working on version 3.19.15.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15099 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 22:30:58 +00:00
danno@chromium.org
64ee36428a Fix nosnap sarialization test failure (again)
TBR=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15098 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 22:21:08 +00:00
palfia@homejinni.com
6124e8f141 MIPS: Allow the deoptimizer translation to track de-materialized objects.
Port r15087 (63e1626)

Original commit message:
This allows the deoptimizer to materialize objects (e.g. the arguments
object) while deopting without having a consective stack area holding
the object values. The LEnvironment explicitly tracks locations for
these values and preserves them in the translation.

TEST=mjsunit/compiler/inline-arguments
BUG=

Review URL: https://codereview.chromium.org/16846002
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15097 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 21:46:53 +00:00
palfia@homejinni.com
2a56e33da7 MIPS: Allocate generator result objects before unwinding try handlers
Port r15079 (1ebdfdc6)

Original commit message:
When a generator suspends, it saves its state out to the heap and
unwinds try handlers but doesn't pop anything off the stack.  Instead it
relies on no GC happening between the suspend and the return from the
generator.  However this was not the case: boxing the result object
could cause GC, which would try to traverse the stack but would
misinterpret words from unwound try handlers as heap objects.

This CL changes to allocate the result objects before the suspend.  It
also removes the generators-iteration skip introduced in r15065.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 19:41:29 +00:00
mvstanton@chromium.org
75afb8ce79 Fix for bug 245480. Calling new Array(a) with a single argument could result in creating a holey array with a packed elements kind.
BUG=245480
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15095 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 18:04:16 +00:00
rossberg@chromium.org
94f651bc1b Migrate Compare ICs to new type rep
(Does not yet use common AST expression type field.)

R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15093 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 17:20:37 +00:00
danno@chromium.org
0a2f7acaab Fix serialization tests and Mac build
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15092 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 16:23:17 +00:00
danno@chromium.org
1b89cbf817 Separate Cell and PropertyCell spaces
This makes it possible to store additional information on property cells, for example Type and optimized Code dependencies.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15089 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 15:03:44 +00:00
mstarzinger@chromium.org
93ab1864ea Allow the deoptimizer translation to track de-materialized objects.
This allows the deoptimizer to materialize objects (e.g. the arguments
object) while deopting without having a consective stack area holding
the object values. The LEnvironment explicitly tracks locations for
these values and preserves them in the translation.

R=svenpanne@chromium.org
TEST=mjsunit/compiler/inline-arguments

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15087 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 14:22:49 +00:00
mstarzinger@chromium.org
643350c5d2 Deprecate obsolete JSFunction::unchecked_shared accessor.
R=hpayer@chromium.org
BUG=v8:1490

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15086 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 14:05:56 +00:00
hpayer@chromium.org
a11d33967f Clean up StoreBuffer::EnsureSpace.
BUG=
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15085 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 13:14:35 +00:00
wingo@igalia.com
cc27c4c41b GeneratorFunction() makes generator instances
The current specification has GeneratorFunction() be like Function(),
except that it makes generator instances.  This commit implements that
behavior.  It also fills in a piece of the implementation where
otherwise calling GeneratorFunction or GeneratorFunctionPrototype would
cause an abort because they have no code.

R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration
TEST=mjsunit/harmony/generators-runtime
BUG=v8:2355,v8:2680

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15084 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 12:52:16 +00:00
hpayer@chromium.org
7ff046c3fd Implemented function that returns code age.
This may be used to display debugging information.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 12:39:15 +00:00
wingo@igalia.com
1fb2f4b358 For-of statements do not permit initializers.
R=rossberg@chromium.org
BUG=v8:2720

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 12:37:44 +00:00
wingo@igalia.com
8f15c921ee Re-enable the harmony => harmony-generators implication after r15079.
R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 11:48:55 +00:00
wingo@igalia.com
418ddc800a Allocate generator result objects before unwinding try handlers
When a generator suspends, it saves its state out to the heap and
unwinds try handlers but doesn't pop anything off the stack.  Instead it
relies on no GC happening between the suspend and the return from the
generator.  However this was not the case: boxing the result object
could cause GC, which would try to traverse the stack but would
misinterpret words from unwound try handlers as heap objects.

This CL changes to allocate the result objects before the suspend.  It
also removes the generators-iteration skip introduced in r15065.

R=mstarzinger@chromium.org
TEST=mjsunit/harmony/generators-iteration
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 11:02:51 +00:00
yangguo@chromium.org
74556569d1 Reland "Enable map dependency to in-flight compilation info."
BUG=248076
R=ulan@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16782004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15077 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 09:43:22 +00:00
dslomov@chromium.org
ecaf460548 Unify processing of weak lists in heap.cc
R=hpayer@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 09:31:39 +00:00
dcarney@chromium.org
b34d1cf3e6 release callback table memory in ~Isolate
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15075 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 08:57:36 +00:00
loislo@chromium.org
29abaf4aad DevTools: CPUProfiler: provide url for scripts that have sourceURL property.
BUG=none
TEST=SourceURLSupportForNewFunctions, LogExistingFunctionSourceURLCheck
R=jkummerow@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15074 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-12 08:27:24 +00:00
plind44@gmail.com
0edbf9e709 MIPS: Skip some conditional deopts for Div/Mul when all uses are truncating.
Port r15060 (8cdd204)

Original commit message:
- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase

BUG=v8:2132
R=plind44@gmail.com

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

Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 17:41:03 +00:00
ulan@chromium.org
c2dab39b71 Prepare push to trunk. Now working on version 3.19.14.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/16276010

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 15:37:56 +00:00
wingo@igalia.com
5760c7b598 Disable --harmony -> --harmony-generators implication
A GC-related bug has started showing up after r15060 that unfortunately
I haven't been able to reproduce.  Disable generators by default for the
Canary push.

R=danno@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15065 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 14:45:17 +00:00
mstarzinger@chromium.org
b348744c56 Add tracing for functions processed by code flushing.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15064 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 14:40:44 +00:00
plind44@gmail.com
8f66deead7 MIPS: Fix memory barriers for atomic operations.
Add barriers using MIPS 'sync' instructions as needed for SMP
systems.

BUG=246947
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15062 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 14:30:43 +00:00
yangguo@chromium.org
6da97b1d4a Revert "Enable map dependency to in-flight compilation info."
This includes r15032, r15030 and r15005.

R=ulan@chromium.org
BUG=248076

Review URL: https://chromiumcodereview.appspot.com/16482004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15061 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 11:55:56 +00:00
jkummerow@chromium.org
9447014780 Skip some conditional deopts for Div/Mul when all uses are truncating.
- set "can be minus zero" flag properly so minus-zero checks are skipped
- skip "integer result?" check in division code when uses are truncating
- drive-by cleanup: consolidated computation of kCanOverflow flag for Add/Sub into range inference phase

BUG=v8:2132
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15060 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 11:43:57 +00:00
wingo@igalia.com
f68d6a10f8 Fix crasher when checking for "of", but next token has no literal buffer
Also fix a typo in an assertion in scanner.h.

R=mstarzinger@chromium.org
BUG=248025
TEST=mjsunit/regress/regress-crbug-248025.js

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 11:30:03 +00:00
dcarney@chromium.org
dbeafbaaff interceptor return values escape their scope
R=svenpanne@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15058 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 11:08:46 +00:00
jkummerow@chromium.org
57632e208a Increase sanity of integer division handling on ARM
- In the INT32 BinaryOpStub, fix type feedback collection for DIV,
  bringing it in line with other platforms.
- In Lithium codegen, emit proper inlined code, don't call the stub.
- Drive-by fix: assert appropriate CpuFeaturesScope for SDIV.

R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15057 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 10:47:44 +00:00
dslomov@chromium.org
9278a4b7b1 Change ArrayBuffer API and implementation to use embedder-provided allocator.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-11 10:41:14 +00:00
palfia@homejinni.com
1d4c64591b MIPS: Fix abs_d instruction in the simulator.
The abs_d instruction was implemented wrongly in the simulator,
it doesn't reverse the sign of the -0 number.

This commit fixes the abs_d instruction implementation.

TEST=msjunit/math-abs

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15053 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 21:54:07 +00:00
palfia@homejinni.com
88021e64b1 MIPS: Use compare nil ic only for non-strict equality.
Port r15045 (cce366f)

Original commit message:
Strict-equality only has one check and cannot deopt. Should therefore not be part of the stub.

BUG=

Review URL: https://codereview.chromium.org/16690008
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 18:16:27 +00:00
palfia@homejinni.com
eb7e2771a9 MIPS: Generator object "next" method takes optional send value.
Port r15028 (258a047)

Original commit message:
Update the generators implementation to make "next" also do the job of
what was previously called "send" by taking an optional argument.
Remove send, and do a bunch of renamings.

BUG=v8:2355, v8:2715

Review URL: https://codereview.chromium.org/16735005
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 18:14:15 +00:00
palfia@homejinni.com
2ebb95071a MIPS: Fix LoadIC calling convention.
Port r15027 (3ffb343)

Original commit message:
The comments in ic-arm.cc::LoadIC indicated that the receiver should be
both in a register and on the stack. This isn't true in fact: the code
is careful to spill the receiver if needed.

This CL also fixes up a mistaken use of this convention in VisitYield.

BUG=

Review URL: https://codereview.chromium.org/16131004
Patch from Balazs Kilvady <kilvadyb@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15048 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 18:10:58 +00:00
palfia@homejinni.com
b7e06629f3 MIPS: add a default value for return value
Port r15024 (1a76177)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 18:07:28 +00:00
yangguo@chromium.org
5cf0cba71a Fix compilation with gdbjit=on.
r14919 forgot three AssertNoAllocation -> DisallowHeapAllocation replacements.

BUG=v8:2719
R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/16093041

Patch from Kang-Hao (Kenny) Lu <kennyluck@csail.mit.edu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15046 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 16:31:55 +00:00
olivf@chromium.org
946ea53264 use compare nil ic only for non-strict equality. strict-equality only has one check and cannot deopt. should therefore not be part of the stub.
BUG=
R=rossberg@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15045 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:47:23 +00:00
olivf@chromium.org
3a26dda780 revert accidental dcommit
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15044 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:43:40 +00:00
olivf@chromium.org
23691cf023 also remove the constant
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15043 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:30:17 +00:00
olivf@chromium.org
73b7ab9ae6 remove equality kind from compare nil ic
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15042 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:30:02 +00:00
verwaest@chromium.org
b51c0295cc Prepare push to trunk. Now working on version 3.19.13.
R=jkummerow@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/16730004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 15:10:44 +00:00
mvstanton@chromium.org
4d7e939ed6 Array access fix: g++ darwin 4.2.1 compiler clamped array index to 0 when confronted with negative indices.
BUG=247303
R=jkummerow@chromium.org, ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15038 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-10 14:44:05 +00:00