Commit Graph

12475 Commits

Author SHA1 Message Date
dslomov@chromium.org
d0e0ff01ad Revamp v8_optimized_debug options
This patch changes the definition of v8_optimized_debug==1 to match the release-mode compiler optimization settings (generally, going from -O1 to -O3 on Linux, similar switches for Mac/Win). This produces a minor speed up on Linux, but significant speedups on Mac and Win. This may make it much harder to debug, though.

It also adds a v8_optimized_debug==2 that, in addition to the compiler optimizations, undef's DEBUG and defines DEBUG. This leaves V8_ENABLE_CHECKS alone (so that the assertions are still enabled), but otherwise basically matches a release mode build.

Builds with v8_optimized_debug==2 roughly match a Release mode build for speed; the V8_ENABLE_CHECKS checks appear to have minimal performance impact (maybe 5-10%, unlike what was previously thought). In addition, switching from the previous optimization settings makes a significant improvement on Mac and Win (50% or more), and switching from DEBUG to NDEBUG makes a significant improvement (another 50% or more).

Note that using v8_optimized_debug==2 may also cause some v8 tests to fail. This is currently is believed to be acceptable.

R=machenbach@chromium.org
BUG=254188

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

Patch from Dirk Pranke <dpranke@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 14:00:06 +00:00
bmeurer@chromium.org
b019910a38 This adds generic support for ExternalReferences in Hydrogen (and Lithium), as required for AddIncrementCounter.
R=danno@chromium.org, titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 13:56:51 +00:00
svenpanne@chromium.org
2fe3799b8f Added unit tests for the slightly confusing Boolean/BooleanObject API.
Just for documenting the status quo. As discussed offline, we should
probably rename/deprecate a few things:

  NumberObject::NumberValue() => NumberObject::ValueOf()
  BooleanObject::BooleanValue() => BooleanObject::ValueOf()
  StringObject::StringValue => StringObject::ValueOf()

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15935 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:37:55 +00:00
titzer@chromium.org
37ee4a0369 Fix IsDeletable() for HStringAdd, HStringCharCodeAt, HStringCharFromCode.
BUG=
R=mstarzinger@chromium.org, svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15934 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:35:43 +00:00
mvstanton@chromium.org
43e35a87e2 Fix: Need to remove function type feedback between stress stages in
release build

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15933 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:22:34 +00:00
bmeurer@chromium.org
e3901e919d Revert new OS and CC detection and related changes since r15923.
Revert "Attempt to fix leftover test breakage on Mac."
Revert "Fix d8 build error when V8_SHARED is unset on Linux."
Revert "Fix V8_GNUC_PREREQ macro."
Revert "Fix typo."
Revert "Implement correct OS and CC detection."

TBR=svenpanne@chromium.org,danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15932 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 12:12:39 +00:00
danno@chromium.org
837276829e Fix HasResult method of LTemplateInstruction to properly handle LCheckSmi
LCheckSmi sometimes has a result register and sometimes not, even though its
LTemplateInstruction alwasys has room for one. Debug output use HasResult to
determine whether it was ok to de-ref result(), but HasResult doesn't check for
the case where LTemplateInstruction has a result but it's NULL.

R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15931 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:57:42 +00:00
danno@chromium.org
504f94fcbd Make it easier to get JS stack crawls from gdb
R=bmeurer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15930 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:56:45 +00:00
mvstanton@chromium.org
e9cc78af7e Fix for V8 issue 2795: Check fails with deopt for mjsunit/array-store-and-grow
(https://code.google.com/p/v8/issues/detail?id=2795)

The reason is when allocating and building arrays in hydrogen we need to ensure
we do any int32-to-smi conversions BEFORE the allocation. These conversions can
at least theoretically deoptimize. If this happens before all the fields of the
newly allocated object are filled in, we will have a corrupted heap.

BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15929 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:50:39 +00:00
bmeurer@chromium.org
41a4831fd9 Attempt to fix leftover test breakage on Mac.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15928 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 11:38:34 +00:00
bmeurer@chromium.org
4d56810eeb Fix d8 build error when V8_SHARED is unset on Linux.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15927 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 10:23:07 +00:00
bmeurer@chromium.org
ac5e3e080c Fix V8_GNUC_PREREQ macro.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:56:34 +00:00
titzer@chromium.org
f403969d1f Remove Uninitialized from HType.
BUG=
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:42:57 +00:00
bmeurer@chromium.org
45e77c2b66 Fix typo.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15924 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:29:00 +00:00
bmeurer@chromium.org
2e7193f897 Implement correct OS and CC detection.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15923 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:19:10 +00:00
bmeurer@chromium.org
709012021a The compiled_transitions flag was enabled for quite some time now and seems to work out quite well, so time has come to remove the obsolete code paths and remove the unused methods.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15922 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 09:12:16 +00:00
bmeurer@chromium.org
3126012664 Really fix break in r15919 now.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15921 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:33:57 +00:00
bmeurer@chromium.org
0f5178dcba Fix break in r15919.
TBR=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15920 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 08:07:52 +00:00
bmeurer@chromium.org
c147c58c59 Properly implement OS::GetRandomMmapAddr() for Win32.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:50:56 +00:00
danno@chromium.org
c1e7d38f49 Prepare push to trunk. Now working on version 3.20.11.
R=ulan@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15916 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:45:01 +00:00
bmeurer@chromium.org
b79e1bd15a Ignore all toplevel files starting with an underscore.
R=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15915 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-29 07:43:32 +00:00
palfia@homejinni.com
7ac6d35d1d MIPS: Fix debug mode webkit failures.
* Handles SMI case in EmitLoadRegister correctly.
* Fix minor mistake in the assembler.

BUG=v8:2808
TEST=webkit/dfg-dead-min-two-args,webkit/fast/js/excessive-comma-usage

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-27 01:07:53 +00:00
palfia@homejinni.com
bac2da6421 MIPS: Add Smi support to Shl
Port r15910 (8e65c434)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15913 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 23:56:03 +00:00
jkummerow@chromium.org
3619dcf868 Add regression test for recently fixed bug
BUG=chromium:258519
R=machenbach@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15912 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 14:58:30 +00:00
loislo@chromium.org
141ada02f2 Logger: introduce abstract interface for CodeEvent listeners.
New abstract class CodeEventListener was created.

CodeEventLogger which is the base class for Jit, LowLevel
and CodeAddressMap loggers was inherited from CodeEventListener.

CodeAddressMap class was moved to serializer.cc because serializer is the only user for it. Actually it collects code names and pushes them to the standard log as SnapshotCodeNameEvent. So I extracted this code into separate function CodeNameEvent. It happens that this method works only when Serializer serializes an object. So I added direct log call there.

CodeEventLogger class declaration was moved to the header
because CodeAddressMap needs it.
The code for the nested class CodeEventLogger::NameBuffer was left in the cc file.

CpuProfiler now is inherit CodeEventListener but not used
the loggers infrastructure yet due to the complex initialization schema. I'd like to fix that in a separate cl.

BUG=none
TEST=current test set.
R=yangguo@chromium.org, yurys@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:50:23 +00:00
verwaest@chromium.org
7471ae893e Add Smi support to Shl
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15910 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:35:44 +00:00
yurys@chromium.org
630999d1a2 Remove --prof-auto flag
There is already --prof-lazy flag which should be enough.

BUG=None
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15909 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 13:18:56 +00:00
machenbach@chromium.org
53c95353c9 Disable mjsunit test when parallel recompilation is not available.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:34:46 +00:00
yangguo@chromium.org
b62a6d0e2e Do not allow external strings in old pointer space.
R=mstarzinger@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15906 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:32:06 +00:00
verwaest@chromium.org
565699669e Fix Smi-based MathMinMax on x64, and reenable smi mode.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15905 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 12:06:22 +00:00
machenbach@chromium.org
2aab929806 Add webkit tests to deopt fuzzer portfolio.
Two failing tests are skipped and added to an existing bug report.

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15904 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:39:58 +00:00
mstarzinger@chromium.org
ce1553ffdc Regression test for existing bug in String::MakeExternal.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:37:54 +00:00
yangguo@chromium.org
372763897d Lazy call to custom stack trace formatting using Error.prepareStackTrace.
This enables custom stack trace formatting for stack overflow.
A consequence is that stack trace formatting is now easily observable,
but we already established that the default stack trace formatting can
be observed anyways. It is only triggered by the .stack getter, and
it has to be explicitly called, (e.g. not implicitly after GC).

R=mstarzinger@chromium.org
BUG=v8:2559

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15902 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:28:08 +00:00
machenbach@chromium.org
4bf2e5be3a Rebaseline webkit test with correct assumptions.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15901 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 11:22:25 +00:00
mstarzinger@chromium.org
aded201670 Revert "Check that ExternalString objects get aligned resources" (r15894).
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15898 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 10:40:00 +00:00
jkummerow@chromium.org
a6a1163036 Prepare push to trunk. Now working on version 3.20.10.
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15895 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:22:45 +00:00
mstarzinger@chromium.org
40d5faea73 Check that ExternalString objects get aligned resources.
R=hpayer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15894 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:02:34 +00:00
jkummerow@chromium.org
e9046dccb3 Disable Smi representation support for HMathMinMax
because it's incomplete on x64.

BUG=v8:2808
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15893 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:43 +00:00
bmeurer@chromium.org
90249cf92b Inline platform-tls*.h files into platform.h.
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15892 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-26 09:00:07 +00:00
palfia@homejinni.com
61a78e2a11 MIPS: Adding Smi support to Add, Sub, Mul, and Bitwise
Port r15879 (ec1e278b)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:57:10 +00:00
palfia@homejinni.com
c12a0774ea MIPS: New array bounds check elimination pass (focused on induction variables and bitwise operations).
Port r15866 (52e8581c)

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15890 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:55:55 +00:00
machenbach@chromium.org
3c9efdeeb4 Migrate more tests from blink repository.
The stand-alone test driver is changed a bit:
- Don't use the errorMessage list. It is used differently in the embedded driver. There it collects parser errors - instead of failure messages.
- Remove html links in description texts. Some test descriptions print a web reference.

The migrated tests fall into 3 categories:
1. Tests outside fast/js
2. Tests that print FAIL messages (and also expect those) - these tests should be examined later if they make sense at all
3. Tests with html links in the test description

R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 19:54:24 +00:00
jochen@chromium.org
0826f85a02 Put object templates of the i18n extension on the heap object.
Using function local statics doesn't work, as we need the templates per
isolate.

I'm not #ifdef'ing the definitions out, because kEmptyStringRootIndex
changes depending on whether the two additional slots are present or
not.

BUG=v8:2745
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 16:01:02 +00:00
m.m.capewell@googlemail.com
cc9398cd42 ARM: Make double registers low/high safe
This patch prevents taking the low/high part of a double-precision VFP register that has no corresponding single-precision VFP registers.

BUG=none
TEST=Added to test-disasm-arm.cc, test-assembler-arm.cc

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15885 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:38 +00:00
jkummerow@chromium.org
32e2e37230 Fix JSArray-specific length lookup in polymorphic array handling
BUG=chromium:263276
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15884 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:04:21 +00:00
yangguo@chromium.org
14e205e9cf Reland "Flush parallel recompilation queues on context dispose notification."
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15883 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 15:01:23 +00:00
mstarzinger@chromium.org
f06f57f7fb Make standalone D8 trace to single hydrogen.cfg file.
R=titzer@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15882 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 14:11:53 +00:00
verwaest@chromium.org
8e719ea472 Remove support for smi-based keyed accesses on 64bit.
R=mvstanton@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15881 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:22:23 +00:00
hpayer@chromium.org
b832d8e089 Ignore external strings in old pointer space migration invariant check.
BUG=
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15880 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 12:10:45 +00:00
verwaest@chromium.org
5de783d47e Adding Smi support to Add, Sub, Mul, and Bitwise
R=svenpanne@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15879 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-25 11:53:38 +00:00