platform/upstream/v8.git
9 years agoharmony-scoping: Implement StoreIC handler for stores to global contexts.
dslomov@chromium.org [Tue, 11 Nov 2014 15:15:42 +0000 (15:15 +0000)]
harmony-scoping: Implement StoreIC handler for stores to global contexts.

R=ishell@chromium.org, adamk@chromium.org, rossberg@chromium.org, verwaest@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25264}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25264 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemove V8.ZoneSegmentBytes.
marja@chromium.org [Tue, 11 Nov 2014 14:27:26 +0000 (14:27 +0000)]
Remove V8.ZoneSegmentBytes.

1) It's unused. 2) Since Zones can be used on a background thread, the Zone
cannot just access this counter from the Isolate, so keeping this counter up to
date would require extra work. Better to just remove it.

BUG=431860
LOG=n
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25263}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25263 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemove PhiReducer.
titzer@chromium.org [Tue, 11 Nov 2014 12:02:56 +0000 (12:02 +0000)]
Remove PhiReducer.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25262}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25262 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemoved CSCOPE artifact.
svenpanne@chromium.org [Tue, 11 Nov 2014 11:52:42 +0000 (11:52 +0000)]
Removed CSCOPE artifact.

TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25261}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25261 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemoved gcc_version magic from our GYP files, we don't support GCC 4.4 anymore.
svenpanne@chromium.org [Tue, 11 Nov 2014 11:47:07 +0000 (11:47 +0000)]
Removed gcc_version magic from our GYP files, we don't support GCC 4.4 anymore.

R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25260}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoharmony-scoping: Implement LoadIC handler for loads from global contexts.
dslomov@chromium.org [Tue, 11 Nov 2014 11:16:30 +0000 (11:16 +0000)]
harmony-scoping: Implement LoadIC handler for loads from global contexts.

R=ishell@chromium.org, adamk@chromium.org, rossberg@chromium.org, verwaest@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25259}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25259 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoReland "In-object double fields unboxing (for 64-bit only)."
ishell@chromium.org [Tue, 11 Nov 2014 10:24:52 +0000 (10:24 +0000)]
Reland "In-object double fields unboxing (for 64-bit only)."

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25258}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25258 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd optional max elements limit for Map/Set mirror iterator preview.
aandrey@chromium.org [Tue, 11 Nov 2014 09:46:40 +0000 (09:46 +0000)]
Add optional max elements limit for Map/Set mirror iterator preview.

R=yangguo@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25257}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25257 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoPowerPC specific sub-directories.
svenpanne@chromium.org [Tue, 11 Nov 2014 08:29:54 +0000 (08:29 +0000)]
PowerPC specific sub-directories.

Technically, this is https://codereview.chromium.org/571173003/ from Andrew Low <andrew_low@ca.ibm.com>.

TBR=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25255}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25255 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix test driver json output.
machenbach@chromium.org [Tue, 11 Nov 2014 06:06:20 +0000 (06:06 +0000)]
Fix test driver json output.

TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25254}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25254 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMapCache simplification. It is now a FixedArray that maps number of properties to...
ishell@chromium.org [Mon, 10 Nov 2014 18:03:50 +0000 (18:03 +0000)]
MapCache simplification. It is now a FixedArray that maps number of properties to a WeakCell with a Map.

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25253}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25253 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "In-object double fields unboxing (for 64-bit only)."
verwaest@chromium.org [Mon, 10 Nov 2014 17:43:51 +0000 (17:43 +0000)]
Revert "In-object double fields unboxing (for 64-bit only)."
Revert "Fixes for Windows and Mac builds after r25250."
TBR=ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25252}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25252 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFixes for Windows and Mac builds after r25250.
ishell@chromium.org [Mon, 10 Nov 2014 16:54:55 +0000 (16:54 +0000)]
Fixes for Windows and Mac builds after r25250.

R=verwaest@chromium.org
TBR=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25251}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25251 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoIn-object double fields unboxing (for 64-bit only).
ishell@chromium.org [Mon, 10 Nov 2014 16:34:30 +0000 (16:34 +0000)]
In-object double fields unboxing (for 64-bit only).

This CL introduces LayoutDescriptor which is responsible for tracking which in-object fields are tagged and which are not.
LayoutDescriptor field added to Map. Currently unboxing is disabled.

R=hpayer@chromium.org, verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25250}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25250 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix has_constant_parameter_count() confusion in LReturn
jkummerow@chromium.org [Mon, 10 Nov 2014 15:24:58 +0000 (15:24 +0000)]
Fix has_constant_parameter_count() confusion in LReturn

BUG=chromium:431602
LOG=y
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25249}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25249 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix bugs in simplified lowering relating to int32/uint32 signs.
titzer@chromium.org [Mon, 10 Nov 2014 14:28:09 +0000 (14:28 +0000)]
Fix bugs in simplified lowering relating to int32/uint32 signs.

Lowering of NumberToUint32 and NumberToInt32 was not correctly accounting for the sign of the input and the sign of the output, emitting the wrong representation changes.

Along the way, I've found cases where MachineOperatorBuilder would break if fed a machine type for loads or stores that was not cached, requiring MachineOperatorBuilder to take zone to allocate operators for these cases.

R=bmeurer@chromium.org, jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25247}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix serialization of expected outcomes in test driver.
machenbach@chromium.org [Mon, 10 Nov 2014 14:17:50 +0000 (14:17 +0000)]
Fix serialization of expected outcomes in test driver.

The outcomes are saved as a set and need to be converted into
a list to be json-serializable.

TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25246}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25246 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoReland "[turbofan] Fix select lowering" with fix.
bmeurer@chromium.org [Mon, 10 Nov 2014 11:55:20 +0000 (11:55 +0000)]
Reland "[turbofan] Fix select lowering" with fix.

Select lowering must not merge Select nodes that depend on each other,
because the resulting graph is not schedulable.

TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25245}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25245 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix change log creation in push script.
machenbach@chromium.org [Mon, 10 Nov 2014 11:52:00 +0000 (11:52 +0000)]
Fix change log creation in push script.

BUG=chromium:408523
LOG=n
TBR=tandrii@chromium.org
TEST=script_test.py

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

Cr-Commit-Position: refs/heads/master@{#25244}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25244 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Resolve chromium and android webview build conflicts.
dusan.milosavljevic@imgtec.com [Mon, 10 Nov 2014 11:47:54 +0000 (11:47 +0000)]
MIPS: Resolve chromium and android webview build conflicts.

The mips related gyp variables and compiler flags for webview
and chromium builds are set externally. The CL ensures this
behaviour and prevents conflicts in configuration with standalone builds.

TEST=
BUG=
R=jkummerow@chromium.org, paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25243}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25243 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] add register assignment verifier
dcarney@chromium.org [Mon, 10 Nov 2014 11:28:54 +0000 (11:28 +0000)]
[turbofan] add register assignment verifier

R=jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25242}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25242 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemoved dead WriteInt32ToHeapNumberStub.
svenpanne@chromium.org [Mon, 10 Nov 2014 10:48:38 +0000 (10:48 +0000)]
Removed dead WriteInt32ToHeapNumberStub.

R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25241}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25241 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMore tests for toplevel lexical scope
rossberg@chromium.org [Mon, 10 Nov 2014 10:46:37 +0000 (10:46 +0000)]
More tests for toplevel lexical scope

R=dslomov@chromium.org
BUG=v8:2198
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25240}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25240 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "[turbofan] Fix select lowering."
bmeurer@chromium.org [Mon, 10 Nov 2014 10:43:03 +0000 (10:43 +0000)]
Revert "[turbofan] Fix select lowering."

This reverts commit cf08e8d70ff0fa35dd315ddc430b743bb04c89cf for
breaking Embenchen bullet.

TBR=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25238}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25238 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoUpgrade version and change log after branch.
machenbach@chromium.org [Mon, 10 Nov 2014 10:40:59 +0000 (10:40 +0000)]
Upgrade version and change log after branch.

R=jkummerow@chromium.org
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25237}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25237 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Fix select lowering.
bmeurer@chromium.org [Mon, 10 Nov 2014 10:29:37 +0000 (10:29 +0000)]
[turbofan] Fix select lowering.

Select lowering must not merge Select nodes that depend on each other,
because the resulting graph is not schedulable.

TEST=unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25236}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25236 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd expected outcomes to json test output.
machenbach@chromium.org [Mon, 10 Nov 2014 10:26:20 +0000 (10:26 +0000)]
Add expected outcomes to json test output.

BUG=
R=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25235}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Fix stepping in for-loops."
yangguo@chromium.org [Mon, 10 Nov 2014 09:35:28 +0000 (09:35 +0000)]
Revert "Fix stepping in for-loops."

TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25233}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25233 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix stepping in for-loops.
yangguo@chromium.org [Mon, 10 Nov 2014 09:05:48 +0000 (09:05 +0000)]
Fix stepping in for-loops.

R=ulan@chromium.org
BUG=v8:3634
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#25231}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25231 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: Try avoiding MISS for callic monomorphic case.
weiliang.lin@intel.com [Mon, 10 Nov 2014 05:50:51 +0000 (05:50 +0000)]
X87: Try avoiding MISS for callic monomorphic case.

port 6412c8ba70f2331aae0f21b968dd051b2320b947 (r25207)

original commit message:

  Try avoiding MISS for callic monomorphic case.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25230}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoResolve race condition with GC in CompilationCacheTable::Put.
jarin@chromium.org [Mon, 10 Nov 2014 05:50:11 +0000 (05:50 +0000)]
Resolve race condition with GC in CompilationCacheTable::Put.

The trouble is that the AsHandle method can allocate and thus
invoke GC, which could empty the table while we are updating it.

BUG=chromium:430880
LOG=N
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25229}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25229 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[arm] Recognize SXTB, SXTH, UXTB and UXTH.
bmeurer@chromium.org [Mon, 10 Nov 2014 05:48:38 +0000 (05:48 +0000)]
[arm] Recognize SXTB, SXTH, UXTB and UXTH.

TEST=cctest,msjunit/asm,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25228}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25228 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: Turn ToNumberStub into a PlatformCodeStub again.
weiliang.lin@intel.com [Mon, 10 Nov 2014 04:53:15 +0000 (04:53 +0000)]
X87: Turn ToNumberStub into a PlatformCodeStub again.

port b6737c56eaf51d63ab83b6529f657c15f834623c (r25187)

original commit message:

  Turn ToNumberStub into a PlatformCodeStub again.

  The HydrogenCodeStub is too expensive and there's no easy way to reduce
  this cost, so turning it into a PlatformCodeStub solves that problem until
  we can use TurboFan for code stubs.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25227}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoX87: fix one GC issue.
weiliang.lin@intel.com [Mon, 10 Nov 2014 04:47:19 +0000 (04:47 +0000)]
X87: fix one GC issue.

 The incorrect parameter number is set when recording safepoint.

BUG=
R=weiliang.lin@intel.com

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

Patch from Chunyang Dai <chunyang.dai@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25226}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoArm64: Remove forced csp alignment to 16 byte values for Nvidia chips.
rmcilroy@chromium.org [Fri, 7 Nov 2014 23:34:13 +0000 (23:34 +0000)]
Arm64: Remove forced csp alignment to 16 byte values for Nvidia chips.

Remove the forced alignment of csp to 16 byte values on Nvidia chips.
Benchmarks on current devices show that this is no longer required.

R=rodolph.perfetta@arm.com, ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25225}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25225 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Avoid some unnecessary fast-properties map creations."
arv@chromium.org [Fri, 7 Nov 2014 18:49:24 +0000 (18:49 +0000)]
Revert "Avoid some unnecessary fast-properties map creations."

This reverts commit e1f23eab4255d63344011dfb885b8e8962cb60e2.

Broke cctest/test-heap/ReleaseOverReservedPages on a bunch of builders

http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/928/steps/Check/logs/ReleaseOverReservedPa..

BUG=None
LOG=N
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25224}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25224 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Optimize add operations to use 'leal' instruction on x64
danno@chromium.org [Fri, 7 Nov 2014 16:47:25 +0000 (16:47 +0000)]
[turbofan] Optimize add operations to use 'leal' instruction on x64

Add MemoryOperandMatcher that recognizes node clusters in the form
[%r1 + %r2*SCALE + OFFSET] and explicit support in the x64 Int32Add
selector to use it to translate complex adds to 'leal' instructions.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25223}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25223 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoClasses: Partial fix for constructor not calling super
arv@chromium.org [Fri, 7 Nov 2014 16:39:00 +0000 (16:39 +0000)]
Classes: Partial fix for constructor not calling super

Introduce two new function kind, one for default constructor and one
for default constructor call super. Then when we are about to pares
these we just generate the correct AST in source.

BUG=v8:3661, v8:3672
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25222}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25222 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAvoid some unnecessary fast-properties map creations.
jkummerow@chromium.org [Fri, 7 Nov 2014 16:33:08 +0000 (16:33 +0000)]
Avoid some unnecessary fast-properties map creations.

(1) When we have just normalized and re-fastified a map, we don't need to copy it again to set the is_prototype bit.
(2) When defining accessors causes a non-prototype object to go slow, don't force re-fastification.

BUG=v8:3267
LOG=n
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25221}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoharmony_scoping: Implement lexical bindings at top level
dslomov@chromium.org [Fri, 7 Nov 2014 16:29:13 +0000 (16:29 +0000)]
harmony_scoping: Implement lexical bindings at top level

This implements correct semantics for "extensible" top level lexical scope.
The entire lexical scope is represented at runtime by GlobalContextTable, reachable from native context and accumulating global contexts from every script loaded into the context.

When the new script starts executing, it does the following validation:
- checks the GlobalContextTable and global object (non-configurable own) properties against the set of declarations it introduces and reports potential conflicts.
- invalidates the conflicting PropertyCells on global object, so that any code depending on them will miss/deopt causing any contextual lookups to be reexecuted under the new bindings
- adds the lexical bindings it introduces to the GlobalContextTable

Loads and stores for contextual lookups are modified so that they check the GlobalContextTable before looking up properties on global object, thus implementing the shadowing of global object properties by lexical declarations.

R=adamk@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25220}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25220 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAdd FLAG_trace_maps
jkummerow@chromium.org [Fri, 7 Nov 2014 16:03:11 +0000 (16:03 +0000)]
Add FLAG_trace_maps

R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25219}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25219 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Try avoiding MISS for callic monomorphic case.
balazs.kilvady@imgtec.com [Fri, 7 Nov 2014 16:01:46 +0000 (16:01 +0000)]
MIPS: Try avoiding MISS for callic monomorphic case.

Port c01061044028f7a31ba51496e44900481005eb38
Port r25207

BUG=
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25218}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25218 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake scheduler handle floating non-naked loops.
mstarzinger@chromium.org [Fri, 7 Nov 2014 16:01:17 +0000 (16:01 +0000)]
Make scheduler handle floating non-naked loops.

R=jarin@chromium.org
TEST=cctest/test-scheduler/NestedFloatingDiamondWithLoop

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

Cr-Commit-Position: refs/heads/master@{#25217}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25217 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoTeach TurboFan to call C functions with result_size > 1.
mvstanton@chromium.org [Fri, 7 Nov 2014 15:34:42 +0000 (15:34 +0000)]
Teach TurboFan to call C functions with result_size > 1.

Happily, this fixes WIN64 failures too.

BUG=
R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25216}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoScanner: disallow unicode escapes in regexp flags.
marja@chromium.org [Fri, 7 Nov 2014 14:31:54 +0000 (14:31 +0000)]
Scanner: disallow unicode escapes in regexp flags.

The spec explicitly forbids them. V8 never handled them properly either, just
the Scanner accepted them (it had code to add them literally to the
LiteralBuffer) and later on, Regexp constructor disallowed them.

According to the spec, unicode escapes in regexp flags should be an early error
("It is a Syntax Error if IdentifierPart contains a Unicode escape sequence.").

Note that Scanner is still more relaxed about regexp flags than the
spec. Especially, it accepts any identifier parts (not just a small set of
letters) and doesn't check for duplicates.

R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25215}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Fix deoptimization of uint8, uint16 inputs.
jarin@chromium.org [Fri, 7 Nov 2014 14:07:18 +0000 (14:07 +0000)]
[turbofan] Fix deoptimization of uint8, uint16 inputs.

BUG=
R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25214}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25214 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemove heap size filter for context disposal garbage collection.
hpayer@chromium.org [Fri, 7 Nov 2014 13:07:04 +0000 (13:07 +0000)]
Remove heap size filter for context disposal garbage collection.

BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25213}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25213 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoUse current time to calculate context disposal rate.
hpayer@chromium.org [Fri, 7 Nov 2014 12:40:06 +0000 (12:40 +0000)]
Use current time to calculate context disposal rate.

BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25212}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25212 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert r24922 "Windows: use SystemTimeToTzSpecificLocalTime instead of localtime_s."
ulan@chromium.org [Fri, 7 Nov 2014 12:01:00 +0000 (12:01 +0000)]
Revert r24922 "Windows: use SystemTimeToTzSpecificLocalTime instead of localtime_s."

SystemTimeToTzSpecificLocalTime doesn't work correctly inside Chrome sandbox.

BUG=chromium:417640
LOG=Y
R=yangguo@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25211}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan][arm64] Optimize shifts combined with truncations or extensions.
baptiste.afsa@arm.com [Fri, 7 Nov 2014 09:55:39 +0000 (09:55 +0000)]
[turbofan][arm64] Optimize shifts combined with truncations or extensions.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25210}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25210 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[arm64] Bug fix in sapefoint recording.
baptiste.afsa@arm.com [Fri, 7 Nov 2014 09:47:08 +0000 (09:47 +0000)]
[arm64] Bug fix in sapefoint recording.

cp is handled by the register allocator and doesn't necessarily hold the
context pointer on arm64.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25209}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25209 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoPerform context disposal garbage collections only if contexts disposals happen at...
hpayer@chromium.org [Fri, 7 Nov 2014 09:36:49 +0000 (09:36 +0000)]
Perform context disposal garbage collections only if contexts disposals happen at a high rate.

BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25208}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25208 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoTry avoiding MISS for callic monomorphic case.
mvstanton@chromium.org [Fri, 7 Nov 2014 09:28:04 +0000 (09:28 +0000)]
Try avoiding MISS for callic monomorphic case.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25207}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25207 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoEnable inlining tests that pass with new scheduler.
mstarzinger@chromium.org [Thu, 6 Nov 2014 18:56:33 +0000 (18:56 +0000)]
Enable inlining tests that pass with new scheduler.

R=titzer@chromium.org
TEST=test-run-inlining/InlineTwiceDependentDiamond

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

Cr-Commit-Position: refs/heads/master@{#25205}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25205 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoEnable ES6 numeric literals by default
arv@chromium.org [Thu, 6 Nov 2014 18:44:44 +0000 (18:44 +0000)]
Enable ES6 numeric literals by default

BUG=v8:2783
LOG=Y
R=dslomov@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25204}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25204 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoDisable ranging for modulus in hopes it will fix arm.
titzer@chromium.org [Thu, 6 Nov 2014 17:41:24 +0000 (17:41 +0000)]
Disable ranging for modulus in hopes it will fix arm.

TBR=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25203}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Turn ToNumberStub into a PlatformCodeStub again.
balazs.kilvady@imgtec.com [Thu, 6 Nov 2014 16:26:42 +0000 (16:26 +0000)]
MIPS: Turn ToNumberStub into a PlatformCodeStub again.

Port 724a15e8bf3fb8697a950c8e0f96158c8e56ec71
Port r25187

The HydrogenCodeStub is too expensive and there's no easy way to reduce
this cost, so turning it into a PlatformCodeStub solves that problem
until we can use TurboFan for code stubs.

TEST=mjsunit
BUG=
R=dusan.milosavljevic@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25202}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25202 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] move label generation to code generator
dcarney@chromium.org [Thu, 6 Nov 2014 14:59:07 +0000 (14:59 +0000)]
[turbofan] move label generation to code generator

R=bmeurer@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25201}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25201 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Allocate a small amount of slack space to graph builder environments.
titzer@chromium.org [Thu, 6 Nov 2014 14:57:54 +0000 (14:57 +0000)]
[turbofan] Allocate a small amount of slack space to graph builder environments.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25200}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25200 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Lower asm.js truncations to JSToNumber.
bmeurer@chromium.org [Thu, 6 Nov 2014 13:55:30 +0000 (13:55 +0000)]
[turbofan] Lower asm.js truncations to JSToNumber.

- JSBitwiseOr(x, 0) => Word32Or(NumberToInt32(JSToNumber(x)), 0)
- JSMultiply(x, 1) => NumberMultiply(JSToNumber(x), 1)

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25198}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix O(n^2) successor traversal in ControlReducer.
titzer@chromium.org [Thu, 6 Nov 2014 13:27:24 +0000 (13:27 +0000)]
Fix O(n^2) successor traversal in ControlReducer.

R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25197}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Combine JSToNumber and ChangeTaggedToFloat64 for fast SMI case.
bmeurer@chromium.org [Thu, 6 Nov 2014 13:25:45 +0000 (13:25 +0000)]
[turbofan] Combine JSToNumber and ChangeTaggedToFloat64 for fast SMI case.

This does the following optimization during ChangeLowering:

 ChangeTaggedToFloat64(JSToNumber(x)) =>
   if IsSmi(x) then ChangeSmiToFloat64(x)
   else let y = JSToNumber(x) in
     if IsSmi(y) then ChangeSmiToFloat64(y)
     else LoadHeapNumberValue(y)

Also cleanup/rearrange some code duplication in ChangeLowering.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25195}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25195 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Remove workaround for successors on end block from scheduler."
mstarzinger@chromium.org [Thu, 6 Nov 2014 13:11:53 +0000 (13:11 +0000)]
Revert "Remove workaround for successors on end block from scheduler."

TBR=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25194}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25194 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] (reland) Compute tighter ranges for modulus in Typer.
titzer@chromium.org [Thu, 6 Nov 2014 13:10:20 +0000 (13:10 +0000)]
[turbofan] (reland) Compute tighter ranges for modulus in Typer.

R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25193}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25193 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix marking time in cumulative gc stats.
hpayer@chromium.org [Thu, 6 Nov 2014 12:58:53 +0000 (12:58 +0000)]
Fix marking time in cumulative gc stats.

BUG=
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25192}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25192 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] phis cannot take registers as inputs
dcarney@chromium.org [Thu, 6 Nov 2014 12:56:18 +0000 (12:56 +0000)]
[turbofan] phis cannot take registers as inputs

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25191}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAllow JSArray fast moving elements even if the array's proto isn't Array.prototype...
verwaest@chromium.org [Thu, 6 Nov 2014 12:55:52 +0000 (12:55 +0000)]
Allow JSArray fast moving elements even if the array's proto isn't Array.prototype in original state
Otherwise array builtins don't work on internal arrays.

BUG=v8:3681
LOG=n
R=machenbach@chromium.org, mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25190}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25190 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Push TruncateFloat64ToInt32 into phis.
bmeurer@chromium.org [Thu, 6 Nov 2014 12:38:09 +0000 (12:38 +0000)]
[turbofan] Push TruncateFloat64ToInt32 into phis.

TEST=unittests
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25189}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25189 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRemove workaround for successors on end block from scheduler.
mstarzinger@chromium.org [Thu, 6 Nov 2014 12:30:47 +0000 (12:30 +0000)]
Remove workaround for successors on end block from scheduler.

R=titzer@chromium.org
TEST=cctest/test-scheduler/RPOLoop

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

Cr-Commit-Position: refs/heads/master@{#25188}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoTurn ToNumberStub into a PlatformCodeStub again.
bmeurer@chromium.org [Thu, 6 Nov 2014 12:01:41 +0000 (12:01 +0000)]
Turn ToNumberStub into a PlatformCodeStub again.

The HydrogenCodeStub is too expensive and there's no easy way to reduce
this cost, so turning it into a PlatformCodeStub solves that problem
until we can use TurboFan for code stubs.

TEST=mjsunit
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25187}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip json2 on 64 bits debug.
machenbach@chromium.org [Thu, 6 Nov 2014 11:52:45 +0000 (11:52 +0000)]
Skip json2 on 64 bits debug.

BUG=3681
LOG=n
TBR=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25186}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136.
ishell@chromium.org [Thu, 6 Nov 2014 11:49:34 +0000 (11:49 +0000)]
Fix for an assertion failure in Map::FindTransitionToField(...). Appeared after r25136.

BUG=chromium:430846
LOG=N
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25185}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoReuse RPO traversal stack in the scheduler.
mstarzinger@chromium.org [Thu, 6 Nov 2014 11:40:33 +0000 (11:40 +0000)]
Reuse RPO traversal stack in the scheduler.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25184}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip tests that timeout on arm64
ishell@chromium.org [Thu, 6 Nov 2014 10:24:13 +0000 (10:24 +0000)]
Skip tests that timeout on arm64

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25183}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoThe idea behind of this solution is to use the existing "relocation info" instead...
svenpanne@chromium.org [Thu, 6 Nov 2014 09:16:34 +0000 (09:16 +0000)]
The idea behind of this solution is to use the existing "relocation info" instead of consumption the CodeLinePosition events emitted by the V8 compilers.
During generation code and relocation info are generated simultaneously.
When code generation is done you each code object has associated "relocation info".
Relocation information lets V8 to mark interesting places in the generated code: the pointers that might need to be relocated (after garbage collection),
correspondences between the machine program counter and source locations for stack walking.

This patch:
1. Add more source positions info in reloc info to make it suitable for source level mapping.
The amount of data should not be increased dramatically because (1) V8 already marks interesting places in the generated code and
(2) V8 does not write redundant information (it writes a pair (pc_offset, pos) only if pos is changed and skips other).
I measured it on Octane benchmark - for unoptimized code the number of source positions may achieve 2x ('lin_solve' from NavierStokes benchmark).

2. When a sample happens, CPU profiler finds a code object by pc, then use its reloc info to match the sample to a source line.
If a source line is found that hit counter is increased by one for this line.

3. Add a new public V8 API to get the hit source lines by CDT CPU profiler.
Note that it's expected a minor patch in Blink to pack the source level info in JSON to be shown.

4.Add a test that checks how the samples are distributed through source lines.
It tests two cases: (1) relocation info created during code generation and (2) relocation info associated with precompiled function's version.

Patch from Denis Pravdin <denis.pravdin@intel.com>;

R=svenpanne@chromium.org, yurys@chromium.org

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

Patch from Weiliang <weiliang.lin@intel.com>.

Cr-Commit-Position: refs/heads/master@{#25182}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoAvoid redundant work in scheduler loop header/depth calculation.
mstarzinger@chromium.org [Thu, 6 Nov 2014 09:15:10 +0000 (09:15 +0000)]
Avoid redundant work in scheduler loop header/depth calculation.

R=jarin@chromium.org

TEST=cctest/test-scheduler/LoopedFloatingDiamond2

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

Cr-Commit-Position: refs/heads/master@{#25181}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25181 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Turn various diamonds into selects.
bmeurer@chromium.org [Thu, 6 Nov 2014 09:09:50 +0000 (09:09 +0000)]
[turbofan] Turn various diamonds into selects.

TEST=cctest/test-changes-lowering,mjsunit/asm,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25180}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRetry: Parser & internalization fix: ensure no heap allocs during GetString(Handle...
marja@chromium.org [Thu, 6 Nov 2014 08:28:37 +0000 (08:28 +0000)]
Retry: Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>).

The bug has always been there: when the parser is operating in the "immediately
internalize" mode and calls GetString, we get FlatContent of a string and then
do heap allocation.

The bug was uncovered by https://codereview.chromium.org/693803004/ (which put
the parser to the "immediately internalize" mode more often), but looking at the
code, it's possible that it can happen in other cases too.

This CL makes AstValueFactory handle this situation gracefully: it won't try to
internalize inside GetString(Handle<String>); it's unnecessary anyway since we
have the Handle<String> already.

BUG=
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25179}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] extend register allocator testing with control flow
dcarney@chromium.org [Thu, 6 Nov 2014 08:28:15 +0000 (08:28 +0000)]
[turbofan] extend register allocator testing with control flow

R=bmeurer@chromium.org, jarin@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#25178}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Skip embenchen tests on big-endian.
bmeurer@chromium.org [Thu, 6 Nov 2014 06:18:28 +0000 (06:18 +0000)]
MIPS: Skip embenchen tests on big-endian.

Emscripten requires little-endian arch. It has assertion for endianness:

assert(HEAPU8[0] === 255 && HEAPU8[3] === 0,
    'Typed arrays 2 must be run on a little-endian system');

TEST=mjsunit/asm/embenchen/*
BUG=
R=bmeurer@chromium.org

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

Patch from Paul Lind <paul.lind@imgtec.com>.

Cr-Commit-Position: refs/heads/master@{#25177}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Transform x * -1.0 to -0.0 - x.
bmeurer@chromium.org [Thu, 6 Nov 2014 06:13:10 +0000 (06:13 +0000)]
[turbofan] Transform x * -1.0 to -0.0 - x.

TEST=msjunit/asm,unittests
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25176}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Fix uint32div bug after r25103.
paul.lind@imgtec.com [Wed, 5 Nov 2014 22:48:43 +0000 (22:48 +0000)]
MIPS: Fix uint32div bug after r25103.

The div and mod instructions on MIPS are not safe for rhs 0.

TEST=test/mjsunit/asm/uint32div.js
BUG=
R=akos.palfi@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25174}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWhitespace change to trigger bots (5)
machenbach@chromium.org [Wed, 5 Nov 2014 22:08:58 +0000 (22:08 +0000)]
Whitespace change to trigger bots (5)

Cr-Commit-Position: refs/heads/master@{#25173}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWhitespace change to trigger bots (4)
machenbach@chromium.org [Wed, 5 Nov 2014 22:05:26 +0000 (22:05 +0000)]
Whitespace change to trigger bots (4)

Cr-Commit-Position: refs/heads/master@{#25172}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWhitespace change to trigger bots (3)
machenbach@chromium.org [Wed, 5 Nov 2014 22:02:28 +0000 (22:02 +0000)]
Whitespace change to trigger bots (3)

Cr-Commit-Position: refs/heads/master@{#25171}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWhitespace change to trigger bots (2)
machenbach@chromium.org [Wed, 5 Nov 2014 21:58:21 +0000 (21:58 +0000)]
Whitespace change to trigger bots (2)

Cr-Commit-Position: refs/heads/master@{#25170}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoWhitespace change to trigger bots (1)
machenbach@chromium.org [Wed, 5 Nov 2014 21:54:44 +0000 (21:54 +0000)]
Whitespace change to trigger bots (1)

Cr-Commit-Position: refs/heads/master@{#25169}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMIPS: Fix instruction selection test expectations after r25120.
dusan.milosavljevic@imgtec.com [Wed, 5 Nov 2014 18:51:07 +0000 (18:51 +0000)]
MIPS: Fix instruction selection test expectations after r25120.

TEST=unittests/InstructionSelectorCmpTest.Parameter,
     InstructionSelectorTest.Word32EqualWithZero
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#25167}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip tests that timout on arm64
ishell@chromium.org [Wed, 5 Nov 2014 17:01:53 +0000 (17:01 +0000)]
Skip tests that timout on arm64

TBR=machenbach@chromium.org, bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25166}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoFix printing and verification of RPO computation.
mstarzinger@chromium.org [Wed, 5 Nov 2014 15:45:17 +0000 (15:45 +0000)]
Fix printing and verification of RPO computation.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25165}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "[turbofan] Compute tighter ranges for modulus in Typer."
titzer@chromium.org [Wed, 5 Nov 2014 15:19:30 +0000 (15:19 +0000)]
Revert "[turbofan] Compute tighter ranges for modulus in Typer."

This reverts commit 482586747ca6bc0c94cc23f916fd190931d3a836.

TBR=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25164}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agofix assert in arm64 gap resolver
dcarney@chromium.org [Wed, 5 Nov 2014 15:09:15 +0000 (15:09 +0000)]
fix assert in arm64 gap resolver

BUG=
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25163}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years ago[turbofan] Compute tighter ranges for modulus in Typer.
titzer@chromium.org [Wed, 5 Nov 2014 14:56:46 +0000 (14:56 +0000)]
[turbofan] Compute tighter ranges for modulus in Typer.

R=jarin@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25162}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip test in release mode for arm64
machenbach@chromium.org [Wed, 5 Nov 2014 14:39:24 +0000 (14:39 +0000)]
Skip test in release mode for arm64

TBR=bmeurer@chromium.org, ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25161}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake slow tests on arm64
machenbach@chromium.org [Wed, 5 Nov 2014 14:32:33 +0000 (14:32 +0000)]
Make slow tests on arm64

TBR=bmeurer@chromium.org, ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25160}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoRevert "Parser & internalization fix: ensure no heap allocs during GetString(Handle...
marja@chromium.org [Wed, 5 Nov 2014 14:31:57 +0000 (14:31 +0000)]
Revert "Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>)."

This reverts r25155.

Reason: breaks webkit unit tests.

BUG=
TBR=marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25159}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoParser & internalization fix: ensure no heap allocs during GetString(Handle<String>).
marja@chromium.org [Wed, 5 Nov 2014 13:59:12 +0000 (13:59 +0000)]
Parser & internalization fix: ensure no heap allocs during GetString(Handle<String>).

The bug has always been there: when the parser is operating in the "immediately
internalize" mode and calls GetString, we get FlatContent of a string and then
do heap allocation.

The bug was uncovered by https://codereview.chromium.org/693803004/ (which put
the parser to the "immediately internalize" mode more often), but looking at the
code, it's possible that it can happen in other cases too.

This CL makes AstValueFactory handle this situation gracefully: it won't try to
internalize inside GetString(Handle<String>); it's unnecessary anyway since we
have the Handle<String> already.

R=rossberg@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#25155}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoMake merge_to_branch more git-friendly.
machenbach@chromium.org [Wed, 5 Nov 2014 13:30:50 +0000 (13:30 +0000)]
Make merge_to_branch more git-friendly.

BUG=410721
LOG=n
TEST=script_test.py
R=tandrii@chromium.org
TBR=tandrii@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25154}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoHPhis with HParameter inputs must have Tagged representation
jkummerow@chromium.org [Wed, 5 Nov 2014 13:23:15 +0000 (13:23 +0000)]
HPhis with HParameter inputs must have Tagged representation

BUG=v8:3670
LOG=n
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25153}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

9 years agoSkip box2d for gc stress.
machenbach@chromium.org [Wed, 5 Nov 2014 13:12:30 +0000 (13:12 +0000)]
Skip box2d for gc stress.

TBR=bmeurer@chromium.org, ishell@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#25152}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00