mvstanton@chromium.org
529f801fde
Adapt Danno's Track Allocation Info idea to fast literals. When allocating a literal array,
...
we store an AllocationSiteInfo object right after the JSArray, with a pointer to the
boilerplate object. Later, if the array transitions we check for the continued existence
of the temporary AllocationSiteInfo object (has no roots). If found, we'll use it to
transition the boilerplate array as well.
Danno's original changeset: https://codereview.chromium.org/10615002/
Review URL: https://codereview.chromium.org/11663005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-08 09:03:16 +00:00
verwaest@chromium.org
50d82ca796
Introduce POLYMORPHIC
...
Review URL: https://chromiumcodereview.appspot.com/11747022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:36:26 +00:00
verwaest@chromium.org
400b8b8c44
Slight cleanup of UpdateCache code.
...
Review URL: https://chromiumcodereview.appspot.com/11737033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:35:00 +00:00
svenpanne@chromium.org
eb9a22cc8b
Environment bookkeping has linear time complexity now, not a quadratic one.
...
This reduces the time take for mjsunit/limit-locals from 56.8s to 15.1s in debug
mode and from 12.0s to 1.6s in release mode.
Note that GrowableBitVector and BitVector should really be merged, and probably
have their allocation strategy parmeterized. The current state of affairs
involving tons of checks and delegation is extremely ugly, and it is far from
clear if all that special casing is a clear win. STL FTW! :-P
Review URL: https://codereview.chromium.org/11775016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:28:20 +00:00
yangguo@chromium.org
61f4012989
Use C++ style type casts.
...
R=mstarzinger@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11644097
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 15:02:56 +00:00
mstarzinger@chromium.org
0e46919c32
Fix missing exception check in typed array constructor.
...
The typed array constructor might fail if the first argument is an
object with a length property. Accessing the property can cause an
exception to be thrown and an explicit check needs to be performed.
R=verwaest@chromium.org
BUG=chromium:168545
TEST=mjsunit/regress/regress-crbug-168545.js
Review URL: https://codereview.chromium.org/11777014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 14:01:04 +00:00
verwaest@chromium.org
11c2557452
Check interceptor before optimizing load/store
...
Review URL: https://chromiumcodereview.appspot.com/11753027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13324 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 12:14:36 +00:00
danno@chromium.org
a060bf0e9b
MIPS: Elide unnecessary context reload in generated stubs.
...
Port r13290 (6970ca83)
BUG=
TEST=
Review URL: https://codereview.chromium.org/11773013
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13323 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:23:30 +00:00
danno@chromium.org
b510dc58d3
MIPS: Re-land Crankshaft-generated KeyedLoad stubs.
...
Port r13236 (cd9236c5)
BUG=
TEST=
Review URL: https://codereview.chromium.org/11801002
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13322 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:18:25 +00:00
danno@chromium.org
ab301a54b3
MIPS: Remove redundant loads in DoCheckMaps Hoist the loop-invariant load out of the loop and call the other CheckMap function
...
Port r13253 (5af29105)
BUG=
TEST=
Review URL: https://codereview.chromium.org/11784014
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:10:38 +00:00
danno@chromium.org
4246ac3009
Generalize calling to C++ on stub deopt
...
Remove code specific to KeyedLoadICs in DoCompiledStubFrame on all platforms, driving stub frame translation by the register parameter information found in a stub's CodeStubInterfaceDescriptor.
Review URL: https://codereview.chromium.org/11635015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 10:06:11 +00:00
ulan@chromium.org
c4bed03342
Add ARM support to tools/grokdump.py
...
R=svenpanne@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11565014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13319 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:48:04 +00:00
ulan@chromium.org
4403daca1a
ARM: generate integer zero in a uniform manner.
...
ARM generated integer zero as either Operand(0, RelocInfo::NONE32), or
Operand(0), or Operand::Zero(). My change makes it use only
Operand::Zero().
This has no functional impact, it's pure cleanup.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11745030
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:43:12 +00:00
ulan@chromium.org
b73db972e2
Use RelocInfo::IsNone in a few more places.
...
I had missed some earlier.
Followup to:
https://chromiumcodereview.appspot.com/11695006/
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11742045
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 09:15:25 +00:00
yangguo@chromium.org
ee563d7875
MIPS: Fix ARM code for DoModI.
...
Port r13247 (4dda8131)
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/11782009
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:58:52 +00:00
ulan@chromium.org
74026ea46d
MIPS: Enable type feedback for branch statement and function call
...
Port r13288 (5fa2c889)
Original commit message:
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/11801003
Patch from Akos Palfi <palfia@homejinni.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-07 08:49:52 +00:00
verwaest@chromium.org
a8962e89b3
Use enum instead of bool for force_generic (MISS / MISS_FORCE_GENERIC)
...
Review URL: https://chromiumcodereview.appspot.com/11737032
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:37:59 +00:00
yangguo@chromium.org
4ee20d857b
Check for read-only-ness when preparing for array sort.
...
R=verwaest@chromium.org
BUG=v8:2419
Review URL: https://chromiumcodereview.appspot.com/11759022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 15:24:47 +00:00
svenpanne@chromium.org
8a2cca5207
Replaced a bailout ID assertion with quadratic time complexity by a linear one.
...
This reduces the time to run our test suite in debug mode considerably (from
8:43 to 4:05 on my local workstation using 32 threads). Note that the assertion
is so fast now that it doesn't need to be hidden behind --enable-slow-asserts.
Furthermore, the bookkeeping of the set is not measurable in all our benchmarks,
so I intentionally avoided any #ifdef chaos to keep things simple.
Review URL: https://codereview.chromium.org/11745027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 12:48:18 +00:00
ulan@chromium.org
0606abbaab
Rename RelocInfo::NONE to RelocInfo::NONE32.
...
This CL only does renaming, nothing else.
Followup to:
https://chromiumcodereview.appspot.com/11695006/
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11744020
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 10:56:24 +00:00
yangguo@chromium.org
f96267aa7b
Prepare push to trunk. Now working on version 3.16.3.
...
R=svenpanne@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11748029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-04 08:55:22 +00:00
ulan@chromium.org
bb96439743
Cleanup RelocInfo::NONE usage.
...
There are now NONE and NONE64 RelocInfo types, but only ARM uses them
both at the same time. They were added in:
https://chromiumcodereview.appspot.com/11191029/
I'll rename NONE to NONE32 in a later CL.
This CL cleans up the RelocInfo::NONE usage by:
- Using RelocInfo::IsNone when testing for NONE-ness.
- Using NONE on 32-bit platforms (MIPS and IA32), and NONE64 on 64-bit
platforms (x64).
This cleans up the code and prevents it from evolving bugs in the future
because NONE32 and NONE64 are used in misleading ways.
R= ulan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11695006
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 14:20:08 +00:00
yangguo@chromium.org
ffa936927b
Fix Win64 build.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11746015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 13:16:00 +00:00
svenpanne@chromium.org
b74f1b8b4a
Synched postmortem script with not-so-recent changes.
...
Review URL: https://codereview.chromium.org/11744019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 13:11:47 +00:00
yangguo@chromium.org
e2444edd8f
Refactor out assumption that one byte strings are ascii in utf8 processing.
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11725006
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 12:59:54 +00:00
svenpanne@chromium.org
252fbddc67
Improved printing of HForceRepresentation.
...
Review URL: https://codereview.chromium.org/11745011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 10:05:40 +00:00
yangguo@chromium.org
04ccb975f4
Remove InputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727004
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 09:18:01 +00:00
yangguo@chromium.org
a50259f75c
Add Makefile options to build for the Raspberry Pi (armv7=0, arm_fpu=vfp2).
...
With these Makefile changes, it is possible to build V8 on the Raspberry Pi with the following make invocation:
make native armv7=false vfp3=off hardfp=on disassembler=on console=readline snapshot=on gdbjit=on strictaliasing=off
R=danno@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11722003
Patch from Luis Reis <luis.m.reis@gmail.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 08:56:05 +00:00
svenpanne@chromium.org
840b1a37da
Fixed printing of LInstructions in the presence of optional arguments
...
TBR=yangguo@chromium.org
Review URL: https://codereview.chromium.org/11743012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-03 07:23:33 +00:00
yangguo@chromium.org
ddf70504cb
Relax test expectations in BootUpMemoryUse.
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11738004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-02 15:00:12 +00:00
verwaest@chromium.org
537d1d89b0
Move CopyElements to the accessor of the target.
...
Review URL: https://chromiumcodereview.appspot.com/11416238
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-02 10:09:42 +00:00
yangguo@chromium.org
bccef0c712
Reland r13275 and 13276 (Remove most uses of StringInputBuffer).
...
R=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11727003
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-31 11:13:50 +00:00
danno@chromium.org
45a012ec2c
Elide unnecessary context reload in generated stubs.
...
Review URL: https://codereview.chromium.org/11550005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13290 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 16:25:38 +00:00
yangguo@chromium.org
e536abb777
Handle non-constant divisor in MathFloorOfDiv, on ia32/x64
...
Zheng Liu
zheng.z.liu@intel.com
Review URL: https://chromiumcodereview.appspot.com/11624022
Patch from Zheng Liu <zheng.z.liu@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 15:52:17 +00:00
ulan@chromium.org
eb27eb0351
Enable type feedback for branch statement and function call
...
This change associates TypeFeedbackIds with ToBoolean stubs in
full-compiled code on ARM, allowing their information to be used in
Crankshaft. This eliminates unnecessary checks, especially in
DoBranch.
Review URL: https://chromiumcodereview.appspot.com/11635046
Patch from Jay Conrod <dconrod@codeaurora.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 15:14:44 +00:00
danno@chromium.org
3526c6be98
Use EXTERNAL_REFERENCE instead of RUNTIME_ENTRY for Runtime::PerformGC and
...
CallApiFunctionAndReturn in X64
Review URL: https://codereview.chromium.org/11694008
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 14:36:55 +00:00
ulan@chromium.org
a7f9c491dc
Use VLDR instead of VMOVs from GPR when a 64-bit double can't be encoded as a VMOV immediate.
...
This requires constant blinding before it can be enabled. There are other interesting optimizations that can be added later, detailed in a TODO.
BUG=optimization
R=ulan@chromium.org ,mstarzinger@chromium.org, hwennborg@google.com
Review URL: https://chromiumcodereview.appspot.com/11191029
Patch from JF Bastien <jfb@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 13:34:15 +00:00
danno@chromium.org
2e6a7c733b
postmortem: export kSmiShiftSize
...
Right now it's impossible to figure out from headers that smis are left shifted
by 31 bit on x64, and only then tagged.
R=erik.corry@gmail.com
Review URL: https://codereview.chromium.org/11676005
Patch from Fedor Indutny <fedor@indutny.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 13:06:08 +00:00
danno@chromium.org
17326e8746
Refactor and improve inlined double-aligned allocations
...
Change is performance neutral but generates smaller code and encapsulates double alignment in the macro-assembler rather than at the allocation site.
Review URL: https://codereview.chromium.org/11684005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-28 11:09:16 +00:00
ulan@chromium.org
0aee912480
Prepare push to trunk. Now working on version 3.16.2.
...
R=danno@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11675006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 15:56:02 +00:00
danno@chromium.org
9307f8ea30
Fix SSE2 debug asserts in LayoutTests
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/11675005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 15:40:34 +00:00
yangguo@chromium.org
2f821f1ed9
Revert r13188, r13194, r13256 (Deferred formatting of error stack trace during GC).
...
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11678006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 13:12:27 +00:00
yangguo@chromium.org
074038058a
Add kNumberStringCacheRootIndex into writable_roots
...
Review URL: https://chromiumcodereview.appspot.com/11660028
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13278 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 10:11:08 +00:00
yangguo@chromium.org
121f3f6020
Revert r13275 and 13276 (Remove most uses of StringInputBuffer).
...
This is due to test failures in test-mark-compact/BootUpMemoryUse.
R=ulan@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11688003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13277 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-27 10:03:17 +00:00
yangguo@chromium.org
6e6140728b
Fix build warnings.
...
TBR=dcarney@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11669020
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-24 08:52:32 +00:00
yangguo@chromium.org
7f074acd8d
Remove most uses of StringInputBuffer
...
R=yangguo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11638037
Patch from Dan Carney <dcarney@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-24 08:29:48 +00:00
vegorov@chromium.org
6b7fe028e9
Fix typo in the CheckSSE2OperandIsInt32: use bitwise not instead of integer negation.
...
R=ulan@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11662009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 18:16:27 +00:00
ulan@chromium.org
b64f834383
Fix x64 MathMinMax for negative untagged int32 arguments.
...
An untagged int32 has zeros in the upper half even if it is negative.
Using cmpq to compare such numbers will incorrectly ignore the sign.
BUG=164442
R=mvstanton@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11665007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:52:00 +00:00
adamk@chromium.org
d14b05a38d
Basic test for interaction of Object.observe and hidden prototypes
...
The test simply shows the current behavior, not necessarily what we
want the behavior to be.
Review URL: https://codereview.chromium.org/11635033
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13272 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 17:40:09 +00:00
svenpanne@chromium.org
6ad15b88be
Fixed typing confusion found by GCMole
...
Review URL: https://codereview.chromium.org/11668006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-21 14:28:33 +00:00