bmeurer [Tue, 10 Feb 2015 09:04:17 +0000 (01:04 -0800)]
Add compile_commands.json to .gitignore.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
912653004
Cr-Commit-Position: refs/heads/master@{#26539}
chunyang.dai [Tue, 10 Feb 2015 08:55:58 +0000 (00:55 -0800)]
Fix the MachineSignature* parameters change for turbofan unsupported platform.
this issue is introduced by
30787d4e564efe7f85182bd5b1b99e9f40e265ca.
(https://codereview.chromium.org/
874693006).
original commit message:
Const-corrected some MachineSignature* parameters.
Recipe: Add "const" to RawMachineAssembler constructor, fix breakage.
BUG=
Review URL: https://codereview.chromium.org/
905283002
Cr-Commit-Position: refs/heads/master@{#26538}
Benedikt Meurer [Tue, 10 Feb 2015 07:51:28 +0000 (08:51 +0100)]
Ignore unsupport host architectures for binutils download.
BUG=v8:3880
LOG=n
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/
908173002
Cr-Commit-Position: refs/heads/master@{#26537}
bmeurer [Tue, 10 Feb 2015 07:26:59 +0000 (23:26 -0800)]
[linux] Improve link time with Chromium-bundled binutils.
Also enabled concurrent linking with gold on Linux.
Mostly copy and paste from Chromium with customization for
V8 where necessary.
BUG=v8:3880
LOG=n
Review URL: https://codereview.chromium.org/
896703003
Cr-Commit-Position: refs/heads/master@{#26536}
akos.palfi [Tue, 10 Feb 2015 04:02:18 +0000 (20:02 -0800)]
MIPS: [turbofan] Initial support for Switch.
Port
feb2890711e8072a9550abb89621929816fc9699
Original commit message:
Adds Switch and Case operators to TurboFan and handles them
appropriately in instruction selection and code generation.
BUG=
Review URL: https://codereview.chromium.org/
896973005
Cr-Commit-Position: refs/heads/master@{#26535}
balazs.kilvady [Mon, 9 Feb 2015 20:49:46 +0000 (12:49 -0800)]
MIPS: Assembler support for internal references.
Port
49cbe537e715c960fb9773af2e240133726f465b
BUG=
Review URL: https://codereview.chromium.org/
911623003
Cr-Commit-Position: refs/heads/master@{#26534}
chunyang.dai [Mon, 9 Feb 2015 18:43:09 +0000 (10:43 -0800)]
Add dummy implementation for turbofan unsupported platform.
This function is defined in
feb2890711e8072a9550abb89621929816fc9699.
(https://codereview.chromium.org/
892513003).
original commit message:
[turbofan] Initial support for Switch.
Adds Switch and Case operators to TurboFan and handles them
appropriately in instruction selection and code generation.
BUG=
Review URL: https://codereview.chromium.org/
902943005
Cr-Commit-Position: refs/heads/master@{#26533}
jochen [Mon, 9 Feb 2015 16:25:47 +0000 (08:25 -0800)]
Add a flag to over approximate the weak closure during GC
BUG=v8:3862
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
894703002
Cr-Commit-Position: refs/heads/master@{#26532}
yangguo [Mon, 9 Feb 2015 15:19:26 +0000 (07:19 -0800)]
Add DCHECKs to back reference deserialization.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N
Review URL: https://codereview.chromium.org/
909493002
Cr-Commit-Position: refs/heads/master@{#26531}
jochen [Mon, 9 Feb 2015 15:15:29 +0000 (07:15 -0800)]
Introduce a compile method that takes context extensions
BUG=chromium:456192
R=yangguo@chromium.org
LOG=y
Review URL: https://codereview.chromium.org/
910683002
Cr-Commit-Position: refs/heads/master@{#26530}
yangguo [Mon, 9 Feb 2015 14:49:35 +0000 (06:49 -0800)]
Add payload checksum to code cache data.
R=jochen@chromium.org
BUG=chromium:441896
LOG=N
Review URL: https://codereview.chromium.org/
907013002
Cr-Commit-Position: refs/heads/master@{#26529}
dcarney [Mon, 9 Feb 2015 14:20:06 +0000 (06:20 -0800)]
[turbofan] make zone allocation of InstructionOperand explicit
BUG=
Review URL: https://codereview.chromium.org/
907873002
Cr-Commit-Position: refs/heads/master@{#26528}
titzer [Mon, 9 Feb 2015 14:11:14 +0000 (06:11 -0800)]
Remove some busy-OSR loops from tests using %OptimizeOsr().
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
908863002
Cr-Commit-Position: refs/heads/master@{#26527}
chunyang.dai [Mon, 9 Feb 2015 14:10:07 +0000 (06:10 -0800)]
X87: Externalize deoptimization reasons.
port
2491a639bf46da4bfdcf65329305ee3053aa5fec (r26463)
original commit message:
Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.
2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
BUG=
Review URL: https://codereview.chromium.org/
867243005
Cr-Commit-Position: refs/heads/master@{#26526}
mstarzinger [Mon, 9 Feb 2015 13:13:15 +0000 (05:13 -0800)]
Remove dependency on v8.h from TurboFan.
R=bmeurer@chromium.org
TEST=presubmit
Review URL: https://codereview.chromium.org/
905293002
Cr-Commit-Position: refs/heads/master@{#26525}
dcarney [Mon, 9 Feb 2015 13:02:41 +0000 (05:02 -0800)]
[turbofan] remove one level of indirection in phi inputs
BUG=
Review URL: https://codereview.chromium.org/
910753002
Cr-Commit-Position: refs/heads/master@{#26524}
titzer [Mon, 9 Feb 2015 12:47:31 +0000 (04:47 -0800)]
Make it easier to test OSR with %OptimizeOsr() runtime call.
This call triggers OSR for the current function. And also allows explicitly testing OSR on the top-level code.
R=mstarzinger@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
906243002
Cr-Commit-Position: refs/heads/master@{#26523}
dcarney [Mon, 9 Feb 2015 11:33:36 +0000 (03:33 -0800)]
add support for all can read interceptors
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
906463002
Cr-Commit-Position: refs/heads/master@{#26522}
bmeurer [Mon, 9 Feb 2015 10:43:56 +0000 (02:43 -0800)]
[x64] Fix strict aliasing error with GCC.
BUG=v8:3872
LOG=n
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/
898953003
Cr-Commit-Position: refs/heads/master@{#26521}
cdai2 [Mon, 9 Feb 2015 10:27:16 +0000 (18:27 +0800)]
X87: Remove the obsolete OverwriteMode optimization.
port
634b0f20f4bbdad305c87fd8e196f4c05efbde1f (r26454).
original commit message:
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
880743005
Cr-Commit-Position: refs/heads/master@{#26520}
cdai2 [Mon, 9 Feb 2015 10:24:36 +0000 (18:24 +0800)]
X87: Fix assertion in full codegen for holed 'this'
port
275e088abec213aa0be3eef748926e4be2c5c79f (r26423)
original commit message:
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/
907853002
Cr-Commit-Position: refs/heads/master@{#26519}
dcarney [Mon, 9 Feb 2015 09:50:06 +0000 (01:50 -0800)]
fix transition of typedarrays in ics
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
904423002
Cr-Commit-Position: refs/heads/master@{#26518}
cdai2 [Mon, 9 Feb 2015 09:29:04 +0000 (17:29 +0800)]
X87: Retry "Use a WeakCell in the CallIC type vector."
port
6fc97a19653e03a891d3cd397069d5a10b9ab325 (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}
yangguo [Mon, 9 Feb 2015 09:04:45 +0000 (01:04 -0800)]
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}
bmeurer [Mon, 9 Feb 2015 08:56:01 +0000 (00:56 -0800)]
[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}
cdai2 [Mon, 9 Feb 2015 08:49:24 +0000 (16:49 +0800)]
X87: Introduce LanguageMode, drop StrictMode.
port
c7851da4aefb644ab198ead1fa284932fd424797 (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}
akos.palfi [Mon, 9 Feb 2015 08:11:03 +0000 (00:11 -0800)]
Fix build with GCC 4.6.
Fix build with GCC 4.6 after
158a87659f02ad4d5e41d2dc19eec1f0f4ded41f.
BUG=
Review URL: https://codereview.chromium.org/
908713002
Cr-Commit-Position: refs/heads/master@{#26513}
cdai2 [Mon, 9 Feb 2015 08:05:24 +0000 (16:05 +0800)]
X87: new classes: special construct stub for derived classs and TDZ for `this`.
port
6f97a4948f1495a9b9d60b7f495d0e0efeaa1006 (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}
cdai2 [Mon, 9 Feb 2015 07:59:41 +0000 (15:59 +0800)]
X87: Super Constructor Calls need to use a vector slot, not an ic slot.
port
64f81870ee0bc51a32620be8face35e7cbd0da92 (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}
ben [Mon, 9 Feb 2015 07:00:32 +0000 (23:00 -0800)]
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}
Yang Guo [Mon, 9 Feb 2015 06:56:29 +0000 (07:56 +0100)]
Add StrongLoop, Inc. to AUTHORS.
TBR=marja@chromium.org
Review URL: https://codereview.chromium.org/
891373003
Cr-Commit-Position: refs/heads/master@{#26509}
cdai2 [Mon, 9 Feb 2015 06:33:40 +0000 (14:33 +0800)]
X87: Megamorphic KeyedLoadIC needs special handling for vector ics
port
16843e239d95f5e8eaaa06d2a0a6e371298fe11f (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}
chunyang.dai [Mon, 9 Feb 2015 06:08:42 +0000 (22:08 -0800)]
X87: Reland "Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port
c65ae4f10c7273956e88db433f626b26a1377caf (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}
cdai2 [Mon, 9 Feb 2015 05:18:28 +0000 (13:18 +0800)]
X87: Continue learning for calls in crankshaft.
port
7d363783e14433032a4e8dd426fe0e27d1637fe5.
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}
chunyang.dai [Sat, 7 Feb 2015 09:31:08 +0000 (01:31 -0800)]
X87: Add MEGAMORPHIC state support for KeyedLoadIC
port
491eb81780873aafd4d7f6638d20f26839383c68 (r26345)
BUG=
Review URL: https://codereview.chromium.org/
891203003
Cr-Commit-Position: refs/heads/master@{#26505}
chunyang.dai [Sat, 7 Feb 2015 09:09:48 +0000 (01:09 -0800)]
X87: Initial switch to Chromium-style CHECK_* and DCHECK_* macros
port
0deaa4b629faeae6832046c294dc7c034a0a6653 (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}
chunyang.dai [Sat, 7 Feb 2015 08:43:40 +0000 (00:43 -0800)]
X87: fix performance regression on intel call api stubs
port
b18ad510798d3a5e75f6b68656d8f8826571e782 (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}
chunyang.dai [Sat, 7 Feb 2015 07:52:17 +0000 (23:52 -0800)]
X87: Use a trampoline stub to load the type feedback vector for CallICs
port
2a567faa3e7242359e29c63f8dc8c18104af0610 (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}
cdai2 [Sat, 7 Feb 2015 06:21:53 +0000 (14:21 +0800)]
X87: Remove the dependency of Zone on Isolate
port
c7b09aac317dd810d29b82061973199b80363b65 (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}
cdai2 [Sat, 7 Feb 2015 06:20:27 +0000 (14:20 +0800)]
X87: new classes: change semantics of super(...) call and add new.target to construct stub.
port
22ce08ade63a9c4f28225db11a5b5d2726c5a8e7 (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}
v8-autoroll [Sat, 7 Feb 2015 04:24:55 +0000 (20:24 -0800)]
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}
arv [Fri, 6 Feb 2015 23:26:18 +0000 (15:26 -0800)]
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}
arv [Fri, 6 Feb 2015 18:04:11 +0000 (10:04 -0800)]
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}
adamk [Fri, 6 Feb 2015 17:52:20 +0000 (09:52 -0800)]
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}
loislo [Fri, 6 Feb 2015 16:50:56 +0000 (08:50 -0800)]
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}
marja [Fri, 6 Feb 2015 15:58:36 +0000 (07:58 -0800)]
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}
titzer [Fri, 6 Feb 2015 15:56:58 +0000 (07:56 -0800)]
[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}
ishell [Fri, 6 Feb 2015 15:50:31 +0000 (07:50 -0800)]
Temporarily disable double fields unboxing.
Review URL: https://codereview.chromium.org/
893843004
Cr-Commit-Position: refs/heads/master@{#26492}
jochen [Fri, 6 Feb 2015 15:36:08 +0000 (07:36 -0800)]
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}
yangguo [Fri, 6 Feb 2015 15:20:40 +0000 (07:20 -0800)]
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}
titzer [Fri, 6 Feb 2015 15:19:33 +0000 (07:19 -0800)]
[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}
mstarzinger [Fri, 6 Feb 2015 15:07:15 +0000 (07:07 -0800)]
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}
cdai2 [Fri, 6 Feb 2015 14:59:06 +0000 (22:59 +0800)]
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}
bmeurer [Fri, 6 Feb 2015 12:48:15 +0000 (04:48 -0800)]
[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}
svenpanne [Fri, 6 Feb 2015 12:18:44 +0000 (04:18 -0800)]
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}
Dan Carney [Fri, 6 Feb 2015 12:07:48 +0000 (13:07 +0100)]
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}
dslomov [Fri, 6 Feb 2015 10:34:50 +0000 (02:34 -0800)]
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}
yangguo [Fri, 6 Feb 2015 09:54:58 +0000 (01:54 -0800)]
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}
dcarney [Fri, 6 Feb 2015 09:44:49 +0000 (01:44 -0800)]
cleanup api-natives a bit
R=verwaest@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
901923002
Cr-Commit-Position: refs/heads/master@{#26481}
danno [Fri, 6 Feb 2015 09:43:41 +0000 (01:43 -0800)]
Remove unused path in FieldIndex code
Review URL: https://codereview.chromium.org/
898283003
Cr-Commit-Position: refs/heads/master@{#26480}
dcarney [Fri, 6 Feb 2015 09:00:40 +0000 (01:00 -0800)]
[turbofan] Remove global InstructionOperand caches.
Review URL: https://codereview.chromium.org/
904693002
Cr-Commit-Position: refs/heads/master@{#26479}
bmeurer [Fri, 6 Feb 2015 08:51:39 +0000 (00:51 -0800)]
[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}
cdai2 [Fri, 6 Feb 2015 08:06:03 +0000 (16:06 +0800)]
X87: Double field values need sNaN -> qNaN canonicalization.
Fix the failure introduced by
0381acf7b32893f3ec8b097ec269d6743682905a (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}
Benedikt Meurer [Fri, 6 Feb 2015 07:39:25 +0000 (08:39 +0100)]
[arm] Assembler support for internal references.
BUG=v8:3872
LOG=n
R=verwaest@chromium.org
Committed: https://chromium.googlesource.com/v8/v8/+/
49cbe537e715c960fb9773af2e240133726f465b
Review URL: https://codereview.chromium.org/
887073007
Cr-Commit-Position: refs/heads/master@{#26476}
Benedikt Meurer [Fri, 6 Feb 2015 07:20:58 +0000 (08:20 +0100)]
[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}
v8-autoroll [Fri, 6 Feb 2015 06:00:26 +0000 (22:00 -0800)]
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}
akos.palfi [Thu, 5 Feb 2015 23:54:57 +0000 (15:54 -0800)]
MIPS64: Externalize deoptimization reasons.
Port
2491a639bf46da4bfdcf65329305ee3053aa5fec
BUG=
Review URL: https://codereview.chromium.org/
888143004
Cr-Commit-Position: refs/heads/master@{#26473}
Erik Arvidsson [Thu, 5 Feb 2015 23:34:16 +0000 (18:34 -0500)]
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}
michael_dawson [Thu, 5 Feb 2015 19:01:48 +0000 (11:01 -0800)]
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}
balazs.kilvady [Thu, 5 Feb 2015 17:17:29 +0000 (09:17 -0800)]
MIPS64: Perform receiver patching for sloppy mode in high-level IR.
Port
9e0865069fa53678d24def0f1e7828b5391f11d2
TEST=cctest/test-run-jscalls/ReceiverPatching
BUG=
Review URL: https://codereview.chromium.org/
904663003
Cr-Commit-Position: refs/heads/master@{#26470}
Dusan Milosavljevic [Thu, 5 Feb 2015 16:51:26 +0000 (17:51 +0100)]
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}
ulan [Thu, 5 Feb 2015 16:40:27 +0000 (08:40 -0800)]
Remove IC age from Code.
BUG=
Review URL: https://codereview.chromium.org/
879693004
Cr-Commit-Position: refs/heads/master@{#26468}
balazs.kilvady [Thu, 5 Feb 2015 16:36:21 +0000 (08:36 -0800)]
MIPS: Remove the obsolete OverwriteMode optimization.
Port
634b0f20f4bbdad305c87fd8e196f4c05efbde1f
BUG=
Review URL: https://codereview.chromium.org/
900253002
Cr-Commit-Position: refs/heads/master@{#26467}
dslomov [Thu, 5 Feb 2015 16:35:09 +0000 (08:35 -0800)]
Protect against uninitialized lexical variables at top-level.
R=rossberg@chromium.org
BUG=chromium:452510
LOG=Y
Review URL: https://codereview.chromium.org/
893993007
Cr-Commit-Position: refs/heads/master@{#26466}
ulan [Thu, 5 Feb 2015 15:25:26 +0000 (07:25 -0800)]
Fix Code::VerifyEmbeddedObjects.
BUG=
Review URL: https://codereview.chromium.org/
905473003
Cr-Commit-Position: refs/heads/master@{#26465}
mvstanton [Thu, 5 Feb 2015 15:10:57 +0000 (07:10 -0800)]
CallIC MISS handler doesn't need receiver.
Looking up and passing this argument is unnecessary.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
898013003
Cr-Commit-Position: refs/heads/master@{#26464}
loislo [Thu, 5 Feb 2015 14:51:45 +0000 (06:51 -0800)]
Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.
2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
BUG=452067
LOG=n
Committed: https://crrev.com/
c49820e45b57f128a98690940875c049f612dde6
Cr-Commit-Position: refs/heads/master@{#26434}
Committed: https://crrev.com/
ec42e002da03adb2db968dd5b7453341ddc59a5c
Cr-Commit-Position: refs/heads/master@{#26448}
Review URL: https://codereview.chromium.org/
874323003
Cr-Commit-Position: refs/heads/master@{#26463}
svenpanne [Thu, 5 Feb 2015 14:19:35 +0000 (06:19 -0800)]
Tiny simplification of FieldIndex::ForInObjectOffset.
Review URL: https://codereview.chromium.org/
884163004
Cr-Commit-Position: refs/heads/master@{#26462}
marja [Thu, 5 Feb 2015 14:16:54 +0000 (06:16 -0800)]
Split --harmony-unicode and --harmony-unicode-regexps.
This way we can ship \u{..} escapes in strings / identifiers before shipping /u
regexps.
BUG=
Review URL: https://codereview.chromium.org/
903703002
Cr-Commit-Position: refs/heads/master@{#26461}
marja [Thu, 5 Feb 2015 14:11:34 +0000 (06:11 -0800)]
Add strong mode.
It doesn't do anything for now, but it implies strict mode. Added tests to
test-parsing.cc to test that.
BUG=
Review URL: https://codereview.chromium.org/
898983002
Cr-Commit-Position: refs/heads/master@{#26460}
danno [Thu, 5 Feb 2015 13:16:48 +0000 (05:16 -0800)]
[turbofan]: Improved source position information
Make sure the initial graph is fully populated with source position information and automatically propagate that information down through newly allocated nodes during reduction passes in the most unobtrusive way that's currently possible.
Review URL: https://codereview.chromium.org/
897883002
Cr-Commit-Position: refs/heads/master@{#26459}
mstarzinger [Thu, 5 Feb 2015 12:29:24 +0000 (04:29 -0800)]
Fix try-finally for dead AST-branches in TurboFan.
R=jarin@chromium.org
TEST=mjsunit/regress/regress-crbug-455644
BUG=chromium:455644
LOG=N
Review URL: https://codereview.chromium.org/
880443004
Cr-Commit-Position: refs/heads/master@{#26458}
bmeurer [Thu, 5 Feb 2015 12:03:13 +0000 (04:03 -0800)]
Revert of Externalize deoptimization reasons. (patchset #7 id:120001 of https://codereview.chromium.org/
874323003/)
Reason for revert:
This CL breaks RelocInfo::INTERNAL_REFERENCE (and maybe others that come after DEOPT_REASON), which is currently (mostly) unused on tip-of-tree, but will be used for jump tables soon(ish) and should therefore work. It seems to be a problem with implicitly assumptions about the number of reloc info modes. Needs further investigation.
Original issue's description:
> Externalize deoptimization reasons.
>
> 1) The hardcoded strings were converted into DeoptReason enum.
>
> 2) Deopt comment were converted into a pair location and deopt reason entries so
> the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
>
> 3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
>
> BUG=452067
> LOG=n
>
> Committed: https://crrev.com/
c49820e45b57f128a98690940875c049f612dde6
> Cr-Commit-Position: refs/heads/master@{#26434}
>
> Committed: https://crrev.com/
ec42e002da03adb2db968dd5b7453341ddc59a5c
> Cr-Commit-Position: refs/heads/master@{#26448}
TBR=alph@chromium.org,mstarzinger@chromium.org,svenpanne@chromium.org,yurys@chromium.org,loislo@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=452067
Review URL: https://codereview.chromium.org/
900223002
Cr-Commit-Position: refs/heads/master@{#26457}
ishell [Thu, 5 Feb 2015 11:47:02 +0000 (03:47 -0800)]
Grokdump workaround for different layout of *_LIST structures written to minidumps on Mac.
Review URL: https://codereview.chromium.org/
902853002
Cr-Commit-Position: refs/heads/master@{#26456}
ulan [Thu, 5 Feb 2015 11:45:39 +0000 (03:45 -0800)]
Remove flush_monomorphic_ics flag.
Since v8:3629 is fixed, ICs and handlers do not retain objects.
Review URL: https://codereview.chromium.org/
880253007
Cr-Commit-Position: refs/heads/master@{#26455}
Benedikt Meurer [Thu, 5 Feb 2015 10:38:41 +0000 (11:38 +0100)]
Remove the obsolete OverwriteMode optimization.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
900193002
Cr-Commit-Position: refs/heads/master@{#26454}
jkummerow [Thu, 5 Feb 2015 10:28:05 +0000 (02:28 -0800)]
Fix HConstant(double, ...) constructor
It must always populate int32_value_, even if that's lossy, because other code (specifically, constant folding for truncating operations) relies on it.
BUG=v8:3865
LOG=y
Review URL: https://codereview.chromium.org/
897263002
Cr-Commit-Position: refs/heads/master@{#26453}
mstarzinger [Thu, 5 Feb 2015 09:51:53 +0000 (01:51 -0800)]
Correctly report some internal OOM conditions.
R=hpayer@chromium.org
BUG=chromium:454615
LOG=N
Review URL: https://codereview.chromium.org/
900793004
Cr-Commit-Position: refs/heads/master@{#26452}
yurys [Thu, 5 Feb 2015 09:40:13 +0000 (01:40 -0800)]
Add NativeWeakMap to v8.h
A new map wich references its keys weakly is added to v8.h. Internally it uses the same storage as JSWeakMap but doesn't depend on the JavaScript part of WeakMap implementation in weak-collection.js, hence it can be instantiated without entering any context.
BUG=chromium:437416
LOG=Y
Review URL: https://codereview.chromium.org/
900123003
Cr-Commit-Position: refs/heads/master@{#26451}
ulan [Thu, 5 Feb 2015 09:35:47 +0000 (01:35 -0800)]
Add a flag to track detached contexts.
When embedder detaches the global objects, its context must be garbage
collected eventually.
BUG=
Review URL: https://codereview.chromium.org/
898663005
Cr-Commit-Position: refs/heads/master@{#26450}
marja [Thu, 5 Feb 2015 07:54:24 +0000 (23:54 -0800)]
Scanner / Unicode decoding: use size_t instead of unsigned.
size_t is the correct data type for this purpose. Our APIs (in particular
ExternalSourceStream::GetMoreData) are already using it, and there were some
static_casts to convert between them.
This CL doesn't intend to fix all of V8, just the minimal sense-making part
around scanner character streams.
BUG=
Review URL: https://codereview.chromium.org/
864273005
Cr-Commit-Position: refs/heads/master@{#26449}
loislo [Thu, 5 Feb 2015 06:24:57 +0000 (22:24 -0800)]
Externalize deoptimization reasons.
1) The hardcoded strings were converted into DeoptReason enum.
2) Deopt comment were converted into a pair location and deopt reason entries so
the deopt reason tracking mode would less affect the size of the RelocInfo table and heap.
3) DeoptReason entry in RelocInfo reuses kCommentTag value and generates short entry in RelocInfo table.
BUG=452067
LOG=n
Committed: https://crrev.com/
c49820e45b57f128a98690940875c049f612dde6
Cr-Commit-Position: refs/heads/master@{#26434}
Review URL: https://codereview.chromium.org/
874323003
Cr-Commit-Position: refs/heads/master@{#26448}
Benedikt Meurer [Thu, 5 Feb 2015 04:58:25 +0000 (05:58 +0100)]
Revert "[turbofan] Make Factory::NewNumber() always return the minus_zero_value."
This reverts commit
f578d35ba8d6798afe45cd60f4f06bfa7e2ae6be because
(immutable) heap numbers are surprisingly mutable in V8. Someone else
might want to cleanup the mess, otherwise we'll just keep it this way.
TBR=jkummerow@chromium.org
BUG=chromium:454894
LOG=y
Review URL: https://codereview.chromium.org/
898973003
Cr-Commit-Position: refs/heads/master@{#26447}
v8-autoroll [Thu, 5 Feb 2015 04:23:51 +0000 (20:23 -0800)]
Update V8 DEPS.
Rolling v8/buildtools to
da0df3fdac6036e862addb1155a2d6c11b6c18d5
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
900793003
Cr-Commit-Position: refs/heads/master@{#26446}
Weiliang Lin [Thu, 5 Feb 2015 02:54:13 +0000 (10:54 +0800)]
x87: Use signaling NaN for holes in fixed double arrays.
Port
9eace97bbaab72962c0fda62e5f9011a10604d0d
BUG=
R=chunyang.dai@intel.com
Review URL: https://codereview.chromium.org/
895473002
Cr-Commit-Position: refs/heads/master@{#26445}
paul.lind [Wed, 4 Feb 2015 21:28:43 +0000 (13:28 -0800)]
Revert "MIPS:[turbofan] Improve unordered comparisons for boolean materialization."
Reason for revert:
Fails mjsunit/asm/embenchen/box2d
BUG=
Review URL: https://codereview.chromium.org/
893993003
Cr-Commit-Position: refs/heads/master@{#26444}
paul.lind [Wed, 4 Feb 2015 21:27:34 +0000 (13:27 -0800)]
MIPS: Calls to the CallIC miss handler looked up the receiver incorrectly.
Port
13b97b6214d8448c568d2e547e4a04c5fb468f5d
Original commit message:
On platforms that don't push the return address on the stack at time of call, there was an error.
BUG=
Review URL: https://codereview.chromium.org/
864713003
Cr-Commit-Position: refs/heads/master@{#26443}
caitpotter88 [Wed, 4 Feb 2015 21:05:33 +0000 (13:05 -0800)]
templates: Don't check IsLineTerminator() if character is negative
BUG=455212
LOG=N
R=arv@chromium.org
Review URL: https://codereview.chromium.org/
902703002
Cr-Commit-Position: refs/heads/master@{#26442}
arv [Wed, 4 Feb 2015 20:44:01 +0000 (12:44 -0800)]
Fix issue with multiple properties and emit store.
We used to have a parse error for conflicting property keys. This check
was removed to match ES6 (SpiderMonkey & Chakra already made this change).
Since this check was removed we ended up with a few new cases when
generating code. For example, accessors always generated code even if
those should have been shadowed by a data property.
BUG=v8:3856
LOG=Y
R=adamk, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
895693002
Cr-Commit-Position: refs/heads/master@{#26441}
arv [Wed, 4 Feb 2015 18:22:23 +0000 (10:22 -0800)]
Add macro for getting a PropertyAttributes for the runtime functions
Motivation: Cleanup
BUG=None
R=adamk
LOG=N
Review URL: https://codereview.chromium.org/
897633003
Cr-Commit-Position: refs/heads/master@{#26440}