Commit Graph

21442 Commits

Author SHA1 Message Date
weiliang.lin
11d97bf531 [x64] Use movaps instead of movsd for the move between double registers.
Review URL: https://codereview.chromium.org/972053002

Cr-Commit-Position: refs/heads/master@{#26950}
2015-03-03 06:34:25 +00:00
bmeurer
8df194c14a [turbofan] Fix ControlFlowOptimizer to also handle non-control nodes in the control chain.
Review URL: https://codereview.chromium.org/971223002

Cr-Commit-Position: refs/heads/master@{#26949}
2015-03-03 06:11:52 +00:00
chunyang.dai
38d303c5ca X87: Prefill with correct contextual load ICs in fullcodegen.
port 7ee31a2348 (r26941).

original commit message:

  Compute correct contextual load ICs in fullcodegen.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26948}
2015-03-03 05:56:10 +00:00
yangguo
ea02c3339d Tweak memory management in the serializer.
R=vogelheim@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26947}
2015-03-02 19:57:53 +00:00
Balazs Kilvady
363dbde912 MIPS: Compute correct contextual load ICs in fullcodegen.
Port 7ee31a2348

BUG=
R=dusan.milosavljevic@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26946}
2015-03-02 17:17:42 +00:00
Dan Carney
1b7cc089ac fix webkit tests
r26943 just moved the problem around

TBR=svenpanne@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26945}
2015-03-02 15:49:48 +00:00
Jaroslav Sevcik
964f6a3eb8 [turbofan] Normalize union of representation and range to a range.
BUG=
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26944}
2015-03-02 14:35:26 +00:00
Dan Carney
5f49fef325 check for null context on execution entry
blink is incorrectly calling api functions without a context.  we need this to find those places

R=svenpanne@chromium.org

BUG=v8:3929
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26943}
2015-03-02 14:17:20 +00:00
Benedikt Meurer
e1c2c9016e [turbofan] Strength reduction of Word32And with Int32Mul.
- (x * (K << L)) & (-1 << L) => x * (K << L)
- ((K << L) * x) & (-1 << L) => x * (K << L)

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26942}
2015-03-02 13:54:09 +00:00
Toon Verwaest
7ee31a2348 Compute correct contextual load ICs in fullcodegen.
BUG=
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26941}
2015-03-02 13:36:58 +00:00
Dan Carney
1fcedda668 convert object::* to return maybe values
BUG=v8:3929
LOG=y
R=svenpanne@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26940}
2015-03-02 13:13:31 +00:00
Benedikt Meurer
5f3914fc19 [turbofan] Use the typer to statically detect Smis.
R=rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26939}
2015-03-02 13:10:42 +00:00
Jaroslav Sevcik
f0b11873a3 [turbofan] Fix deferred replacement in simplified lowering.
Deferred replacement must also replace in the pending node vector.

BUG=chromium:463056
LOG=n
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26938}
2015-03-02 12:49:49 +00:00
Sven Panne
602d0dab93 Removed funky Maybe constructor and made fields private.
BUG=v8:3929
LOG=y
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26937}
2015-03-02 12:22:37 +00:00
Sven Panne
30637108dd Polish Maybe API a bit, removing useless creativity and fixing some signatures.
BUG=v8:3929
LOG=y
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26936}
2015-03-02 11:27:05 +00:00
Benedikt Meurer
502898ef60 [x86] Improve code generation for context materialization.
On Intel targets, it is cheaper to load the context from the frame
instead of loading the context as a constant (which usually involves a
PropertyCell because the context is in new space when we compile the
function).

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26935}
2015-03-02 09:09:42 +00:00
Benedikt Meurer
155278d6f2 [turbofan] Skip write barriers when storing smi.
On 64-bit targets, we can skip the write barrier for Store nodes if the
input is ChangeInt32ToTagged, because the value being stored is
definitely represented as a smi then.

R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26934}
2015-03-02 09:09:08 +00:00
arv
c791d84112 Revert of ES6: Make function name configurable (patchset #10 id:220001 of https://codereview.chromium.org/960343002/)
Reason for revert:
Breaks Chrome browser test that checks Object.name

[16509:16509:0228/030150:INFO:CONSOLE(43)] "Uncaught Error: Clobbered Object.name getter", source: http://www.chromium.org:33611/assertions.js (43)

http://build.chromium.org/p/client.v8/builders/Linux%20Tests%20%28dbg%29%281%29/builds/2328/steps/browser_tests/logs/stdio

Original issue's description:
> ES6: Make function name configurable
>
> This is partially based on r21609 but that CL was incomplete.
>
> Function name is still non writable so one has to use defineProperty
> to change the actual value.
>
> BUG=v8:3333
> LOG=N
> R=adamk, mstarzinger@chromium.org
>
> Committed: https://crrev.com/f7790f7670c8d859455a98fcb90ff1b66af1eca7
> Cr-Commit-Position: refs/heads/master@{#26924}

TBR=adamk@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3333

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

Cr-Commit-Position: refs/heads/master@{#26933}
2015-03-02 00:19:01 +00:00
cdai2
8b33fa6069 X87: Disallow subclassing Arrays.
port 290ee378ea (r26931).

original commit message:

UG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26932}
2015-02-28 08:29:29 +00:00
dslomov
290ee378ea Disallow subclassing Arrays.
R=rossberg@chromium.org,arv@chromium.org
BUG=v8:3930
LOG=Y

Committed: https://crrev.com/87f3e08e72510ee5544e82bb7ad39b2b5f001ad3
Cr-Commit-Position: refs/heads/master@{#26925}

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

Cr-Commit-Position: refs/heads/master@{#26931}
2015-02-28 00:28:35 +00:00
dslomov
47b6e27317 Revert of Disallow subclassing Arrays. (patchset #3 id:40001 of https://codereview.chromium.org/962263002/)
Reason for revert:
Fails on nosnap build

Original issue's description:
> Disallow subclassing Arrays.
>
> R=rossberg@chromium.org,arv@chromium.org
> BUG=v8:3930
> LOG=Y
>
> Committed: https://crrev.com/87f3e08e72510ee5544e82bb7ad39b2b5f001ad3
> Cr-Commit-Position: refs/heads/master@{#26925}

TBR=arv@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930

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

Cr-Commit-Position: refs/heads/master@{#26930}
2015-02-27 22:26:36 +00:00
dslomov
65abdb7e4e Revert of Regression test for v8:3930. (patchset #1 id:1 of https://codereview.chromium.org/961353002/)
Reason for revert:
Fails on nosnap builds

Original issue's description:
> Regression test for v8:3930.
>
> R=arv@chromium.org,rossberg@chromium.org
> BUG=v8:3930
> LOG=N
>
> Committed: https://crrev.com/48fb3e83c5882e9818bc1e0a035864b465602aca
> Cr-Commit-Position: refs/heads/master@{#26926}

TBR=arv@chromium.org,rossberg@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3930

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

Cr-Commit-Position: refs/heads/master@{#26929}
2015-02-27 22:24:41 +00:00
machenbach
002b1ddb0e Make the auto-pusher recover easier.
The auto-push script is only used in an automated fashion
on bots. It doesn't need to check for a clean git
environment as it has a special workdir checkout.

If the release creation fails for whatever reason (e.g.
a master restart happens in the middle), the workdir
checkout might be left dirty. Any new attempt of the auto
pusher then bails out.

After this change it will call the create_release script
in any case which tidies up the workspace on startup.

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

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

Cr-Commit-Position: refs/heads/master@{#26928}
2015-02-27 22:23:33 +00:00
arv
4b830859b7 Fix block-for test
The test didn't call the test function.

BUG=v8:3932
LOG=N
TBR=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26927}
2015-02-27 21:22:48 +00:00
dslomov
48fb3e83c5 Regression test for v8:3930.
R=arv@chromium.org,rossberg@chromium.org
BUG=v8:3930
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26926}
2015-02-27 21:21:43 +00:00
dslomov
87f3e08e72 Disallow subclassing Arrays.
R=rossberg@chromium.org,arv@chromium.org
BUG=v8:3930
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26925}
2015-02-27 20:18:07 +00:00
arv
f7790f7670 ES6: Make function name configurable
This is partially based on r21609 but that CL was incomplete.

Function name is still non writable so one has to use defineProperty
to change the actual value.

BUG=v8:3333
LOG=N
R=adamk, mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26924}
2015-02-27 19:29:01 +00:00
ricow
1f0af25b60 Remove trailing enum comma, I see arm compile failures due to this
R=yangguo@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26923}
2015-02-27 18:42:50 +00:00
arv
9ac336f217 Stage ES6 computed property names
BUG=v8:3754
LOG=N
R=dslomov@chromium.org, rossberg@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26922}
2015-02-27 18:09:45 +00:00
adamk
38d7a796b1 Create ImportDeclarations for default imports.
BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26921}
2015-02-27 18:06:32 +00:00
adamk
a7840a2b3e Allow lookup of module exports by export name.
This required fixing the exports_ hash map to use the appropriate
comparison function instead of pointer comparison.

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26920}
2015-02-27 18:04:56 +00:00
bratell
bd21d72d50 Avoid repeating code when creating builtins.
InstallBuiltinFunctionIds stood out when looking at code that grew
strangely when compiled with default optimizations.

This change from repeated code to a loop saves 6-7 KB of machine code.
I suspect it's faster but I also suspect it's fast enough either way so
that is not really a factor. Machine code reduction seen below.

Code formatted with git cl format.

clang x64:
Total change: -5985 bytes
-------------------------------------------
 +517 - Source: ?? - (gained 744, lost 227)
-------------------------------------------
  New symbols:
       +744: v8::internal::Genesis::InstallBuiltinFunctionIds()::builtins type=d, size=744 bytes
  Removed symbols:
         -4: .L.str98 type=r, size=4 bytes
... [stripped 30 similar lines]
        -19: .L.str100 type=r, size=19 bytes

----------------------------------------------------------------------------------------------
 -6502 - Source: /home/bratell/src/chromium/src/v8/src/bootstrapper.cc - (gained 0, lost 6502)
----------------------------------------------------------------------------------------------
  Removed symbols:
      -1135: v8::internal::ResolveBuiltinIdHolder(v8::internal::Handle<v8::internal::Context>, char const*) type=t, size=1135 bytes
  Shrunk symbols:
      -5367: v8::internal::Genesis::InstallBuiltinFunctionIds() type=t, (was 7105 bytes, now 1738 bytes)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26919}
2015-02-27 15:21:52 +00:00
machenbach
f41b6b9919 Update V8 DEPS.
Rolling v8/buildtools to 93b3d0af1b30db55ee42bd2e983f7753153217db

Rolling v8/tools/clang to eb87c73202018d13f2f713e1304ab4edf9a6f49f

TBR=jochen@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26918}
2015-02-27 15:00:25 +00:00
loislo
0b3f095845 Fix for mips64 after #26916
BUG=
TBR=svenpanne

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

Cr-Commit-Position: refs/heads/master@{#26917}
2015-02-27 14:12:34 +00:00
loislo
32ee9fa6ab CpuProfiler: replace raw position with SourcePosition for DeoptReason
Save Unknown position as zero in RelocInfo.
Remove copy constructor of SourcePosition because it is trivial.
Mechanical replace int raw_position with SourcePosition position.

BUG=452067
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26916}
2015-02-27 13:34:38 +00:00
dcarney
99edffd9a4 ensure host compiler is always clang when cross compiling from linux
BUG=

Committed: https://crrev.com/56039af476797accc238dcb24c7ab926899287a0
Cr-Commit-Position: refs/heads/master@{#26881}

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

Cr-Commit-Position: refs/heads/master@{#26915}
2015-02-27 13:25:09 +00:00
dcarney
8d839ead04 convert Value::*Value() function to return Maybe results
BUG=v8:3929
LOG=Y

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

Cr-Commit-Position: refs/heads/master@{#26914}
2015-02-27 13:04:49 +00:00
mstarzinger
627ffe9af2 Remove obsolete Isolate::DoThrow helper.
R=bmeurer@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26913}
2015-02-27 11:15:48 +00:00
dcarney
2fc51d9cfa Convert v8::Value::To* to use MaybeLocal
BUG=v8:3929
LOG=y

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

Cr-Commit-Position: refs/heads/master@{#26912}
2015-02-27 10:39:41 +00:00
bmeurer
936ae2b814 [turbofan] Avoid generating dead BooleanNot nodes in typed lowering.
Without this shortcut we generate one BooleanNot per JSUnaryNot with
number input, which is quite common in asm.js. These dead nodes then
survive until the late control reducer runs, and may prevent
optimizations in the mean time.

R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26911}
2015-02-27 10:25:05 +00:00
bmeurer
b0f52cad08 [turbofan] Properly unlink dead nodes in simplified lowering.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26910}
2015-02-27 09:37:54 +00:00
balazs.kilvady
b9eb8f1fb8 MIPS: Skip the mapcheck on the global object since the global proxy and cell are already checked (or the global object map for contextual global loads).
Port 6af7ca6be4

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26909}
2015-02-27 09:15:50 +00:00
chunyang.dai
235bf89c87 X87: Skip the mapcheck on the global object since the global proxy and cell are already checked
port 6af7ca6be4 (r26886)

original commit message:

  Skip the mapcheck on the global object since the global proxy and cell are already
  checked (or the global object map for contextual global loads).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26908}
2015-02-27 08:09:22 +00:00
bmeurer
643f020cd2 [x64] Make r12 allocatable.
Review URL: https://codereview.chromium.org/926553004

Cr-Commit-Position: refs/heads/master@{#26907}
2015-02-27 08:04:07 +00:00
chunyang.dai
2e2c9b2ac8 Add the corresponding change for turbofan unsupported port.
this is introduced by 88c4f52cb2 (r26783)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26906}
2015-02-27 07:39:48 +00:00
cdai2
852792048c X87: Only dynamically perform access checks on the receiver if it's a JSGlobalProxy.
port e9cdcb7174 (r26875)

original commit message:
  Only dynamically perform access checks on the receiver if it's a JSGlobalProxy.
  Proxies up the chain are guaranteed to provide access if we had access to the receiver,
  since otherwise we wouldn't have been able to compile the stub in the first place.
  If the security check would change, the window navigates, changing the map of the JSGlobalProxy.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26905}
2015-02-27 07:32:20 +00:00
cdai2
e1030fc97d X87: Move Maps' back pointers from "transitions" to "constructor" field.
port affcfaf428 (r26835).

original commit message:

  Move Maps' back pointers from "transitions" to "constructor" field

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26904}
2015-02-27 07:03:33 +00:00
cdai2
cd87f25a2e X87: Stop using HeapType in IC and Crankshaft.
port 119cb56617 (r26696).

original commit message:

  Stop using HeapType in IC and Crankshaft

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26903}
2015-02-27 07:02:36 +00:00
svenpanne
5d4c76eae7 Test StringLengthStub generation via TurboFan.
For now we just use the RawMachineAssembler, this will be changed
later to use the whole TurboFan pipeline.

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

Cr-Commit-Position: refs/heads/master@{#26902}
2015-02-27 06:56:59 +00:00
chunyang.dai
47913ba79c Add the dummy implementation for turbofan unsupported port.
This is introduced by acd9c46ca7 (r26691).

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26901}
2015-02-27 05:54:27 +00:00