Commit Graph

5767 Commits

Author SHA1 Message Date
ager@chromium.org
cdf65ca087 Reimplement the padding of relocation information for lazy deoptimization on ia32.
The previous implementation attempted to keep track of the needed
relocation size for deoptimization while generating the optimized
code. That was error prone. This patch moves the relocation resizing
to the deoptimizer as the last step of creating an optimized code
object.

The down side to this approach is that two relocation information byte
arrays are created for all optimized functions that do not have enough
relocation space for lazy deoptimization.

R=sgjesse@chromium.org

Review URL: http://codereview.chromium.org/6730050

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7360 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 10:29:34 +00:00
fschneider@chromium.org
6fadb5257f Fix hydrogen statistics output when no code gets optimized.
In that case print 0 instead of NaN for normalized time and bytes allocated.

R=kmillikin@chromium.org
Review URL: http://codereview.chromium.org/6696070

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7359 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 10:02:42 +00:00
sgjesse@chromium.org
3a1c4d9b78 mprove code generation for DoAddI, DoSubI and DoBitI when the right hand
side is a constant.

TEST=none
BUG=none

Patch by Rodolph Perfetta from ARM Ltd.

Review URL: http://codereview.chromium.org/6730029/


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-25 07:41:35 +00:00
danno@chromium.org
fbbace7fbe Fix build
BUG=none
TEST=none
TBR=ager@chromium.org

Review URL: http://codereview.chromium.org/6732038

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 22:30:53 +00:00
danno@chromium.org
ea45f6719e Support external arrays in Crankshaft
Add specialized hydrogen and lithium instructions to support loading and storing to external arrays.

Review URL: http://codereview.chromium.org/6656001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7354 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 22:14:15 +00:00
vitalyr@chromium.org
401b308778 Allow calling stats API functions before we have an isolate.
Review URL: http://codereview.chromium.org/6733030

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7353 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 19:05:49 +00:00
vitalyr@chromium.org
aa0dfc8aeb Get rid of more TLS fetches in API implementation.
Patch by Dmitry Lomov.

Original review: http://codereview.chromium.org/6715016/

TBR=dimich

Review URL: http://codereview.chromium.org/6730031

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7352 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 18:49:45 +00:00
lrn@chromium.org
8b866d9c87 Fix bug in test-macro-assembler-x64 which is the probable cause for hanging on Win64.
Review URL: http://codereview.chromium.org/6733024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7348 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 13:01:16 +00:00
lrn@chromium.org
c26f2c32f9 Implemented FastAsciiStringJoin in X64 full codegen.
Review URL: http://codereview.chromium.org/6729016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7345 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 12:24:28 +00:00
fschneider@chromium.org
e6cbf659d1 Fix bug that caused invalid code motion for certain loads instructions.
The dependency flags of instructions depending on a previous check have to
be a super-set of the flags of the check instructions.
Review URL: http://codereview.chromium.org/6730025

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7343 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:37:24 +00:00
sgjesse@chromium.org
aec7de9238 Fix wording in comment
Review URL: http://codereview.chromium.org/6676111

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:19:27 +00:00
ager@chromium.org
a7d44c49a5 Add regression test.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 11:03:08 +00:00
sgjesse@chromium.org
b05152a2a4 Make V8 build with the chromium shared library build
Fix the shell to not use functions from the v8::internal namespace when building with V8 in a shared library.

Remove the v8_preparser library. The dependencies for this target needs to be resolved after isolates have landed.
Review URL: http://codereview.chromium.org/6696067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 10:54:23 +00:00
fschneider@chromium.org
7d8e6c929d Enable GVN for polymorphic loads by not expanding them at the HIR level.
This change adds a new IR instruction for polymorphic loads. It performs
map compares and loads in one IR instruction instead of splitting each
load into a graph of map-compares and field loads.
 
The advantage is a smaller IR and less basic blocks, plus it allows to
do GVN on polymorphic loads.
Review URL: http://codereview.chromium.org/6708085

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7336 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-24 10:11:51 +00:00
mmaly@chromium.org
956bd6f7bf Enable V8 test bindings for test262 ietestcenter.
Review URL: http://codereview.chromium.org/6711063

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 21:36:42 +00:00
ager@chromium.org
363ef7f750 Ensure enough space for lazy deoptimization relocation information.
Was not done for runtime calls and for recursive calls.

Only ia32 for now. We need to refactor x64 and look into arm as well.

R=sgjesse@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6728001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7331 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 15:33:49 +00:00
vitalyr@chromium.org
1dc8f7edb3 Store HValue uses in a custom small list structure.
This saves about 700K of zone allocation when compiling the V8
benchmark suite.

Review URL: http://codereview.chromium.org/6707001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7330 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 14:44:19 +00:00
ager@chromium.org
7f7a91b1d3 Cleanup of Isolate::Current() usage in api.cc.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6705024
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7329 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 14:07:52 +00:00
ager@chromium.org
1bdc8031fa Introduce accessors on builtins instance and use them to avoid TLS access when getting builtins.
R=vitalyr@chromium.org

Review URL: http://codereview.chromium.org/6717018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 13:40:07 +00:00
ager@chromium.org
feac1ff9dd Fix COUNTERS use in test-serialize.
Review URL: http://codereview.chromium.org/6705023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7326 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 12:07:23 +00:00
sgjesse@chromium.org
36829b3c2b Change bleeding edge version to candidate
R=ager@chromium.org
Review URL: http://codereview.chromium.org/6723015

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:41:45 +00:00
ager@chromium.org
4f5de28a9b Avoid TLS access for counters.
Get rid of the COUNTERS macro and fetch the counters from a locally
stored isolate instead.

R=karlklose@chromium.org

Review URL: http://codereview.chromium.org/6723014

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:13:07 +00:00
lrn@chromium.org
6945a1241a Fix compile failure on Win64.
Review URL: http://codereview.chromium.org/6727021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 11:12:34 +00:00
danno@chromium.org
88854cd712 Remember and reuse derived map for external arrays
Ensure that all objects that had the same map before attaching an external array have the same map once the external array is attached.

BUG=75639
TEST=fast/canvas/webgl/uninitialized-test.html

Review URL: http://codereview.chromium.org/6685073

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7318 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:57:12 +00:00
ager@chromium.org
a12e07999f Irregexp Interpreter build fix.
BUG=1266
TEST=

Review URL: http://codereview.chromium.org/6727018
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7317 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:20:08 +00:00
sgjesse@chromium.org
7de048de02 Prepare push to trunk. We are now working on 3.2.5.
Review URL: http://codereview.chromium.org/6723012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:06:13 +00:00
lrn@chromium.org
a224db3a50 X64: Optimize access to external references.
Access to an ExternalReference in non-serializable code will try to use
an offset relative to the root-array register.
Since the root-array is in the Heap object, and the Heap object is in
the Isolate object, there's a good chance that any external data field
is within a 32-bit offset of the root array register.
It falls back on the original behavior if the serializer is enabled,
if the root register isn't initialized or if the offset is not representable
as a 32-bit value.

Review URL: http://codereview.chromium.org/6716018

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:05:13 +00:00
ager@chromium.org
d5359e338a Cleanup of FACTORY macro usage in api.cc.
BUG=
TEST=

Review URL: http://codereview.chromium.org/6725014
Patch from Peter Varga <pvarga@inf.u-szeged.hu>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7314 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 09:02:15 +00:00
mmaly@chromium.org
7346fbba81 Implement poison pill for non-strict mode function.caller
when caller is strict mode function.

Review URL: http://codereview.chromium.org/6713059/

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7313 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-23 03:45:48 +00:00
vitalyr@chromium.org
41c7632a41 Some Isolate usage cleanups in objects.{h,cc}.
Review URL: http://codereview.chromium.org/6723001

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 19:15:02 +00:00
dimich@chromium.org
bb7f8fbec6 Cleanup of Isolate usage (guided by SunSpider profiling)
Review URL: http://codereview.chromium.org/6718023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 18:44:32 +00:00
podivilov@chromium.org
41f30cac90 Fix crash in Debug::SendCommand.
R=vitalyr@chromium.org
BUG=
TEST=

Review URL: http://codereview.chromium.org/6715029

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7310 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 18:02:23 +00:00
mmaly@chromium.org
b6d288a051 Merge TemporaryScope with LexicalScope.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7309 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 18:00:03 +00:00
mikhail.naganov@gmail.com
b2b5d2777e Add support for CPU and heap profiles deletion.
R=vitalyr@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6685084

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 16:10:01 +00:00
vitalyr@chromium.org
5051d2c636 Remove TLS fetches in v8::String API implementation.
Patch by Dmitry Lomov.

Original review: http://codereview.chromium.org/6716004/

TBR=ager

Review URL: http://codereview.chromium.org/6716023

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 15:16:29 +00:00
sgjesse@chromium.org
118c5651c8 Use different syscall constants on Android
Review URL: http://codereview.chromium.org/6716021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7306 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 14:11:08 +00:00
ager@chromium.org
b69591bc0f Require an isolate parameter for most external reference creation to
avoid TLS access in connection with external references.

Make the isolate accessible via the assembler.

Only for ia32 at this point. If this looks OK to you I will port it.

R=vitalyr@chromium.org

Review URL: http://codereview.chromium.org/6713074

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7305 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 13:20:04 +00:00
sgjesse@chromium.org
ec78015289 Add file missing from last commit
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/6715026

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 11:58:03 +00:00
antonm@chromium.org
af200d0de9 Shorten bail out checks when calling code which can fail.
Review URL: http://codereview.chromium.org/6713004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7303 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 11:52:38 +00:00
whesse@chromium.org
46cf1c0b40 Fix error in test-reloc-info/Positions. This error caused a failure on Windows 64-bit V8.
BUG=1267
TEST=test-reloc-info/Positions

Review URL: http://codereview.chromium.org/6719022

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 11:51:16 +00:00
sgjesse@chromium.org
63867eea60 Rename memory.h to v8memory.h
This is to avoid name collision with system include file named memory.h causing problems on some platforms.
Review URL: http://codereview.chromium.org/6716020

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 11:50:39 +00:00
sgjesse@chromium.org
4a2639e7ef Improved modulo operation in lithium as well as bailout on -0.
TEST=none
BUG=none

Patch by Rodolph Perfetta from ARM Ltd.

Review URL: http://codereview.chromium.org/6612017


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7300 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 10:00:43 +00:00
mikhail.naganov@gmail.com
c316adfc2d Trying to unskip test-profile-generator/RecordStackTraceAtStartProfiling and
test-cpu-profiler/CrashIfStoppingLastNonExistentProfile.

After r7293 and r7294 they might feel better.

TBR=vitalyr@chromium.org
BUG=1262,1263
TEST=none

Review URL: http://codereview.chromium.org/6676084

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7299 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 06:39:16 +00:00
dimich@chromium.org
02a8f3cbb9 Another Lint fix.
Review URL: http://codereview.chromium.org/6716012

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7298 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 23:44:14 +00:00
dimich@chromium.org
e097baa280 Lint: remove line trailing whitespaces.
Review URL: http://codereview.chromium.org/6708070

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 23:16:06 +00:00
dimich@chromium.org
0bd52468b3 Fix Win32 bots - they crash/timeout on too long thread name.
Review URL: http://codereview.chromium.org/6676076

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7296 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 23:06:38 +00:00
mikhail.naganov@gmail.com
cbbe713464 Change the way sampler / profiler handle external callbacks.
This should fix test-profile-generator/RecordStackTraceAtStartProfiling flakinness.

R=vitalyr@chromium.org
BUG=1261
TEST=test-profile-generator/RecordStackTraceAtStartProfiling

Review URL: http://codereview.chromium.org/6708056

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7294 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 18:13:27 +00:00
mikhail.naganov@gmail.com
d98baf8098 Fix DevTools CPU profiler after isolates merge.
There was an obvious bug with missing call to SamplerRegistry::GetState.
I've also updated CpuProfiler to avoid stopping sampler, if it didn't started it.

R=vitalyr@chromium.org
BUG=none
TEST=none

Review URL: http://codereview.chromium.org/6712062

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 17:40:40 +00:00
karlklose@chromium.org
12615106d7 Revert r7288.
TBR=ager
Review URL: http://codereview.chromium.org/6709060

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7292 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 16:10:05 +00:00
vitalyr@chromium.org
b2e18ed47e Clean up Isolate usages in handles.cc.
Review URL: http://codereview.chromium.org/6713070

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7291 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-21 16:00:52 +00:00