Commit Graph

20836 Commits

Author SHA1 Message Date
bmeurer
59a02ebdbe [turbofan] Ensure that NTLs are always properly connected to the end.
Up until now we used a special Terminate node to artifically connect non
terminating loops to the End node, but this was kind of adhoc and didn't
work for the CFG. So without all kinds of weird hacks, the end block in
the CFG will not be connected to NTLs, which makes it impossible to
compute post dominance / control dependence in the current setting.

So instead of Terminate, we add a special Branch to NTLs, whose
condition is the special Always node, which corresponds to True, except
that it cannot be folded away. This way we don't need any special
machinery in the scheduler, since it's just a regular Branch.

R=titzer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26294}
2015-01-27 14:02:28 +00:00
mvstanton
f605f1c223 Revert of Continue learning for calls in optimized code when we have no type feedback. (patchset #4 id:60001 of https://codereview.chromium.org/868453005/)
Reason for revert:
Serializer tests broke. Need to debug and fix.

Original issue's description:
> Continue learning for calls in optimized code when we have no type feedback.
>
> Based on CL https://codereview.chromium.org/871063002/ which needs to land first.
>
> BUG=
>
> Committed: https://crrev.com/f5f2692b5ff70ac3cd06a903b7846174b97a2e55
> Cr-Commit-Position: refs/heads/master@{#26292}

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

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

Cr-Commit-Position: refs/heads/master@{#26293}
2015-01-27 13:07:09 +00:00
mvstanton
f5f2692b5f Continue learning for calls in optimized code when we have no type feedback.
Based on CL https://codereview.chromium.org/871063002/ which needs to land first.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26292}
2015-01-27 12:33:07 +00:00
dcarney
b18ad51079 fix performance regression on intel call api stubs
additionally, make the interface match the JSFunction interface

BUG=451405
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26291}
2015-01-27 11:46:19 +00:00
mvstanton
2a567faa3e Use a trampoline stub to load the type feedback vector for CallICs.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26290}
2015-01-27 11:24:07 +00:00
ishell
7f9b2fa699 Do not generalize field representations when making elements kind or observed transition.
BUG=chromium:448711
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26289}
2015-01-27 11:19:06 +00:00
bmeurer
d93c4d19f1 [x86] Disable AVX unless the operating system explicitly claims to support it.
BUG=chromium:452033, v8:3846
LOG=y
R=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26288}
2015-01-27 09:59:24 +00:00
yangguo
cc79418b59 Revert of Only use FreeSpace objects in the free list. (patchset #3 id:40001 of https://codereview.chromium.org/876613002/)
Reason for revert:
Test failures

Original issue's description:
> Only use FreeSpace objects in the free list.
>
> This solves an issue with the custom startup snapshot, in cases where
> deserializing the isolate requires more than one page per space.
>
> R=hpayer@chromium.org
>
> Committed: https://crrev.com/66964395108f03220cb6f45ddc73c5965e2c76a9
> Cr-Commit-Position: refs/heads/master@{#26285}

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

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

Cr-Commit-Position: refs/heads/master@{#26287}
2015-01-27 09:41:21 +00:00
jarin
b4a4c4c591 [turbofan] Only replace nodes eagerly during simplified lowering if the types stay the same.
BUG=chromium:452427
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26286}
2015-01-27 09:27:37 +00:00
yangguo
6696439510 Only use FreeSpace objects in the free list.
This solves an issue with the custom startup snapshot, in cases where
deserializing the isolate requires more than one page per space.

R=hpayer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26285}
2015-01-27 09:20:31 +00:00
machenbach
3c17b3b369 Refactor version increment in release scripts.
BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26284}
2015-01-27 08:53:37 +00:00
bmeurer
44f1b9d148 [turbofan] Some cleanup for scheduler unittests.
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26283}
2015-01-27 07:48:10 +00:00
bmeurer
d4fd79a434 Don't use internal gmock helper classes.
BUG=v8:3835
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26282}
2015-01-27 06:58:48 +00:00
jarin
4c79f55c32 [turbofan] Handle cyclic dependencies in context typing.
BUG=chromium:451012
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26281}
2015-01-27 06:57:41 +00:00
titzer
3937dd679b [turbofan] Remove GenericAlgorithm from verifier and graph replay.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26280}
2015-01-26 18:35:13 +00:00
balazs.kilvady
0e7379e001 MIPS: Refactoring after 'MIPS: split api call stubs into accessor and function call stubs'.
Change stack handling to clarify the usage of reserved MIPS argument slots for mips32.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26279}
2015-01-26 17:02:10 +00:00
paul.lind
54bbbdd34a MIPS64: fix wrong register use in LoadIndexedStringStub.
TEST=mjsunit/string-externalize, others...
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26278}
2015-01-26 16:58:53 +00:00
balazs.kilvady
0ae9eb038f MIPS: Fixed Hydrogen environment handling for mul-i ARM and ARM64.
Port a7d67a64f1

Original commit message:
The whole logic in DoMul makes me cry, so I made only the minimal
change to fix the issue...

BUG=v8:451322
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26277}
2015-01-26 16:16:02 +00:00
titzer
7c81161b97 [turbofan] Simplify reduction if IfTrue and IfFalse and fix bugs.
R=mstarzinger@chromium.org
BUG=chromium:451958
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26276}
2015-01-26 16:11:24 +00:00
ulan
ecfbe909f3 Load getter from map descriptor instead of embedding it in handler.
BUG=v8:3629
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26275}
2015-01-26 15:42:14 +00:00
ulan
a730a31a5b Cache WeakCell for optimized code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26274}
2015-01-26 15:31:32 +00:00
jkummerow
0e11bb7b85 Add HeapNumber fast path to v8::Value::{Uint,Int}32Value()
This has the added benefit that these functions are now guaranteed not to throw when v8::Value::Is{Uint,Int}32() returned true, even when calling into JavaScript would throw a stack limit error.

BUG=chromium:446097
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26273}
2015-01-26 15:08:04 +00:00
hpayer
8e838f705c Perform full GC if incremental marking is completed or marking deque is empty.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26272}
2015-01-26 14:55:13 +00:00
machenbach
ae22d7f873 External name changes of release scripts.
Moved and renamed the scripts to fit with git.

These changes require documentation updates, updates of
the release spreadsheet and the buildbot side.

BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26271}
2015-01-26 14:21:09 +00:00
dtc-v8
531f7ab1d2 [turbofan] Better narrow the derived type for the right shift operation.
Currently the derived type of a right shift does not narrow the input
type based on the actual shift amount - well it does some narrowing
but more can be down. For patterns such as u32[i>>2], which is very
common is asm.js code, this limits the ability to later prove that an
index bounds check is unnecessary which can have a significant
performance impact.

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

Cr-Commit-Position: refs/heads/master@{#26270}
2015-01-26 14:11:36 +00:00
machenbach
379dcd5bd4 Clean up release scripts.
This makes some internal renaming, e.g. trunk -> candidates,
bleeding edge -> master, without changing the api.

Also remove some unused bailout steps from the push script.

Remove unused bump version script.

BUG=chromium:451975
TBR=tandrii@chromium.org
NOTRY=true
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26269}
2015-01-26 13:29:31 +00:00
mstarzinger
00f3f99221 Add missing FrameState for Runtime_CreateArrayLiteral.
R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-451013
BUG=chromium:451013
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26268}
2015-01-26 12:45:34 +00:00
danno
c6ae373335 Convert compiler cctest to unittests: SchedulerTest
R=mstarzinger@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26267}
2015-01-26 11:21:24 +00:00
yangguo
a699645b71 Probe same-isolate compilation cache before deserializing.
R=mvstanton@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26266}
2015-01-26 10:57:05 +00:00
dcarney
7e25cce051 [turbofan] make register allocator verifier independent of phi assignment
Review URL: https://codereview.chromium.org/875853002

Cr-Commit-Position: refs/heads/master@{#26265}
2015-01-26 10:40:22 +00:00
bmeurer
005343cfe6 [turbofan] Don't embed pointer to builtins object in generic lowering.
Accessing the builtins object this way prevents sharing of code across
native contexts; instead we now load the builtin from the context of the
JS operation instead.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26264}
2015-01-26 10:20:45 +00:00
bmeurer
4f1597a92d [turbofan] Add new JSIntrinsicsLowering reducer.
The lowering of intrinsics is therefore now decoupled from the general
inlining logic.

TEST=cctest,unittests
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26263}
2015-01-26 09:06:03 +00:00
yangguo
8eb58b85a6 Fix regexp=interpreted build wrt zone related changes.
Broke after c7b09aac31

TBR=danno@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26262}
2015-01-26 08:44:40 +00:00
svenpanne
a7d67a64f1 Fixed Hydrogen environment handling for mul-i on ARM and ARM64.
The whole logic in DoMul makes me cry, so I made only the minimal
change to fix the issue...

BUG=v8:451322
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26261}
2015-01-26 08:35:58 +00:00
v8-autoroll
431a083473 Update V8 DEPS.
Rolling v8/tools/clang to 853a3150b369e5dcd62d7429998bfafe8158e16e

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26260}
2015-01-25 04:23:09 +00:00
v8-autoroll
43fa6bd418 Update V8 DEPS.
Rolling v8/build/gyp to b28bd7ddd1438c98f93a8e5383b7daceb572a3fb

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26259}
2015-01-24 04:31:32 +00:00
adamk
217820c1f0 Remove unused VariableDeclarationContext value: kBlockElement
R=arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26258}
2015-01-23 21:35:21 +00:00
balazs.kilvady
10f3fe3ee3 MIPS64: Remove the dependency of Zone on Isolate.
Port c7b09aac31

Original commit message:
Along the way:
- Thread isolate parameter explicitly through code that used to
  rely on getting it from the zone.
- Canonicalize the parameter position of isolate and zone for
  affected code
- Change Hydrogen New<> instruction templates to automatically
  pass isolate

LOG=N
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26257}
2015-01-23 19:34:52 +00:00
danno
d1e45d9b00 Distinquish TestWithIsolateAndZone from TestWithZone
Allows unit tests that just need a zone and no isolate to avoid the overhead of
creating one.

R=mstarzinger@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26256}
2015-01-23 16:29:57 +00:00
machenbach
ab8744d229 Fix version and changelog pushing.
BUG=chromium:451357
LOG=n
TBR=tandrii@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26255}
2015-01-23 15:30:26 +00:00
machenbach
bf41bde9f9 Revert "Make version generation robust to other user-defined tags."
This reverts commit 9ae1c2382a.

BUG=chromium:446166
LOG=n
NOTRY=true
TBR=jkummerow@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26254}
2015-01-23 15:29:23 +00:00
caitpotter88
12af28309a ES6 Array.prototype.toString falls back on Object.prototype.toString if method "join" is not callable.
BUG=v8:3793
LOG=Y
R=dslomov@chromium.org, arv@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26253}
2015-01-23 15:21:44 +00:00
danno
c7b09aac31 Remove the dependency of Zone on Isolate
Along the way:
- Thread isolate parameter explicitly through code that used to
  rely on getting it from the zone.
- Canonicalize the parameter position of isolate and zone for
  affected code
- Change Hydrogen New<> instruction templates to automatically
  pass isolate

R=mstarzinger@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26252}
2015-01-23 15:20:00 +00:00
machenbach
ade95b74c7 Push version and changelog as a separate commit.
BUG=chromium:451357
LOG=n
TBR=tandrii@chromium.org
NOTRY=true

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

Cr-Commit-Position: refs/heads/master@{#26251}
2015-01-23 14:59:04 +00:00
marja
c421f3de54 Script streaming: Test that streaming <-> harmony scopes interaction is correct.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26250}
2015-01-23 14:41:18 +00:00
mstarzinger
ace7b8f20f Make TestSetJitCodeEventHandler more resilient.
R=ishell@chromium.org
TEST=cctest/test-api/SetJitCodeEventHandler

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

Cr-Commit-Position: refs/heads/master@{#26249}
2015-01-23 12:12:27 +00:00
balazs.kilvady
21a465607d MIPS: convert compile-time checkable DCHECKs to STATIC_ASSERTs.
Port cc6c373e2a

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26248}
2015-01-23 12:00:12 +00:00
hpayer
a18fdd61dc Always adjust amount of external memory when change is reported.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26247}
2015-01-23 11:37:49 +00:00
erikcorry
8c58ed1a0c Support old and new weak handle API
R=dcarney@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26246}
2015-01-23 11:28:54 +00:00
dcarney
8a78fd6d2e Reland "Call directly to c callbacks in Invoke instead of transitioning to js and back out"
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26245}
2015-01-23 11:22:20 +00:00