Commit Graph

21159 Commits

Author SHA1 Message Date
cdai2
7280426acb X87: Retry "Use a WeakCell in the CallIC type vector."
port 6fc97a1965 (r26420)

original commit message:

  Retry "Use a WeakCell in the CallIC type vector."

  The first try failed because I needed to make a better distinction
  between clearing ICs according to policy at GC time or unconditional
  clearing (say, via %ClearFunctionTypeFeedback).

  It was also blocked by an issue in super constructor calls.
  This fix (https://codereview.chromium.org/892113002/) needs to land
  before checking in this CL.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26517}
2015-02-09 09:29:45 +00:00
yangguo
161efc42bf Correctly clean up natives sources on tear down.
R=ulan@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26516}
2015-02-09 09:04:57 +00:00
bmeurer
feb2890711 [turbofan] Initial support for Switch.
Adds Switch and Case operators to TurboFan and handles them
appropriately in instruction selection and code generation.

BUG=v8:3872
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26515}
2015-02-09 08:56:12 +00:00
cdai2
4ee5161962 X87: Introduce LanguageMode, drop StrictMode.
port c7851da4ae (r26419)

original commit message:

  Introduce LanguageMode, drop StrictMode.

  This enables adding more language modes in the future.

  For maximum flexibility, LanguageMode is a bitmask, so we're not restricted to
  use a sequence of language modes which are progressively stricter, but we can
  express the language mode as combination of features.

  For now, LanguageMode can only be "sloppy" or "strict", and there are
  STATIC_ASSERTS in places which need to change when more modes are added.

  LanguageMode is a bit like the old LanguageMode when "extended" mode was still
  around (see https://codereview.chromium.org/8417035 and
  https://codereview.chromium.org/181543002 ) except that it's transmitted through
  all the layers (there's no StrictModeFlag).

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26514}
2015-02-09 08:50:08 +00:00
akos.palfi
525c1794f2 Fix build with GCC 4.6.
Fix build with GCC 4.6 after 158a87659f.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26513}
2015-02-09 08:11:21 +00:00
cdai2
91d9054350 X87: new classes: special construct stub for derived classs and TDZ for this.
port 6f97a4948f (r26409)

original commit message:

   new classes: special construct stub for derived classs and TDZ for `this`.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26512}
2015-02-09 08:06:10 +00:00
cdai2
e10291d843 X87: Super Constructor Calls need to use a vector slot, not an ic slot.
port 64f81870ee (r26414)

original commit message:

  Super Constructor Calls need to use a vector slot, not an ic slot.

  The Ast Call node is accustomed to using a vector IC slot for the
  cases when it uses a CallIC. The super constructor work alters this
  somewhat by using a CallConstructStub instead, however the
  CallConstructStub expects a vector slot and not a vector ic slot.
  This distinction needs to be maintained because slots and ic slots
  have different clearing strategies and are handled differently.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26511}
2015-02-09 08:00:29 +00:00
ben
a02d97e342 Fix --max_old_space_size=4096 integer overflow.
BUG=v8:3857
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26510}
2015-02-09 07:01:02 +00:00
Yang Guo
22dd076478 Add StrongLoop, Inc. to AUTHORS.
TBR=marja@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26509}
2015-02-09 06:56:48 +00:00
cdai2
b2e15510a8 X87: Megamorphic KeyedLoadIC needs special handling for vector ics
port 16843e239d (r26381)

original commit message:

  Megamorphic KeyedLoadIC needs special handling for vector ics.

  When --vector-ics is true, we still tail-call to the hand-written
  megamorphic KeyedLoadIC (formerly "generic"). Now that this code uses
  the megamorphic cache, it needs to deal properly with the vector and
  slot registers. Achieve this with a sentinel vectors/slot combo.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26508}
2015-02-09 06:34:31 +00:00
chunyang.dai
13d6a96a8f X87: Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port c65ae4f10c (r26346).

   fix one spelling error introduced by this CL.

original commit message:
  Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros.".

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26507}
2015-02-09 06:08:58 +00:00
cdai2
f50a556bd0 X87: Continue learning for calls in crankshaft.
port 7d363783e1.

original commit message:

  Continue learning for calls in crankshaft.

  The type feedback vector makes this easy to do.
  This is a re-land of https://codereview.chromium.org/868453005/
  with a fix for the DCHECK failure.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26506}
2015-02-09 05:19:21 +00:00
chunyang.dai
6a66a78d70 X87: Add MEGAMORPHIC state support for KeyedLoadIC
port 491eb81780 (r26345)

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26505}
2015-02-07 09:31:18 +00:00
chunyang.dai
30e02390f1 X87: Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port 0deaa4b629 (r26340)

     (code change in full-codegen-x87.cc is covered by r26340 ).

original commit message:

   Initial switch to Chromium-style CHECK_* and DCHECK_* macros.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26504}
2015-02-07 09:10:00 +00:00
chunyang.dai
db379e19c8 X87: fix performance regression on intel call api stubs
port b18ad51079 (r26291)

original commit message:

  additionally, make the interface match the JSFunction interface

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26503}
2015-02-07 08:43:57 +00:00
chunyang.dai
27361ec6c8 X87: Use a trampoline stub to load the type feedback vector for CallICs
port 2a567faa3e (r26290)

original commit message:

  Use a trampoline stub to load the type feedback vector for CallICs.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26502}
2015-02-07 07:52:37 +00:00
cdai2
3c56b02674 X87: Remove the dependency of Zone on Isolate
port c7b09aac31 (r26252)

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

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26501}
2015-02-07 06:22:47 +00:00
cdai2
bd4476a623 X87: new classes: change semantics of super(...) call and add new.target to construct stub.
port 22ce08ade6 (r26227)
original commit message:

  new classes: change semantics of super(...) call and add new.target to construct stub.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26500}
2015-02-07 06:21:21 +00:00
v8-autoroll
b9e15ea3aa Update V8 DEPS.
Rolling v8/tools/clang to 5489bbf01a5292a6c44d4cad7875ba2cb4ac975b

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26499}
2015-02-07 04:25:04 +00:00
arv
8a809a9c86 Rename ParseSourceElements in preparser too
BUG=None
R=adamk
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26498}
2015-02-06 23:26:35 +00:00
arv
64abe65210 Allow eval and arguments as property names
We incorrectly disallowed eval and arguments in accessor and method
names. This was because we checked the name inside the
ParseFunctionLiteral. We now flag accessors so that lazy parsing of
these functions are treated correctly.

BUG=v8:1984
R=adamk, dslomov@chromium.org
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26497}
2015-02-06 18:04:21 +00:00
adamk
70079dab13 Add basic compilation support for modules
This adds an "experimental" API hook (v8::ScriptCompiler::CompileModule)
allowing compilation of modules. The code gen is incredibly basic: the
module body is represented by a Block in the AST. But this at least gets
more of the pipeline working, and opens the door to writing mjsunit tests
(once d8 is modified to support module compilation).

BUG=v8:1569
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26496}
2015-02-06 17:52:38 +00:00
loislo
fb73392bfd Simplify cpu-profiler test code with help of wrappers.
BTW: a few fixes for string comparison

BUG=none
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26495}
2015-02-06 16:51:07 +00:00
marja
5c56665059 PreParser / Parser consistency: Make PreParser aware of Zone and AstValueFactory.
Previously it just had hacks to have NULLs instead of them and pretended to know
nothing about Zone. The hacks provide no real benefit (probably historically
based on some weird misconception about the relationship between Zone and
Isolate), and make it harder for the PreParser to start to know more about
variables and scoping.

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26494}
2015-02-06 15:58:47 +00:00
titzer
d9892bbd5a [turbofan] OSR loops assign all local variables.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26493}
2015-02-06 15:57:12 +00:00
ishell
51c59ede18 Temporarily disable double fields unboxing.
Review URL: https://codereview.chromium.org/893843004

Cr-Commit-Position: refs/heads/master@{#26492}
2015-02-06 15:50:39 +00:00
jochen
0c43274394 Check that we're called on a valid heap during idle notifications
BUG=chromium:425035
R=dcarney@chromium.org
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26491}
2015-02-06 15:36:21 +00:00
yangguo
7f4d207c8b Add hash fields to code cache header.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26490}
2015-02-06 15:20:52 +00:00
titzer
c6c1d8ffd6 [turbofan] Fix loop analysis bug with certain phi structures.
R=mstarzinger@chromium.org
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26489}
2015-02-06 15:19:51 +00:00
mstarzinger
c699a87be9 Make the Linkage::NeedsFrameState list more intuitive.
R=jarin@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26488}
2015-02-06 15:07:24 +00:00
cdai2
2b0427a912 x87: currently Turbofan is not supported by X87 so this test case is disabled.
BUG=
R=mstarzinger@chromium.org, weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26487}
2015-02-06 14:59:54 +00:00
bmeurer
008f4732f7 [x64] Assembler support for internal references and RIP relative addressing.
R=dcarney@chromium.org
BUG=v8:3872
LOG=n

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

Cr-Commit-Position: refs/heads/master@{#26486}
2015-02-06 12:48:52 +00:00
svenpanne
30787d4e56 Const-corrected some MachineSignature* parameters.
Recipe: Add "const" to RawMachineAssembler constructor, fix breakage.

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

Cr-Commit-Position: refs/heads/master@{#26485}
2015-02-06 12:18:51 +00:00
Dan Carney
878963a8a5 split interceptor tests off of test-api
BUG=
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26484}
2015-02-06 12:08:07 +00:00
dslomov
158a87659f new classes: assert that constructors are not callable and rewrite 'return;'
R=arv@chromium.org
BUG=v8:3834
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26483}
2015-02-06 10:35:13 +00:00
yangguo
a44511d413 Allocate typed array for rempio2 result.
R=svenpanne@chromium.org
BUG=chromium:441896
LOG=N

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

Cr-Commit-Position: refs/heads/master@{#26482}
2015-02-06 09:55:07 +00:00
dcarney
e64810b5a5 cleanup api-natives a bit
R=verwaest@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26481}
2015-02-06 09:44:58 +00:00
danno
6efd03c434 Remove unused path in FieldIndex code
Review URL: https://codereview.chromium.org/898283003

Cr-Commit-Position: refs/heads/master@{#26480}
2015-02-06 09:43:59 +00:00
dcarney
996fa7d36e [turbofan] Remove global InstructionOperand caches.
Review URL: https://codereview.chromium.org/904693002

Cr-Commit-Position: refs/heads/master@{#26479}
2015-02-06 09:00:50 +00:00
bmeurer
5c119485b4 [ia32] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=dcarney@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26478}
2015-02-06 08:51:51 +00:00
cdai2
a3ac322a2a X87: Double field values need sNaN -> qNaN canonicalization.
Fix the failure introduced by 0381acf7b3 (r26213).

  When storing Double field to external double array, we need to do special
  qNaN --> sNan recovery on X87 port.

BUG=
R=weiliang.lin@intel.com

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

Cr-Commit-Position: refs/heads/master@{#26477}
2015-02-06 08:06:59 +00:00
Benedikt Meurer
5d72955afc [arm] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=verwaest@chromium.org

Committed: 49cbe537e7

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

Cr-Commit-Position: refs/heads/master@{#26476}
2015-02-06 07:39:48 +00:00
Benedikt Meurer
49cbe537e7 [arm] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=verwaest@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26475}
2015-02-06 07:21:23 +00:00
v8-autoroll
39439935a8 Update V8 DEPS.
Rolling v8/tools/clang to 6f9d79914087cffd820021c3bb1155ad44f4b435

TBR=machenbach@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26474}
2015-02-06 06:00:41 +00:00
akos.palfi
1ffaf13b2d MIPS64: Externalize deoptimization reasons.
Port 2491a639bf

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26473}
2015-02-05 23:55:15 +00:00
Erik Arvidsson
b67b3c5401 Accessor functions should have no prototype property
This also removes some convenience functions that were not used.

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

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

Cr-Commit-Position: refs/heads/master@{#26472}
2015-02-05 23:34:28 +00:00
michael_dawson
308d913a92 Contribution of PowerPC port (continuation of 422063005) - PPC dir update
Contribution of PowerPC port (continuation of 422063005, 817143002 and 866843003)
This patch brings the ppc directories up to date with our repo. We have
removed 5 individual optimizations which require changes in both the ppc and common
directories so they can be more easily reviewed on their own in subsequent patches.

Subsequent patches will cover:
- individual optimizations for PPC (5)
- remaining AIX changes not resolved by 4.8 compiler (4.8 is only recently available
for AIX)
- incremental updates required to ppc directories due to platform specific changes
made in google repos while we complete the above steps.

With the update there are still some timeouts seen when run in simulated mode which
may be a result of the missing optimizations.  Once we have the optimizations in
we will review the simulation results and address/exclude tests as necessary so that
the simulated runs are clean.

	new file:   src/compiler/ppc/code-generator-ppc.cc
	new file:   src/compiler/ppc/instruction-codes-ppc.h
	new file:   src/compiler/ppc/instruction-selector-ppc.cc
	new file:   src/compiler/ppc/linkage-ppc.cc
	modified:   src/ic/ppc/handler-compiler-ppc.cc
	modified:   src/ic/ppc/ic-compiler-ppc.cc
	modified:   src/ic/ppc/ic-ppc.cc
	modified:   src/ic/ppc/stub-cache-ppc.cc
	modified:   src/ppc/assembler-ppc.cc
	modified:   src/ppc/assembler-ppc.h
	modified:   src/ppc/builtins-ppc.cc
	modified:   src/ppc/code-stubs-ppc.cc
	modified:   src/ppc/code-stubs-ppc.h
	modified:   src/ppc/codegen-ppc.cc
	modified:   src/ppc/constants-ppc.h
	modified:   src/ppc/deoptimizer-ppc.cc
	modified:   src/ppc/disasm-ppc.cc
	modified:   src/ppc/full-codegen-ppc.cc
	modified:   src/ppc/interface-descriptors-ppc.cc
	modified:   src/ppc/lithium-codegen-ppc.cc
	modified:   src/ppc/lithium-codegen-ppc.h
	modified:   src/ppc/lithium-ppc.cc
	modified:   src/ppc/lithium-ppc.h
	modified:   src/ppc/macro-assembler-ppc.cc
	modified:   src/ppc/macro-assembler-ppc.h
	modified:   src/ppc/regexp-macro-assembler-ppc.cc
	modified:   src/ppc/regexp-macro-assembler-ppc.h
	modified:   src/ppc/simulator-ppc.cc
	modified:   src/ppc/simulator-ppc.h
	new file:   test/unittests/compiler/ppc/instruction-selector-ppc-unittest.cc

R=danno@chromium.org, svenpanne@chromium.org

BUG=

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

Cr-Commit-Position: refs/heads/master@{#26471}
2015-02-05 19:02:07 +00:00
balazs.kilvady
0d035dc259 MIPS64: Perform receiver patching for sloppy mode in high-level IR.
Port 9e0865069f

TEST=cctest/test-run-jscalls/ReceiverPatching
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26470}
2015-02-05 17:17:43 +00:00
Dusan Milosavljevic
c03a5ca12c MIPS:[turbofan] Reland "Improve unordered comparisons for boolean materialization.".
BUG=
R=paul.lind@imgtec.com

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

Cr-Commit-Position: refs/heads/master@{#26469}
2015-02-05 16:51:34 +00:00
ulan
3cd88975a1 Remove IC age from Code.
BUG=

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

Cr-Commit-Position: refs/heads/master@{#26468}
2015-02-05 16:40:43 +00:00