Commit Graph

10538 Commits

Author SHA1 Message Date
danno@chromium.org
bd389e6e2d Prepare push to trunk. Now working on version 3.16.14.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13587 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 13:32:52 +00:00
verwaest@chromium.org
aca87c2fcd Tag stubs that rely on instance types as MEGAMORPHIC.
BUG=chromium:173974

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13586 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 13:12:03 +00:00
danno@chromium.org
0c3575c874 Generate the TransitionElementsStub using Crankshaft
This includes:
* Adding support for saving callee-clobbered double registers in Crankshaft code.
* Adding a new "HTrapAllocationMemento" hydrogen instruction to handle AllocationSiteInfo data in crankshafted stubs.
* Adding a new "HAllocate" hydrogen instruction that can allocate raw memory from the GC in crankshafted code.
* Support for manipulation of the hole in HChange instructions for Crankshafted stubs.
* Utility routines to manually build loops and if statements containing hydrogen code.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13585 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 12:01:59 +00:00
ulan@chromium.org
744d61ebe7 Fix clearing of dead dependent codes and verify weak embedded maps on full GC.
BUG=172488,172489
R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13584 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 10:56:50 +00:00
ulan@chromium.org
23ee3f285a Make the arm port build cleanly with Clang.
This fixes the following two warnings, so that "make all" builds cleanly
with Clang:

  src/arm/macro-assembler-arm.h:1410:7: error: private field
  'instructions_' is not used
        [-Werror,-Wunused-private-field]
          int instructions_;  // Number of instructions of the expected patch size.
              ^

  src/arm/simulator-arm.cc:402:20: error: variable 'words' is used uninitialized whenever 'if'
        condition is false [-Werror,-Wsometimes-uninitialized]
          } else if (argc == next_arg + 1) {
                     ^~~~~~~~~~~~~~~~~~~~
  ../src/arm/simulator-arm.cc:407:21: note: uninitialized use occurs here
          end = cur + words;
                      ^~~~~
  ../src/arm/simulator-arm.cc:402:16: note: remove the 'if' if its condition is always true
          } else if (argc == next_arg + 1) {
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13583 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 10:30:54 +00:00
verwaest@chromium.org
7282be179e MIPS: Merge KeyedLoad and NamedLoad stub compiler code.
Port r13579 (e640269)

BUG=

Review URL: https://chromiumcodereview.appspot.com/12186003
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-04 08:51:37 +00:00
verwaest@chromium.org
0d89d9a019 Merge KeyedLoad and NamedLoad stub compiler code.
Review URL: https://chromiumcodereview.appspot.com/12094082

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13579 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 13:39:36 +00:00
danno@chromium.org
df2a62fb25 ARM: Add comments to clarify conditionally executed code dealing with d16-d31
Review URL: https://codereview.chromium.org/12087132
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13578 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 11:57:22 +00:00
verwaest@chromium.org
66b9909328 MIPS: Support slow-mode prototypes for load and call ICs.
Port r13571 (c37a2f5).

Original commit message:
Support slow-mode prototypes for load and call ICs.

This changes LoadNonExistent to handle negative lookups as well.

BUG=

Review URL: https://chromiumcodereview.appspot.com/12089098
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13576 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 10:35:21 +00:00
mmassi@chromium.org
3b8a61dcf3 Base iDef update code.
Review URL: https://codereview.chromium.org/12079042

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 10:16:16 +00:00
mstarzinger@chromium.org
bc16616911 Prepare push to trunk. Now working on version 3.16.13.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13572 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-01 08:54:38 +00:00
verwaest@chromium.org
b1e5157e7b Support slow-mode prototypes for load and call ICs.
This changes LoadNonExistent to handle negative lookups as well.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13571 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 16:18:18 +00:00
jkummerow@chromium.org
1c1fdc7da2 Better fix for MemoryChunk::owner().
Pointer arithmetic such as "owner_ - kFailureTag" is undefined behaviour
unless owner_ points to a valid object.

This allowed Clang to assume the subtraction would never be NULL,
causing problems in the caller (see https://codereview.chromium.org/12090072/).

To fix this, we should cast owner_ to intptr_t before doing the
arithmetic.

Review URL: https://codereview.chromium.org/12096089
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 15:36:24 +00:00
hpayer@chromium.org
7fe9f3b05c Added parallel marking threads.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13569 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 14:23:36 +00:00
mstarzinger@chromium.org
07bab08378 Slightly bump memory test limit for ia32 no-snapshot.
R=verwaest@chromium.org
TEST=cctest/test-mark-compact/BootUpMemoryUse

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 13:26:55 +00:00
danno@chromium.org
66dbac2b88 MIPS: Fix gbemu performance regression.
Port r13557 (aa3ba8a)

BUG=

Review URL: https://codereview.chromium.org/12091083
Patch from Paul Lind <plind44@gmail.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 12:57:05 +00:00
verwaest@chromium.org
672056ac88 Only mark the descriptor that is valid for the map in question. If this map
transitioned from a map with a different descriptor array (or has no back
pointer), mark all valid descriptors from the start.

This fixes the following memory leak: Map A shares a descriptor array
with map B. Map B adds constant function c that in its scope holds on to
an instance of B. If the descriptor array of A would keep all the shared
descriptors alive, including c, this keeps alive both A and c
indefinitely.

This CL also fixes a bug in descriptor array trimming. When trimming
descriptor arrays we need to trim off the slack as well (thus the entire
storage); and since we are trimming a descriptor array, we need to trim
* kDescriptorSize.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-31 10:50:42 +00:00
adamk@chromium.org
c001d928df Object.observe: don't unnecessarily emit oldValue for reconfigurations of data properties
When a data property has its attributes changed but its value remains the same,
don't emit an oldValue. This makes the API more consistent by only emitting
oldValue when the value of a property has actually changed (or been removed,
in the case of a reconfiguration as an accessor property or a deletion).

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13565 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 21:07:28 +00:00
jkummerow@chromium.org
ddc175f244 Work around a bug in Clang that optimizes away a NULL check
Review URL: https://codereview.chromium.org/12090072

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13562 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 17:35:29 +00:00
danno@chromium.org
46bc919b47 MIPS: Fix Mac problem with stubs initialization
Port r13542 (d3217e18)

BUG=
TEST=

Review URL: https://codereview.chromium.org/12091042
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13561 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 16:12:04 +00:00
danno@chromium.org
c9be48a2b7 MIPS: Add StubFailureTrampolineFrames
Port r13533 (2f339757)

Original commit message:
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.

BUG=
TEST=

Review URL: https://codereview.chromium.org/12087053
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13560 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 16:09:31 +00:00
hpayer@chromium.org
ba8a1dca66 Initialize sweeper thread array with NULL.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13559 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 15:50:09 +00:00
verwaest@chromium.org
e7420f65bc Also allow the empty object map to keep transitions.
With the old implementation, due to the map-check being inadequate, such
transitions were already added for cross-context field stores. It is not
necessary anymore to not store transitions, since we properly clear
non-live transitions. Globally enabling this feature will help find more
bugs.

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

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13558 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 15:07:58 +00:00
danno@chromium.org
f7bae62cd3 Fix gbemu preformance regression
R=yangguo@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13557 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 14:25:34 +00:00
hpayer@chromium.org
0068ee59ce Fix build bot. Force instantiation of templatized SweepConservatively method.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13554 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 13:13:04 +00:00
hpayer@chromium.org
117cedbbf2 Fixes Windows build bots.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13553 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 12:47:41 +00:00
hpayer@chromium.org
44caabb1cd Parallel and concurrent sweeping.
Sweep old pointer space and old data space concurrently to the main mutator thread and in parallel.

BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13552 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 12:19:32 +00:00
hpayer@chromium.org
c027397c9d Precisely measure duration of mark and sweep phases. Changed print_cumulative_gc_stat flag to only print GC statistics at end of program.
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13551 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 10:51:13 +00:00
ulan@chromium.org
3b24f64e3d ARM Deoptimizer: fix TODO from r13484
This lets the Deoptimizer pointer stay in r0, saving a mov and
simplifying the code a little.

BUG=none
TEST=Tested with test/mjsunit/math-floor-of-div.js, this fails reliably if OSR is broken

Review URL: https://chromiumcodereview.appspot.com/12082046
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13550 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 10:24:00 +00:00
mstarzinger@chromium.org
a6c4edaf8b Update grokdump to reflect current heap layout.
R=verwaest@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13549 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 10:07:47 +00:00
ulan@chromium.org
3a23c2f7df Make DwVfpRegister::AllocationIndexToString use VFPRegister::Name
This also fixes a bug caused by a missing comma after "d13" in
the 'names' array in AllocationIndexToString.

BUG=none

Review URL: https://chromiumcodereview.appspot.com/12082044
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13548 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:55:49 +00:00
ulan@chromium.org
d16c2d6093 ARM: Rename Simulator::vfp_register to vfp_registers_
This matches Simulator::registers_ and is in line with the style guide.

BUG=none

Review URL: https://chromiumcodereview.appspot.com/12096036
Patch from Hans Wennborg <hans@chromium.org>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13547 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:50:25 +00:00
mstarzinger@chromium.org
2a5d46dd1e Prepare push to trunk. Now working on version 3.16.12.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13544 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-30 09:35:15 +00:00
mmassi@chromium.org
89c4153581 Foundation for the use of informative definitions in Crankshaft.
Review URL: https://codereview.chromium.org/12090021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13543 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 15:46:34 +00:00
danno@chromium.org
80157b61a8 Fix Mac problem with stubs initialization
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13542 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 15:28:05 +00:00
yangguo@chromium.org
c5883d442e Add option to limit tick processor to a time range.
R=jkummerow@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13541 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 14:41:02 +00:00
mstarzinger@chromium.org
9cec21e60c profiler: log solib addresses unconditionally
Make --prof_lazy log the addresses of shared libraries. Without those addresses,
the output of the tick processor is not very useful for node.js applications.

Address logging was disabled for --prof-lazy in r3154 for reasons that no longer
apply: the profiler is started on demand and hence looking up the addresses is
deferred until it's actually necessary.

Review URL: https://codereview.chromium.org/11309007
Patch from Ben Noordhuis <info@bnoordhuis.nl>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 14:39:09 +00:00
mstarzinger@chromium.org
366bf736d6 Fix test harness to correctly split extra flags.
R=jkummerow@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13539 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 13:27:23 +00:00
svenpanne@chromium.org
3d3c2711eb Fixed non-snapshot builds.
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13538 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 12:50:42 +00:00
verwaest@chromium.org
19e1539481 Tag previously GENERIC stubs that potentially IC_Miss as MONOMORPHIC.
Review URL: https://chromiumcodereview.appspot.com/12079024

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13537 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 12:00:56 +00:00
jkummerow@chromium.org
6948fece08 Unify the shebang line of python scripts
Review URL: https://codereview.chromium.org/12095012
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13536 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 10:40:43 +00:00
svenpanne@chromium.org
a325d3e60d Unbreak Win64 build.
TBR=danno@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13535 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 10:29:37 +00:00
svenpanne@chromium.org
8e51c4c97b Unbreak non-SSE2 ia32 platforms.
Improved register usage a bit on the way.

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13534 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 10:18:15 +00:00
danno@chromium.org
a6bc16b6f3 Add StubFailureTrampolineFrames
In preparation of supporting stubs that deopt and then need to push their
register-based parameters to an arguments area on the stack that gets properly
collected, add StubFailureTrampolineFrames to hold those parameters.

R=mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13533 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 09:12:20 +00:00
danno@chromium.org
c31454ac37 Use MemoryChunk-based allocation for deoptimization entry code
This is done by first committing the deoptimization entry code with a minimal
area size (OS::CommitPageSize) and later using CommitArea to adjust the size.

Committed: http://code.google.com/p/v8/source/detail?r=13494

Review URL: https://chromiumcodereview.appspot.com/11566011
Patch from Haitao Feng <haitao.feng@intel.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13532 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-29 09:09:55 +00:00
svenpanne@chromium.org
905548d2f6 Improved printing of jump tables.
Review URL: https://codereview.chromium.org/12093016

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 14:50:47 +00:00
verwaest@chromium.org
c643d9c112 Only update POLYMORPHIC stubs using other POLYMORPHIC or GENERIC stubs.
Review URL: https://chromiumcodereview.appspot.com/12088021

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 14:41:55 +00:00
yangguo@chromium.org
048b86d697 Log event start and event end separately when using --log-timer-events.
R=haraken@chromium.org
BUG=

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13529 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:55:40 +00:00
verwaest@chromium.org
6953861e2f MIPS: Replace store array length builtin with codestub.
Port r13506 (0d666576)

BUG=
TEST=

Review URL: https://chromiumcodereview.appspot.com/12077009
Patch from Akos Palfi <palfia@homejinni.com>.

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:37:32 +00:00
svenpanne@chromium.org
8a86ce7ef6 Do not duplicate the compilation pipeline for stub compilation.
The previous duplication is quite bad from an architectural point of
view. Furthermore, it messes up the output of --hydrogen-stats.

As remarked in a comment, there is still more unification work to do, but at
least this CL is a step in the right direction...

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13527 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-28 13:24:41 +00:00