Commit Graph

21688 Commits

Author SHA1 Message Date
svenpanne
e2ce456754 Intrinsics in the RUNTIME_FUNCTION_LIST are now available with '_', too.
Now the three intrinsic lists only differ in their compiler
support. Unifying the lists and making the logic what is supported in
which compiler local to the compilers themselves is handled in a
follow-up CL.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27046}
2015-03-06 14:58:48 +00:00
yangguo
5de20c05d5 Do not use eternal handles when creating a start-up snapshot.
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27045}
2015-03-06 14:44:51 +00:00
jkummerow
233ea0eef8 Reland: Simplify and compact transitions storage
Original issue: https://codereview.chromium.org/980573002/

Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.

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

Cr-Commit-Position: refs/heads/master@{#27044}
2015-03-06 14:08:47 +00:00
svenpanne
d8416f5524 Intrinsics in the INLINE_FUNCTION_LIST are now avaliable without '_', too.
This involved renaming apart a few more intrinsics. In the long run,
we want to clean up redundant intrinsics which just delegate.

BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27043}
2015-03-06 13:50:06 +00:00
machenbach
934dd88d3b Make automated branch creation gnumbd-save.
This makes now the same simplification as the chromium
release scripts do. For creating branch B from a gnumbd'ed
(aka real) commit X do:
1. Branch Y off the real X
2. Set refs/pending/heads/B to Y
3. Set refs/pending-tags/B to X
4. Set refs/heads/B to X

The old algorithm tried to branch off the pending
correspondent of X. That commit was determined by comparing
tree objects of the real X and commits on pending.
Unfortunately, multiple commits on one branch can refer to
the same tree object, e.g., for commits P, Q, R with R being
the revert of Q, P and R refer to the same tree object.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=tools/release/create_release.py -a me -r you --dry-run

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

Cr-Commit-Position: refs/heads/master@{#27042}
2015-03-06 13:10:33 +00:00
jarin
9b40c5d0d2 [turbofan] Fix the deopt ids in assignment.
BUG=chromium:463028
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27041}
2015-03-06 12:50:47 +00:00
ulan
1b00451f57 Retain maps embedded in optimized code for several garbage collections.
This keeps dying maps alive for FLAG_retain_maps_for_n_gc garbage collections
to increase chances of them being reused for new objects in future and
decrease number of deoptimizations.

BUG=v8:3664
LOG=N
TEST=cctest/test-heap/MapRetaining

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

Cr-Commit-Position: refs/heads/master@{#27040}
2015-03-06 12:36:32 +00:00
svenpanne
4e7acce180 Merged INLINE_OPTIMIZED intrinsic type into INLINE.
BUG=v8:3947
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27039}
2015-03-06 11:01:52 +00:00
dcarney
b9bf2051cd convert more things to maybe
BUG=v8:3929
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27038}
2015-03-06 10:28:15 +00:00
loislo
b2ae7a7594 Revert of CpuProfiler: enable tests except four failing tests. (patchset #3 id:100001 of https://codereview.chromium.org/976203003/)
Reason for revert:
Some tests still flaky

Original issue's description:
> CpuProfiler: enable tests except four failing tests.
>
> Four tests are failing due to a problem with no frame ranges.
>
> BUG=
> LOG=n
>
> Committed: https://crrev.com/2be160e726f2be6272b77e53fbd556aded6024f1
> Cr-Commit-Position: refs/heads/master@{#27035}

TBR=yurys@chromium.org,svenpanne@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27037}
2015-03-06 10:20:00 +00:00
mstarzinger
e6ff16d6bf [turbofan] Preserve pending message while inside finally-block.
This makes sure that any pending message is saved before entering
and restored after exiting a finally block. It also makes sure that
operand stacks are kept in sync to full-codegen.

R=bmeurer@chromium.org
TEST=cctest/test-run-jsexceptions/ThrowMessage

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

Cr-Commit-Position: refs/heads/master@{#27036}
2015-03-06 10:16:02 +00:00
loislo
2be160e726 CpuProfiler: enable tests except four failing tests.
Four tests are failing due to a problem with no frame ranges.

BUG=
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#27035}
2015-03-06 10:01:49 +00:00
verwaest
67d531c33c Don't double-allocate mutable heap numbers in the json parser. This removes some stupidity when committing state.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27034}
2015-03-06 08:37:18 +00:00
yangguo
a8e82da6a5 Serializer: simplify external reference encoding.
External references are encoded as a tuple of type and ID. This
requires both the external reference encode and the decoder to
create a mapping between the encoding and the external reference
table index.

Instead, we simply use the external reference table index as
encoding.

We now also assume that there are no duplicate entries. Existing
duplicates have been removed in this change.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27033}
2015-03-06 08:15:28 +00:00
chunyang.dai
d67f48188a Add the code change for turbofan unsupported port.
This is introduced by 8d2e45669f (r26993)

original commit message:
   First shot at eager deoptimization in Turbofan.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27032}
2015-03-06 06:15:58 +00:00
yangguo
e571065c14 Only reference constant root list entries in the snapshot.
R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27031}
2015-03-05 21:24:24 +00:00
jkummerow
948a973d45 Revert of Simplify and compact transitions storage (patchset #4 id:80001 of https://codereview.chromium.org/980573002/)
Reason for revert:
x64 test failures

Original issue's description:
> Simplify and compact transitions storage
>
> Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
> To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.
>
> Committed: https://crrev.com/45fbef7f2252fce10634931cb103ccc1fc95ae6a
> Cr-Commit-Position: refs/heads/master@{#27029}

TBR=verwaest@chromium.org,ulan@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#27030}
2015-03-05 20:42:03 +00:00
jkummerow
45fbef7f22 Simplify and compact transitions storage
Simple transitions are now stored in a map's "transitions" field (as a WeakCell wrapping the target map); full TransitionArrays are used when that's not sufficient.
To encapsulate these storage format implementation details, functions for manipulating and querying transitions have been refactored to be static functions on the TransitionArray class, and take maps as inputs.

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

Cr-Commit-Position: refs/heads/master@{#27029}
2015-03-05 20:09:41 +00:00
balazs.kilvady
b9ed2199bd MIPS: [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
Port 4436c2642a

Original commit message:
This adds support for the double bits intrinsics to TurboFan, and is
a first step towards fast Math functions inlined into TurboFan code
or even compiled by themselves with TurboFan.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27028}
2015-03-05 19:28:28 +00:00
balazs.kilvady
d2192c60ba MIPS: [turbofan] Implement throwing exceptions into TurboFan code.
Port 1382879f29

Original commit message:
This extends the stack unwinding logic to respect optimized frames
and perform a lookup in the handler table to find handlers. It also
contains fixes to the API call stubs to allow a stack walk while
promoting scheduled exceptions.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27027}
2015-03-05 19:26:59 +00:00
hpayer
e813afaf12 Remove promotion backup case and report OOM instead.
There are no test cases for this piece of code and it is really hard to test. If this rare case triggers, we are anyway in an OOM situation and would crash probably soon afterwards.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27026}
2015-03-05 18:38:38 +00:00
kozyatinskiy
54196b17c8 [V8] Use Function.name for stack frames in v8::StackTrace
If function.name property has string type then stack frame will contain it otherwise DebugName from shared function info.

BUG=17356
LOG=Y
R=yurys@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27025}
2015-03-05 18:31:49 +00:00
Dan Carney
4873d8c74e disable some arm tests after r27020
TBR=yangguo@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27024}
2015-03-05 17:49:45 +00:00
balazs.kilvady
e2b2fd620b MIPS: Fix exception for assignment to uninitialised const.
Port 2ecdf736cf

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27023}
2015-03-05 17:04:33 +00:00
Yang Guo
e522cb6e3f Disable turbofan for serializer tests.
TBR=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27022}
2015-03-05 14:46:56 +00:00
machenbach
f96e226011 Fix progress check in auto-roller.
Using a git range check for checking progress is wrong when
the last rolled revision and the revision candidate are on
different branches. The range A..B will always show the
commits from the merge-base of A and B until B.

Better compare the tags of the last rolled revision and the
candidate. The candidate's version must be strictly greater
than what's in chromium.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py

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

Cr-Commit-Position: refs/heads/master@{#27021}
2015-03-05 14:05:12 +00:00
yangguo
ce45b00e4b Serializer: correctly deal with internal references.
Internal references are absolute addresses into the instruction
stream. Turn them into relative addresses when serializing and
back when deserializing to keep them valid.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27020}
2015-03-05 13:46:46 +00:00
verwaest
cb4540db3e Use faster IsDecimalDigit in the json parser
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27019}
2015-03-05 13:44:27 +00:00
dcarney
00c52d424a reland rename UniquePersistent to Global
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27018}
2015-03-05 13:26:35 +00:00
yurys
e33ae81ce1 Allow passing sourceMapUrl when compiling scripts
According to Source Map specification [1] source map url can be passed either as a magic comment at the end of script or as SourceMap http header. We already parse the former value and expose it on Script object. This change allows to unify the way we deal with source map urls received in http header by providing api for passing that url into the script being compiled.

source_map_url is intentionally not passed into CompilationCacheScript::Lookup. The cache is anyways disabled when debugger is on.

[1] https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit

LOG=Y
BUG=chromium:462572

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

Cr-Commit-Position: refs/heads/master@{#27017}
2015-03-05 13:03:57 +00:00
mstarzinger
1382879f29 [turbofan] Implement throwing exceptions into TurboFan code.
This extends the stack unwinding logic to respect optimized frames
and perform a lookup in the handler table to find handlers. It also
contains fixes to the API call stubs to allow a stack walk while
promoting scheduled exceptions.

R=jarin@chromium.org
TEST=cctest/test-run-jsexceptions

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

Cr-Commit-Position: refs/heads/master@{#27016}
2015-03-05 13:02:46 +00:00
machenbach
62d860f14f Fix host compilation with clang for android.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27015}
2015-03-05 12:54:33 +00:00
rossberg
2ecdf736cf Fix exception for assignment to uninitialised const
R=dslomov@chromium.org, mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27014}
2015-03-05 12:44:01 +00:00
dcarney
95c1f5ddc8 convert compile functions to use maybe
BUG=v8:3929
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#27013}
2015-03-05 12:26:19 +00:00
machenbach
8465f39792 Revert of rename UniquePersistent to Global (patchset #2 id:20001 of https://codereview.chromium.org/980173003/)
Reason for revert:
breaks arm compile

Original issue's description:
> rename UniquePersistent to Global
>
> BUG=
>
> Committed: https://crrev.com/3f5ae16c62b031ad572f750d81ffc71c5d6d1f9b
> Cr-Commit-Position: refs/heads/master@{#27011}

TBR=svenpanne@chromium.org,dcarney@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27012}
2015-03-05 12:10:32 +00:00
dcarney
3f5ae16c62 rename UniquePersistent to Global
BUG=

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

Cr-Commit-Position: refs/heads/master@{#27011}
2015-03-05 11:40:43 +00:00
svenpanne
d271599f08 Made the entries of the various *_FUNCTION_LISTs disjoint.
This way, every function in those lists has one C++ implementation
called Runtime_##name. The previous distinction was confusing.

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

Cr-Commit-Position: refs/heads/master@{#27010}
2015-03-05 11:26:44 +00:00
machenbach
a6a0bd8846 Make auto-roller roll recent release based on timestamp.
Before this change, out of two versions 4.2.13.1 and
4.2.14, the latter would have been considered the newest.
Now, the timestamp of the commit determines the age, which
allows to roll a patched version first. The auto-roller
will only roll forward (i.e. there needs to be a commit
range between the last roll and the new candidate).

Additionally, this CL does some cleanups:
- Use the sheriff detection mechanism in the auto-roller.
- Require the roll revision parameter in the chromium_roll
script to avoid redundancy. The auto_roll script determines
that revision automatically.
- Simplify the revision summary in the commit message. The
summary will now show last_roll..new_roll, which e.g.
includes the version change CL. It'll now show useful
information for cherry-picks, which it didn't before.
- Remove unused clusterfuzz check. That check is part of the
release process script.

TBR=tandrii@chromium.org
NOTRY=true
TEST=./script_test.py
TEST=./tools/release/chromium_roll.py --dry-run --sheriff -c ~/tmp/chromium/src --last-roll 55b9049ea3978a589d8db2aa191d21222eef737f fc263505535a175c8efa18f4c787bd92a1d1ab3d --use-commit-queue -r me -a you

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

Cr-Commit-Position: refs/heads/master@{#27009}
2015-03-05 10:50:08 +00:00
loislo
5cd7707c55 CpuProfiler: simplify test.
BUG=
LOG=n
TBR=yurys, svenpanne

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

Cr-Commit-Position: refs/heads/master@{#27008}
2015-03-05 10:38:07 +00:00
Benedikt Meurer
d4d9d383f9 [ia32] Fix typo in no-SSE4.1 code.
TBR=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27007}
2015-03-05 09:46:17 +00:00
bmeurer
4436c2642a [turbofan] Support for %_DoubleHi, %_DoubleLo and %_ConstructDouble.
This adds support for the double bits intrinsics to TurboFan, and is
a first step towards fast Math functions inlined into TurboFan code
or even compiled by themselves with TurboFan.

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

Cr-Commit-Position: refs/heads/master@{#27006}
2015-03-05 09:22:38 +00:00
mstarzinger
23fb4eb8f3 [turbofan] Enable DeoptFinallyReturn test that no longer fails.
This was fixed by 064be2385a and will no longer fail, even on the
no-snap ARM64 simulator.

R=bmeurer@chromium.org
TEST=cctest/test-run-jsexceptions/DeoptFinallyReturn

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

Cr-Commit-Position: refs/heads/master@{#27005}
2015-03-05 09:17:12 +00:00
dcarney
6e189f5ae6 give UniquePersistent full move semantics
BUG=v8:3669
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#27004}
2015-03-05 08:30:54 +00:00
chunyang.dai
7f78e7b347 X87: Refactor BreakLocationIterator
port 1a608493e5 (r26983)

original commit message:

   Refactor BreakLocationIterator.

   We now have BreakLocation::Iterator to iterate via RelocIterator, and
   create a BreakLocation when we are done iterating. The reloc info is
   stored in BreakLocation in a GC-safe way and instantiated on demand.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27003}
2015-03-05 05:41:09 +00:00
v8-autoroll
256d5d4df4 Update V8 DEPS.
Rolling v8/build/gyp to 4a9b712d5cb4a5ba7a9950128a7219569caf7263

Rolling v8/buildtools to d4dd4f79f60bf019625b3a1436979b0a42c892df

Rolling v8/tools/clang to 5309ba9a6f1e56592860a623db451aef00ae941d

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#27002}
2015-03-05 04:24:20 +00:00
chunyang.dai
a3773e4d29 X87: Implement subclassing Arrays.
port 1604bd46bf (r26972).

original commit message:

   Implement subclassing Arrays.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27001}
2015-03-05 02:58:59 +00:00
chunyang.dai
5c1ae4ba3a X87: Move stack unwinding logic into the runtime.
port 4acbc93dbf (r26957)

original commit message:

   Move stack unwinding logic into the runtime.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#27000}
2015-03-05 02:57:59 +00:00
machenbach
c11c0bdbed Update V8 DEPS.
Rolling v8/third_party/icu to eda9e75b1fa17f57ffa369ee3543a2301b68d0a9

TBR=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26999}
2015-03-04 19:45:41 +00:00
yangguo
eb27388b37 Use bit_cast for Runtime_Double{Hi,Lo}.
To avoid undefined behavior.

R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26998}
2015-03-04 18:55:12 +00:00
verwaest
c8f9d7ab53 Speed up string scanning
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26997}
2015-03-04 17:58:00 +00:00