Commit Graph

21525 Commits

Author SHA1 Message Date
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
arv
f6cd009efd ES6: Make function name configurable
Function name property is now standardized in ES6. It was a Mozilla proprietary
extension before. With ES6, the property was made configurable, so that it can
be used instead of another proprietary property, displayName.

This is a revert of revert c791d84112.

Last time this broke a Chrome browser test which has since been updated:

5f75a3be4c

BUG=v8:3333
LOG=N
R=mstarzinger@chromium.org,verwaest@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_chromium_rel_ng;tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#26996}
2015-03-04 16:57:10 +00:00
balazs.kilvady
c4b9d144e0 MIPS: ARM: Load undefined receiver sentinel without constant pool.
Port a820568b1f

Each call to emit_32 uses 5 constant pool slots:
* the "emit_32" string
* undefined (the receiver)
* the argument (heap number)
* the load IC
* the call IC

This change cuts that down 20% to 4, by loading the undefined from the heap roots.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26995}
2015-03-04 16:55:50 +00:00
yangguo
dbecf20d65 Serializer: fix false negative in hashmap lookups.
If we use HashMap::Lookup with insert=true, the returned entry may have
NULL as value. This could either mean that the value is 0, or that the
entry has just been inserted. This ambiguity can cause false negatives
in PartialCacheIndexMap::LookupOrInsert.

Also fix a TODO.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26994}
2015-03-04 15:36:07 +00:00
jarin
8d2e45669f [turbofan] First shot at eager deoptimization in Turbofan.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26993}
2015-03-04 15:21:21 +00:00
yangguo
bdc7b2f43c Serializer: still install experimental globals when creating a snapshot.
Experimental globals are simply flag values on the builtins object to
turn on/off harmony features. We still need to declare them even when
we don't turn on harmony features for the snapshot.

R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26992}
2015-03-04 15:02:06 +00:00
jarin
4686448a17 [turbofan] Simplify and fix JS typed lowering type init.
Removing and fixing some embarrassing stuff in js-typed-lowering.

BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26991}
2015-03-04 14:55:29 +00:00
balazs.kilvady
118f97e792 MIPS64: Fix 'Use Rotate*() functions instead of doing this manually.'
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26990}
2015-03-04 14:34:11 +00:00
mstarzinger
064be2385a [turbofan] Fix exception being re-thrown after finally-block.
This makes sure that the implicit exception edges in the graph pass
the correct exception object and also fixes a bug in the dominance
relationship of the value entering the finally block and it's uses.

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

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

Cr-Commit-Position: refs/heads/master@{#26989}
2015-03-04 14:28:43 +00:00
yangguo
6e58be468a Revert of Remove default value for number of threads in Isolate::Init. (patchset #1 id:1 of https://codereview.chromium.org/978773002/)
Reason for revert:
build failures.

Original issue's description:
> Remove default value for number of threads in Isolate::Init.
>
> Just fixing a TODO.
>
> R=jochen@chromium.org
>
> Committed: https://crrev.com/fbcebbc5bdfd8eed82d121faf07b536eb3142fb7
> Cr-Commit-Position: refs/heads/master@{#26987}

TBR=jochen@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26988}
2015-03-04 14:27:43 +00:00
yangguo
fbcebbc5bd Remove default value for number of threads in Isolate::Init.
Just fixing a TODO.

R=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26987}
2015-03-04 14:08:39 +00:00
vogelheim
45ce804782 Revert of Default-enable external startup data for Linux for stand-alone builds. (patchset #1 id:1 of https://codereview.chromium.org/956373002/)
Reason for revert:
The CL caused two issues:
- a weird build issue on V8 mips builder
- d8 cannot be invoked via PATH, since then it doesn't find its external snapshot.

The 2nd issue might even be WAI, but this needs more consideration.

Original issue's description:
> Default-enable external startup data for Linux for stand-alone builds.
>
> Notes:
> - Other platforms to follow later.
> - This follows Chromium practice, that mostly uses this feature these days.
> - The statically linked-in startup data will stay. So whoever prefers
>   the old way just needs to set the flag differently.
>
> Reland crrev.com/959693002, once crrev.com/960883003 is in.
>
> R=machenbach@chromium.org
> BUG=
>
> Committed: https://crrev.com/a0bdb103b676b4c7fa6b9f2e7149e716549c05d1
> Cr-Commit-Position: refs/heads/master@{#26980}

TBR=machenbach@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26986}
2015-03-04 13:53:24 +00:00
hpayer
bd89a2eb61 Respect accumulative old generation memory limit in all spaces.
Before the max_old_space_size was set for each space, which is not intuitive and not what we want. There is still a miss match between capacity and actual committed memory which should be cleaned up in a follow up cl.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26985}
2015-03-04 13:43:40 +00:00
bmeurer
ce785b5616 [x86] Fix InstructionSelector::SupportedMachineOperatorFlags().
Word32 shifts are always safe on ia32 and x64, independent of whether
SSE4.1 is available.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26984}
2015-03-04 13:38:54 +00:00