ulan [Thu, 2 Jul 2015 16:29:17 +0000 (09:29 -0700)]
Make ARM compiler happy after
0ecd9e1bd
BUG=
TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/
1219863003
Cr-Commit-Position: refs/heads/master@{#29454}
mbrandy [Thu, 2 Jul 2015 15:50:56 +0000 (08:50 -0700)]
PPC: [turbofan] Enable tail calls for %_CallRuntime.
Port
1fa4285e1ce16cfadf8c40a0993491ec4e2bbbe0
Original commit message:
This involves:
- Enabling the tail call optimization reducer in all cases.
- Adding an addition flag to CallFunctionParameters to mark call sites
that can be tail-called enabled.
- Only set the tail-call flag for %_CallFunction.
R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1224533002
Cr-Commit-Position: refs/heads/master@{#29453}
jochen [Thu, 2 Jul 2015 15:42:35 +0000 (08:42 -0700)]
Remove usage of to-be-deprecated APIs from samples
BUG=v8:4134
R=vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1219133004
Cr-Commit-Position: refs/heads/master@{#29452}
ulan [Thu, 2 Jul 2015 15:41:29 +0000 (08:41 -0700)]
Replace reduce-memory mode in idle notification with delayed clean-up GC.
BUG=490559
LOG=NO
Review URL: https://codereview.chromium.org/
1218863002
Cr-Commit-Position: refs/heads/master@{#29451}
verwaest [Thu, 2 Jul 2015 15:27:19 +0000 (08:27 -0700)]
Avoid converting key to string for deleting of elements
Additionally rips out (now) unnecessary duplicate code in DefineArrayProperty.
BUG=
Review URL: https://codereview.chromium.org/
1224523002
Cr-Commit-Position: refs/heads/master@{#29450}
conradw [Thu, 2 Jul 2015 15:24:48 +0000 (08:24 -0700)]
[strong] Add test for strong load involving proxies
Keeping this CL separate in case there are more GC-stress problems.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1217543006
Cr-Commit-Position: refs/heads/master@{#29449}
conradw [Thu, 2 Jul 2015 15:23:40 +0000 (08:23 -0700)]
[strong] Add tests for loading from super, loading with access checks
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1219663009
Cr-Commit-Position: refs/heads/master@{#29448}
verwaest [Thu, 2 Jul 2015 14:38:37 +0000 (07:38 -0700)]
Distinguish slow from fast sloppy arguments
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1221713003
Cr-Commit-Position: refs/heads/master@{#29447}
ulan [Thu, 2 Jul 2015 14:37:23 +0000 (07:37 -0700)]
Fix memory-leak in default platform implementation of delayed tasks.
BUG=
Review URL: https://codereview.chromium.org/
1221083004
Cr-Commit-Position: refs/heads/master@{#29446}
jochen [Thu, 2 Jul 2015 14:22:57 +0000 (07:22 -0700)]
Only define V8_USE_EXTERNAL_SNAPSHOT_DATA if we actually use a snapshot
BUG=none
R=vogelheim@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1218153006
Cr-Commit-Position: refs/heads/master@{#29445}
verwaest [Thu, 2 Jul 2015 13:29:48 +0000 (06:29 -0700)]
Cleanup API property handling
BUG=v8:4137
LOG=n
Review URL: https://codereview.chromium.org/
1226473003
Cr-Commit-Position: refs/heads/master@{#29444}
ulan [Thu, 2 Jul 2015 13:28:36 +0000 (06:28 -0700)]
Remove redundant check in GCTracer::SampleAllocation.
BUG=
Review URL: https://codereview.chromium.org/
1213593004
Cr-Commit-Position: refs/heads/master@{#29443}
erikcorry [Thu, 2 Jul 2015 13:27:27 +0000 (06:27 -0700)]
Reland: Fix logic for incremental marking steps on tenured allocation
BUG=
Review URL: https://codereview.chromium.org/
1077153004
Cr-Commit-Position: refs/heads/master@{#29442}
Michael Achenbach [Thu, 2 Jul 2015 13:24:07 +0000 (15:24 +0200)]
Whitespace change to test build priorities.
Cr-Commit-Position: refs/heads/master@{#29441}
mstarzinger [Thu, 2 Jul 2015 09:22:46 +0000 (02:22 -0700)]
Prepare profiler test for try-catch being optimizable.
This is an adaptation of test-profile-generator/BailoutReason to when
try-catch statements are optimizable. They will no longer cause any
bailout reason to be reported.
R=yangguo@chromium.org
TEST=cctest/test-profile-generator/BailoutReason
Review URL: https://codereview.chromium.org/
1213113007
Cr-Commit-Position: refs/heads/master@{#29440}
ishell [Thu, 2 Jul 2015 09:05:39 +0000 (02:05 -0700)]
Remove deprecated v8::Object::TurnOnAccessCheck() from the V8 API.
The only right way to enable access checks is to install access check callbacks on an object template via v8::ObjectTemplate::SetAccessCheckCallbacks(). It does not make sense to enable access checks on an arbitrary object.
Review URL: https://codereview.chromium.org/
1217893012
Cr-Commit-Position: refs/heads/master@{#29439}
danno [Thu, 2 Jul 2015 09:04:31 +0000 (02:04 -0700)]
[turbofan] Inline %_FixedArrayGet intrinsic.
Review URL: https://codereview.chromium.org/
1223583003
Cr-Commit-Position: refs/heads/master@{#29438}
dcheng [Thu, 2 Jul 2015 07:25:48 +0000 (00:25 -0700)]
Fix some clang warnings with -Wmissing-braces in v8.
Clang warns if there are missing braces around a subobject
initializer. The most common idiom that triggers this is:
STRUCT s = {0};
if the first field of STRUCT is itself a struct. This can
be more simply written as:
STRUCT s = {};
which also prevents the warning from firing.
BUG=chromium:505297
LOG=n
Review URL: https://codereview.chromium.org/
1219233003
Cr-Commit-Position: refs/heads/master@{#29437}
danno [Thu, 2 Jul 2015 06:20:03 +0000 (23:20 -0700)]
[turbofan] Enable tail calls for %_CallRuntime.
This involves:
- Enabling the tail call optimization reducer in all cases.
- Adding an addition flag to CallFunctionParameters to mark call sites
that can be tail-called enabled.
- Only set the tail-call flag for %_CallFunction.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/
1216933011
Cr-Commit-Position: refs/heads/master@{#29436}
martyn.capewell [Thu, 2 Jul 2015 04:32:03 +0000 (21:32 -0700)]
[turbofan] Support cmp with shift/extend on ARM64.
Support 32-bit cmp with shift/extend by reusing the existing add/sub shift and
extend code.
Review URL: https://codereview.chromium.org/
1218103005
Cr-Commit-Position: refs/heads/master@{#29435}
chunyang.dai [Thu, 2 Jul 2015 04:27:17 +0000 (21:27 -0700)]
X87: [strong] Implement strong property access semantics.
port
7281f8015181736703d3663c9c570be537f008c1 (r29384)
Fix a bug in R29384.
original commit message:
Revert "Revert relanded strong property access CL"
Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.
This reverts commit
4ac7be56568f0ac71e7bf10e8bec33c33893e5b5.
BUG=
Review URL: https://codereview.chromium.org/
1210873007
Cr-Commit-Position: refs/heads/master@{#29434}
chunyang.dai [Thu, 2 Jul 2015 04:08:20 +0000 (21:08 -0700)]
X87: Make context register implicit for CallInterfaceDescriptors
port
7015fd20531ee8498352f82d626c78023a1f6857 (r29402)
original commit message:
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.
BUG=
Review URL: https://codereview.chromium.org/
1216543004
Cr-Commit-Position: refs/heads/master@{#29433}
chunyang.dai [Thu, 2 Jul 2015 04:02:33 +0000 (21:02 -0700)]
X87: [turbofan] Add CalleeSavedFPRegisters to CallDescriptor.
port
b4275a70eb1e6b6dc0f3c77b9be6bcfca3f80c20 (r29378)
original commit message:
This change makes possible to save and restore the FP registers
in the Prologue and Return parts for the CallAddress kind functions.
BUG=
Review URL: https://codereview.chromium.org/
1214573006
Cr-Commit-Position: refs/heads/master@{#29432}
v8-autoroll [Thu, 2 Jul 2015 03:26:02 +0000 (20:26 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
7fe225d77f307fdbe24695179a84336ef95c1253
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1225463002
Cr-Commit-Position: refs/heads/master@{#29431}
littledan [Wed, 1 Jul 2015 23:10:13 +0000 (16:10 -0700)]
Include Harmony Array/TypedArray methods unconditionally
Conditionally including Array and TypedArray methods seems to cause
a slowdown in V8 context creation, possibly due to the new code added.
BUG=chromium:504629
R=adamk@chromium.org
LOG=Y
Review URL: https://codereview.chromium.org/
1215863003
Cr-Commit-Position: refs/heads/master@{#29430}
erikcorry [Wed, 1 Jul 2015 17:42:15 +0000 (10:42 -0700)]
GC. Delay/avoid entering high promotion mode
R=hpayer@chromium.org
BUG=
Review URL: https://codereview.chromium.org/
1217813012
Cr-Commit-Position: refs/heads/master@{#29429}
adamk [Wed, 1 Jul 2015 17:20:48 +0000 (10:20 -0700)]
Remove unused is_class_scope bit from Scope and ScopeInfo
This was added in https://chromium.googlesource.com/v8/v8/+/
4a709dd65,
but the only check for it that remained in the final patch is inside
a DCHECK. It appears that the approach for checking use of class names
in methods evolved quite a bit over the review of the original patch.
Review URL: https://codereview.chromium.org/
1219993002
Cr-Commit-Position: refs/heads/master@{#29428}
verwaest [Wed, 1 Jul 2015 16:49:19 +0000 (09:49 -0700)]
Remove outdated comment
BUG=
Review URL: https://codereview.chromium.org/
1220883006
Cr-Commit-Position: refs/heads/master@{#29427}
binji [Wed, 1 Jul 2015 16:41:48 +0000 (09:41 -0700)]
Change d8 Worker API so it takes a string instead of a function.
This is more consistent with the DOM API, and is clearer w.r.t. which values
are available in the lexical environment of the Worker.
BUG=chromium:497295
R=jarin@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1218553004
Cr-Commit-Position: refs/heads/master@{#29426}
Djordje.Pesic [Wed, 1 Jul 2015 16:15:34 +0000 (09:15 -0700)]
MIPS: disabling rsqrt and recip for mips32r1
Disabling rsqrt and recip for mips32r1 in assembler, disassembler and simulator
Review URL: https://codereview.chromium.org/
1221663006
Cr-Commit-Position: refs/heads/master@{#29425}
Toon Verwaest [Wed, 1 Jul 2015 15:39:09 +0000 (17:39 +0200)]
Ensure we enable/disable the bootstrapping flag
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1213683005.
Cr-Commit-Position: refs/heads/master@{#29424}
verwaest [Wed, 1 Jul 2015 15:34:18 +0000 (08:34 -0700)]
Return this in Context::native_context if receiver is a native context.
Checking for native context is faster than checking for global object. Additionally it speeds up the case were it actually is the native context, while not slowing down the alternative case. The bootstrapper only needs to access the native context from the native context, so this avoids the expensive fallback.
BUG=
Review URL: https://codereview.chromium.org/
1214903017
Cr-Commit-Position: refs/heads/master@{#29423}
Toon Verwaest [Wed, 1 Jul 2015 15:33:22 +0000 (17:33 +0200)]
Use is_bootstrapping everywhere
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1220053002.
Cr-Commit-Position: refs/heads/master@{#29422}
mbrandy [Wed, 1 Jul 2015 14:21:04 +0000 (07:21 -0700)]
PPC: Make context register implicit for CallInterfaceDescriptors
Port
7015fd20531ee8498352f82d626c78023a1f6857
Original commit message:
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.
R=danno@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1218463004
Cr-Commit-Position: refs/heads/master@{#29421}
akos.palfi [Wed, 1 Jul 2015 14:19:57 +0000 (07:19 -0700)]
MIPS: Fix '[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.'
Fixes debug mode assertions.
TEST=cctest/test-run-machops/RunChangeUint32ToFloat64_B
BUG=
Review URL: https://codereview.chromium.org/
1211143003
Cr-Commit-Position: refs/heads/master@{#29420}
verwaest [Wed, 1 Jul 2015 14:18:50 +0000 (07:18 -0700)]
Micro-optimize lookupiterator: faster path for fast-mode objects
BUG=chromium:505998
LOG=n
Review URL: https://codereview.chromium.org/
1222543003
Cr-Commit-Position: refs/heads/master@{#29419}
Toon Verwaest [Wed, 1 Jul 2015 14:17:47 +0000 (16:17 +0200)]
Update tests to disable interceptors during bootstrapping
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/
1215593005.
Cr-Commit-Position: refs/heads/master@{#29418}
mstarzinger [Wed, 1 Jul 2015 13:43:36 +0000 (06:43 -0700)]
Fix CodeFlusher::ProcessOptimizedCodeMaps stale fields.
This makes sure that all pointer fields in an entry in the optimized
code map are considered weak, not just the code object. If just one
field of an entry dies, then the whole entry dies.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1217813013
Cr-Commit-Position: refs/heads/master@{#29417}
mbrandy [Wed, 1 Jul 2015 13:34:57 +0000 (06:34 -0700)]
PPC: Fix InstanceOfStub's inlined call site logic.
This change makes the patching logic less prone to errors in the
face of variable instruction mov sequences.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1213383003
Cr-Commit-Position: refs/heads/master@{#29416}
mstarzinger [Wed, 1 Jul 2015 12:29:27 +0000 (05:29 -0700)]
[turbofan] Support preserving of optimized code maps over GCs.
This extends the existing support for --noflush-optimized-code-cache
mechanism to the newly added context-independent code entry in the
optimized code map. Note that this machanism is still off by default.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1220883002
Cr-Commit-Position: refs/heads/master@{#29415}
verwaest [Wed, 1 Jul 2015 12:19:55 +0000 (05:19 -0700)]
Minor performance improvements to the LookupIterator
This change changes bootstrapping semantics for intercepted global objects. Unlike before, we'll now also call into the interceptor during bootstrapping. This affects properties loaded from within the runtime, such as global.Array and global.Symbol. The embedder will need to make sure that those values are the expected values during bootstrapping.
BUG=chromium:505998
LOG=n
Review URL: https://codereview.chromium.org/
1220813005
Cr-Commit-Position: refs/heads/master@{#29414}
chunyang.dai [Wed, 1 Jul 2015 12:05:17 +0000 (05:05 -0700)]
X87: [es6] Make new.target work in functions.
port
7a63bf77eb7610afdc1a968f7660781e5160ba8d (r29358).
original commit message:
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
BUG=
Review URL: https://codereview.chromium.org/
1217083004
Cr-Commit-Position: refs/heads/master@{#29413}
chunyang.dai [Wed, 1 Jul 2015 12:03:26 +0000 (05:03 -0700)]
X87: Unify the stack layout for construct frames.
port
876ae425980f67f489323671f13d2314b0ce0a91 (r29292).
original commit message:
The stack layout was different for different ports.
BUG=
Review URL: https://codereview.chromium.org/
1219823002
Cr-Commit-Position: refs/heads/master@{#29412}
chunyang.dai [Wed, 1 Jul 2015 11:59:39 +0000 (04:59 -0700)]
X87: VectorICs: Lithium support for vector-based stores.
port
8a3cf4ecef1fce76137270845604292bdbdadcd4 (r29310).
BUG=
Review URL: https://codereview.chromium.org/
1213373002
Cr-Commit-Position: refs/heads/master@{#29411}
chunyang.dai [Wed, 1 Jul 2015 11:47:01 +0000 (04:47 -0700)]
X87: Vector ICs: Like megamorphic keyed koads, use a dummy vector for stores.
port
9e7af9efc5857b3c7e23a77d257f3dfbea597753 (r29280).
original commit message:
It's useful for the megamorphic keyed store case to not require a
vector and slot as input. Analogous to the load case, we have a dummy
one-ic-slot vector to aid. Since the only kind of MISS is for
megamorphic cache stub failures, we don't need the real vector.
The reason is that megamorphic cache stub failures don't result in any
change to the type feedback vector state.
BUG=
Review URL: https://codereview.chromium.org/
1212653011
Cr-Commit-Position: refs/heads/master@{#29410}
chunyang.dai [Wed, 1 Jul 2015 11:39:06 +0000 (04:39 -0700)]
X87: [ic] Record call counts for monomorphic calls made with an IC.
port
c1a4f7477f03ebb0c6889bbf8ea6a4c928e0d413 (r29281).
original commit message:
The idea is that TurboFan can use this information for more intelligent
inlining.
BUG=
Review URL: https://codereview.chromium.org/
1213723005
Cr-Commit-Position: refs/heads/master@{#29409}
chunyang.dai [Wed, 1 Jul 2015 11:31:47 +0000 (04:31 -0700)]
X87: [turbofan] Add basic support for calling to (a subset of) C functions.
port
a58ba8d80179bf5b6b7245590c82e47fda8c8a5e (r29279).
original commit message:
This introduces some initial building blocks for calling out to
C/C++ functions directly from TurboFan generated code objects.
BUG=
Review URL: https://codereview.chromium.org/
1214903007
Cr-Commit-Position: refs/heads/master@{#29408}
chunyang.dai [Wed, 1 Jul 2015 11:29:00 +0000 (04:29 -0700)]
X87: change the float max/min operation when operands.
This CL fixes the following situations:
1, Operands are -0.0 or 0.0. it always return right value.
1, Operands contains NaN. it always return right value.
BUG=
Review URL: https://codereview.chromium.org/
1214893004
Cr-Commit-Position: refs/heads/master@{#29407}
chunyang.dai [Wed, 1 Jul 2015 11:27:54 +0000 (04:27 -0700)]
X87: Use big-boy Types to annotate interface descriptor parameters.
port
c019d7f498ce6fbac6659924e20ddb6c59aebeb8 (r29248).
original commit message:
Use big-boy Types to annotate interface descriptor parameters
- Thread Type::FunctionType through stubs and the TF pipeline.
- Augment Typer to decorate parameter nodes with types from
a Type::FunctionType associated with interface descriptors.
- Factor interface descriptors into platform-specific and
platform-independent components so that all descriptors share
a common Type::FunctionType for all platforms.
BUG=
Review URL: https://codereview.chromium.org/
1210463002
Cr-Commit-Position: refs/heads/master@{#29406}
mstarzinger [Wed, 1 Jul 2015 09:44:49 +0000 (02:44 -0700)]
Remove deprecated --incremental-code-compaction flag.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1216153004
Cr-Commit-Position: refs/heads/master@{#29405}
hablich [Wed, 1 Jul 2015 09:37:02 +0000 (02:37 -0700)]
[Release tools] Add instructions how to close the auto-roller.
R=machenbach@chromium.org
BUG=494641
LOG=N
NOTRY=true
Review URL: https://codereview.chromium.org/
1217173003
Cr-Commit-Position: refs/heads/master@{#29404}
mstarzinger [Wed, 1 Jul 2015 08:46:14 +0000 (01:46 -0700)]
Remove deprecated --flush-code-incrementally flag.
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/
1218003003
Cr-Commit-Position: refs/heads/master@{#29403}
danno [Wed, 1 Jul 2015 08:45:05 +0000 (01:45 -0700)]
Make context register implicit for CallInterfaceDescriptors
Up until now the context register was listed explicitly in each stub's
CallInterfaceDescriptor. This was problematic, because it was listed
first in the list of register parameters--which is fine for Crankshaft,
which is more or less built to handle the context as the first
parameter-- but not ideal for TurboFan, which adds the context at
the end of all function parameters. Now the context register is no
longer in the register list and can be handled appropriately by both
compilers. Specifically, this allows the FunctionType specified for
each CallInterfaceDescriptor to exactly match the parameter register
list.
Review URL: https://codereview.chromium.org/
1211333003
Cr-Commit-Position: refs/heads/master@{#29402}
bmeurer [Wed, 1 Jul 2015 08:12:33 +0000 (01:12 -0700)]
[crankshaft] Remove adventurous operator< for Handle<Map>.
This operator< overload is rather dangerous for handles. And we don't
actually need a std::set in the chunk builder, since duplicates are
automatically eliminated later when the code dependencies are committed.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1214573004
Cr-Commit-Position: refs/heads/master@{#29401}
yangguo [Wed, 1 Jul 2015 08:01:14 +0000 (01:01 -0700)]
Debugger: ensure that break points are set in code that contain debug break slots.
We now consistently ignore native and extension scripts for debugging. Only native scripts and extension scripts can disallow lazy compilation. So we can make sure that break points are only set to code that are compiled with debug break slots.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/
1216193002
Cr-Commit-Position: refs/heads/master@{#29400}
v8-autoroll [Wed, 1 Jul 2015 03:26:34 +0000 (20:26 -0700)]
Update V8 DEPS.
Rolling v8/third_party/icu to
1b697da5c2c0112e2b70e7e75d3e3d985f464a8f
TBR=machenbach@chromium.org
Review URL: https://codereview.chromium.org/
1217893007
Cr-Commit-Position: refs/heads/master@{#29399}
chunyang.dai [Wed, 1 Jul 2015 01:57:19 +0000 (18:57 -0700)]
X87: Do not add extra argument for new.target.
port
8196c28a94f62dec026f2b564ba81d690a4ed593 (r29238).
original commit message:
JSConstructStub for subclass constructors instead locates new.target in
a known location on the stack.
BUG=
Review URL: https://codereview.chromium.org/
1207613003
Cr-Commit-Position: refs/heads/master@{#29398}
chunyang.dai [Wed, 1 Jul 2015 01:52:01 +0000 (18:52 -0700)]
X87: Clean up JSConstructStub.
port
882055ff6a58f6b585575229f40f364e5f2a3ad0 (r29082).
The original CL covers part of X87 port. This CL addes the missing changes.
original commit message:
- fix truthfulness of comments
- use InitializeFieldsWithFiller more consistently
- use unsigned comparisons for pointers
No change in functionality intended.
Bonus: improve JavaScriptFrame::Print() for an enhanced debugging experience:
BUG=
Review URL: https://codereview.chromium.org/
1210153007
Cr-Commit-Position: refs/heads/master@{#29397}
adamk [Wed, 1 Jul 2015 00:27:15 +0000 (17:27 -0700)]
[es6] Ensure that for-in/of loops have a proper TDZ for their lexically-bound variables
The enumerable expression in a for-in/of loop is supposed to have a TDZ for any
lexically bound names in that loop (there can be more than one with destructuring).
This patch accomplishes this with an almost-correct desugaring. The only thing missing
is proper debugger support (the let declarations added by the desugaring, while invisible
to code due to shadowing, are visible to the debugger).
BUG=v8:4210
LOG=n
Review URL: https://codereview.chromium.org/
1218543003
Cr-Commit-Position: refs/heads/master@{#29396}
bradnelson [Tue, 30 Jun 2015 21:12:12 +0000 (14:12 -0700)]
Allow numeric literals to be checked for a decimal point.
The asm.js spec decides the type of numeric literals in several places
based on if they contain a ".".
http://asmjs.org/spec/latest/
Adding methods so that AST Literals can be checked for containg a dot.
Adding a cctest that this information is available.
LOG=N
BUG= https://code.google.com/p/v8/issues/detail?id=4203
TEST=test-parsing
R=rossberg@chromium.org,titzer@chromium.org
Review URL: https://codereview.chromium.org/
1201783003
Cr-Commit-Position: refs/heads/master@{#29395}
binji [Tue, 30 Jun 2015 20:22:39 +0000 (13:22 -0700)]
d8 Worker test of SharedArrayBuffer transferring
BUG=chromium:497295
R=jarin@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1216023003
Cr-Commit-Position: refs/heads/master@{#29394}
machenbach [Tue, 30 Jun 2015 20:15:43 +0000 (13:15 -0700)]
Revert of [test262-es6] Update to 2011-06-29 (patchset #1 id:1 of https://codereview.chromium.org/
1220793005/)
Reason for revert:
[Sheriff] Runner has some infra failures:
http://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/4020/steps/Test262-es6%20-%20no%20variants/logs/stdio
Original issue's description:
> [test262-es6] Update to 2011-06-29
>
> This includes one harness fix but introduces a few new failures. No
> new bugs exposed though.
>
> BUG=N
> LOG=N
> R=littledan@chromium.org, adamk@chromium.org
>
> Committed: https://crrev.com/
2e877628803f238dd33c3409413cd7778e36a2b6
> Cr-Commit-Position: refs/heads/master@{#29392}
TBR=littledan@chromium.org,adamk@chromium.org,arv@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=N
Review URL: https://codereview.chromium.org/
1212163008
Cr-Commit-Position: refs/heads/master@{#29393}
arv [Tue, 30 Jun 2015 18:58:21 +0000 (11:58 -0700)]
[test262-es6] Update to 2011-06-29
This includes one harness fix but introduces a few new failures. No
new bugs exposed though.
BUG=N
LOG=N
R=littledan@chromium.org, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1220793005
Cr-Commit-Position: refs/heads/master@{#29392}
mbrandy [Tue, 30 Jun 2015 18:57:13 +0000 (11:57 -0700)]
PPC: Fix constant pool overflow access in Get/SetRelocatedValue.
This resolves the mirror-object test failure.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1214903009
Cr-Commit-Position: refs/heads/master@{#29391}
machenbach [Tue, 30 Jun 2015 18:42:38 +0000 (11:42 -0700)]
Revert of [strong] Add tests for loading from proxy, super, with access checks (patchset #4 id:80001 of https://codereview.chromium.org/
1193633003/)
Reason for revert:
[Sheriff] Breaks gc stress:
http://build.chromium.org/p/client.v8/builders/V8%20GC%20Stress%20-%202/builds/3968
Original issue's description:
> [strong] Add tests for loading from proxy, super, with access checks
>
> Followup for https://codereview.chromium.org/
1168093002/
>
> These seem to already function correctly without the need for further runtime
> changes.
>
> There will be a final follow-up for interceptors.
>
> BUG=v8:3956
> LOG=N
>
> Committed: https://crrev.com/
ea4e568363f48955e7de6b538e559132e9899c86
> Cr-Commit-Position: refs/heads/master@{#29389}
TBR=rossberg@chromium.org,conradw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=v8:3956
Review URL: https://codereview.chromium.org/
1218123003
Cr-Commit-Position: refs/heads/master@{#29390}
conradw [Tue, 30 Jun 2015 17:13:08 +0000 (10:13 -0700)]
[strong] Add tests for loading from proxy, super, with access checks
Followup for https://codereview.chromium.org/
1168093002/
These seem to already function correctly without the need for further runtime
changes.
There will be a final follow-up for interceptors.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1193633003
Cr-Commit-Position: refs/heads/master@{#29389}
binji [Tue, 30 Jun 2015 16:48:58 +0000 (09:48 -0700)]
Fix cluster-fuzz found regression in d8 Workers
v8::Internal::List will DCHECK when indexing out of the array, even if just to
get the address, and the value is never used. So this construct will fail:
memcpy(p, &data[0], length);
When data is empty and length is 0.
BUG=chromium:505778
R=mstarzinger@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1216853003
Cr-Commit-Position: refs/heads/master@{#29388}
mstarzinger [Tue, 30 Jun 2015 16:47:04 +0000 (09:47 -0700)]
Fix bug when optimized code map is evicted.
This makes sure that both, the shared function info and it's optimized
code map get revisited when the code map is evicted from the flusher.
R=hpayer@chromium.org
TEST=mjsunit/debug-set-variable-value
Review URL: https://codereview.chromium.org/
14703009
Cr-Commit-Position: refs/heads/master@{#29387}
hpayer [Tue, 30 Jun 2015 16:28:59 +0000 (09:28 -0700)]
Disable zapping of code space.
BUG=
Review URL: https://codereview.chromium.org/
1214333002
Cr-Commit-Position: refs/heads/master@{#29386}
yangguo [Tue, 30 Jun 2015 16:27:49 +0000 (09:27 -0700)]
Use correct LookupIterator in CallSite::GetMethodName.
R=verwaest@chromium.org
BUG=chromium:505370
LOG=N
Review URL: https://codereview.chromium.org/
1218023002
Cr-Commit-Position: refs/heads/master@{#29385}
conradw [Tue, 30 Jun 2015 15:24:27 +0000 (08:24 -0700)]
[strong] Implement strong property access semantics
Revert "Revert relanded strong property access CL"
Regression issues should be solved. Initial patchset is the original, subsequent patchsets are the fixing modifications.
This reverts commit
4ac7be56568f0ac71e7bf10e8bec33c33893e5b5.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1199983002
Cr-Commit-Position: refs/heads/master@{#29384}
jochen [Tue, 30 Jun 2015 15:14:36 +0000 (08:14 -0700)]
Revert of Let GC select the collector when the external memory allocation limit is reached (patchset #1 id:1 of https://codereview.chromium.org/
1201993002/)
Reason for revert:
results in a scavenge storm if scavenge doesn't free enough memory
Original issue's description:
> Let GC select the collector when the external memory allocation limit is reached
>
> BUG=none
> R=hpayer@chromium.org
> LOG=n
>
> Committed: https://crrev.com/
93d6216099b60e95bc816bcc913f8f841ee795b6
> Cr-Commit-Position: refs/heads/master@{#29235}
TBR=hpayer@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=none
Review URL: https://codereview.chromium.org/
1215513004
Cr-Commit-Position: refs/heads/master@{#29383}
mbrandy [Tue, 30 Jun 2015 14:31:01 +0000 (07:31 -0700)]
PPC: Clean up copy args loop in Generate_JSConstructStubHelper.
R=dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1216073004
Cr-Commit-Position: refs/heads/master@{#29382}
conradw [Tue, 30 Jun 2015 14:21:51 +0000 (07:21 -0700)]
[strong] Implement strong mode semantics for the count operation.
Also fixes a crankshaft bug with strong implicit conversions.
It turns out that the implicit conversion of oddball values
is smushed into so many places in crankshaft that it would
have been pretty invasive surgery to make everything fall
out naturally.
BUG=v8:3956
LOG=N
Review URL: https://codereview.chromium.org/
1216463003
Cr-Commit-Position: refs/heads/master@{#29381}
martyn.capewell [Tue, 30 Jun 2015 13:40:00 +0000 (06:40 -0700)]
[turbofan] Move MulHigh asr onto add on ARM64
Move the arithmetic shift from Int32MulHigh to a following Int32Add on ARM64.
This graph is commonly generated on reduction of signed integer division.
Review URL: https://codereview.chromium.org/
1209413008
Cr-Commit-Position: refs/heads/master@{#29380}
hpayer [Tue, 30 Jun 2015 13:32:02 +0000 (06:32 -0700)]
Directly remove slot buffer entries in deoptimized code objects.
BUG=
Review URL: https://codereview.chromium.org/
1221643004
Cr-Commit-Position: refs/heads/master@{#29379}
akos.palfi [Tue, 30 Jun 2015 13:22:36 +0000 (06:22 -0700)]
[turbofan] Add CalleeSavedFPRegisters to CallDescriptor.
This change makes possible to save and restore the FP registers
in the Prologue and Return parts for the CallAddress kind functions.
TEST=test-simplified-lowering/RunNumberDivide_2_TruncatingToUint32,
test-simplified-lowering/RunNumberMultiply_TruncatingToUint32
Review URL: https://codereview.chromium.org/
1191513003
Cr-Commit-Position: refs/heads/master@{#29378}
jochen [Tue, 30 Jun 2015 12:40:37 +0000 (05:40 -0700)]
Register array buffer right after writing it into the object
BUG=chromium:504875
R=hpayer@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/
1215103003
Cr-Commit-Position: refs/heads/master@{#29377}
bmeurer [Tue, 30 Jun 2015 11:38:19 +0000 (04:38 -0700)]
[turbofan] Disallow cross native context inlining.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1213383002
Cr-Commit-Position: refs/heads/master@{#29376}
hablich [Tue, 30 Jun 2015 11:29:51 +0000 (04:29 -0700)]
Removing hablich from auto CC of x87
R=machenbach@chromium.org
BUG=v8:4135
NOTRY=true
LOG=N
Review URL: https://codereview.chromium.org/
1217993002
Cr-Commit-Position: refs/heads/master@{#29375}
bmeurer [Tue, 30 Jun 2015 11:05:03 +0000 (04:05 -0700)]
[turbofan] Disable recursive inlining for now.
The deoptimizer (and probably various other places) cannot deal properly
with recursive function inlining, so we disallow it in TurboFan as well.
We might want to reconsider that decision at some point in the future.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1211243007
Cr-Commit-Position: refs/heads/master@{#29374}
yangguo [Tue, 30 Jun 2015 11:01:23 +0000 (04:01 -0700)]
Remove outdated ban on lazy compilation due to scope chain.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/
1214303002
Cr-Commit-Position: refs/heads/master@{#29373}
mstarzinger [Tue, 30 Jun 2015 10:38:59 +0000 (03:38 -0700)]
Fix clobbered register when setting this_function variable.
Reland of https://crrev.com/
bf2bbc8ba508ccd21edf3c08d2e4192c4764ae91
R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-498022
BUG=chromium:498022
LOG=N
Review URL: https://codereview.chromium.org/
1214483008
Cr-Commit-Position: refs/heads/master@{#29372}
mvstanton [Tue, 30 Jun 2015 09:51:43 +0000 (02:51 -0700)]
Vector ICs: Changes to the IC system to support vector-based stores.
BUG=
Review URL: https://codereview.chromium.org/
1213773002
Cr-Commit-Position: refs/heads/master@{#29371}
yangguo [Tue, 30 Jun 2015 09:43:40 +0000 (02:43 -0700)]
Debugger: allow recompiling toplevel code for debugging.
R=mvstanton@chromium.org
BUG=v8:4132
LOG=N
Review URL: https://codereview.chromium.org/
1214953003
Cr-Commit-Position: refs/heads/master@{#29370}
ishell [Tue, 30 Jun 2015 08:30:07 +0000 (01:30 -0700)]
A couple of other "stack overflow" vs. "has_pending_exception()" issues in debugger fixed.
BUG=chromium:505007
LOG=N
Review URL: https://codereview.chromium.org/
1219693003
Cr-Commit-Position: refs/heads/master@{#29369}
jarin [Tue, 30 Jun 2015 08:24:44 +0000 (01:24 -0700)]
Fix Android ARM build error.
Also removed some unused classes.
BUG=
Review URL: https://codereview.chromium.org/
1212643010
Cr-Commit-Position: refs/heads/master@{#29368}
yangguo [Tue, 30 Jun 2015 07:48:23 +0000 (00:48 -0700)]
Increase code space allowance for first page size.
This has become necessary as we have more experimental natives
that run after deserializing from the snapshot.
R=hpayer@chromium.org
BUG=v8:4200
LOG=N
Review URL: https://codereview.chromium.org/
1218973002
Cr-Commit-Position: refs/heads/master@{#29367}
bmeurer [Tue, 30 Jun 2015 07:37:21 +0000 (00:37 -0700)]
[turbofan] Remove explicit context specialization from inlining.
Ideally inliner itself should not deal with context specialization at
all, since this is all handled in the pipeline instead (actually
inlining already runs together with context specialization), and the
inlining logic should not care about the specialization mode.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1217973003
Cr-Commit-Position: refs/heads/master@{#29366}
bmeurer [Tue, 30 Jun 2015 07:36:16 +0000 (00:36 -0700)]
[turbofan] Remove unused constructor function matching from typer.
This optimization never triggers currently, and is inherently native
context dependent for no real reason (for example it will not properly
detect those constructors in the case of cross native context inlining),
plus it is slow and awkward. In case we really need this functionality
at some point, we should find a way to make it work with the builtin
function id mechanism that is already in place to match other builtins.
R=jarin@chromium.org,rossberg@chromium.org
Review URL: https://codereview.chromium.org/
1221683006
Cr-Commit-Position: refs/heads/master@{#29365}
bmeurer [Tue, 30 Jun 2015 07:35:07 +0000 (00:35 -0700)]
[turbofan] Return constant type for functions with unknown parameter count.
R=jarin@chromium.org
Review URL: https://codereview.chromium.org/
1221753002
Cr-Commit-Position: refs/heads/master@{#29364}
yangguo [Tue, 30 Jun 2015 07:08:02 +0000 (00:08 -0700)]
Debugger: rename variables to avoid shadowing.
TBR=brucedawson@chromium.org
Review URL: https://codereview.chromium.org/
1212613006
Cr-Commit-Position: refs/heads/master@{#29363}
mstarzinger [Tue, 30 Jun 2015 03:23:30 +0000 (20:23 -0700)]
[turbofan] Fix exit control flow in TryCatchBuilder.
This makes sure that the exit control flow that merges the try-block
with the catch-block after a try-catch-statement creates a new merge
node in cases where it has to. Otherwise dangling phi nodes might have
the wrong number of value inputs.
R=bmeurer@chromium.org
TEST=mjsunit/regress/regress-crbug-505354
BUG=chromium:505354
LOG=N
Review URL: https://codereview.chromium.org/
1213183003
Cr-Commit-Position: refs/heads/master@{#29362}
littledan [Tue, 30 Jun 2015 00:44:43 +0000 (17:44 -0700)]
Mark SizeOfFirstPageIsLargeEnough failing on mips64
The failure was been triggered by turning on --harmony-arrays,
maybe because code size was increased or code was added later
in the bootstrap process. Because it doesn't look like a bug
in anything guarded by --harmony-arrays directly, I'd suggest
shipping the flag and disabling the test on the architectures
where it's been observed to fail. It's already disabled on arm64
and this patch disables it on mips64 as well.
BUG=v8:4200
LOG=N
R=adamk
Review URL: https://codereview.chromium.org/
1212963004
Cr-Commit-Position: refs/heads/master@{#29361}
mbrandy [Mon, 29 Jun 2015 21:31:08 +0000 (14:31 -0700)]
PPC: [es6] Make new.target work in functions
Port
7a63bf77eb7610afdc1a968f7660781e5160ba8d
Original commit message:
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
R=arv@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com
BUG=
Review URL: https://codereview.chromium.org/
1213303002
Cr-Commit-Position: refs/heads/master@{#29360}
arv [Mon, 29 Jun 2015 19:12:01 +0000 (12:12 -0700)]
[es6] Reenable new.target + Reflect.construct tests
BUG=v8:3887
LOG=N
R=caitpotter88@gmail.com, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1215973005
Cr-Commit-Position: refs/heads/master@{#29359}
arv [Mon, 29 Jun 2015 18:29:20 +0000 (11:29 -0700)]
[es6] Make new.target work in functions
This makes new.target work in [[Call]] and [[Construct]] of ordinary
functions.
We achieve this by introducing a new construct stub for functions that
uses the new.target variable. The construct stub pushes the original
constructor just above the receiver in the construct frame.
BUG=v8:3887
LOG=N
R=adamk@chromium.org, dslomov@chromium.org
Review URL: https://codereview.chromium.org/
1203813002
Cr-Commit-Position: refs/heads/master@{#29358}
arv [Mon, 29 Jun 2015 18:14:29 +0000 (11:14 -0700)]
[es6] Make sure we do not invoke setter when calling Promise.all
We were calling the setter for Object.prototype.promise if it existed
when calling PromiseAll.
BUG=v9:4232
LOG=N
R=rossberg@chromium.org, adamk@chromium.org
Review URL: https://codereview.chromium.org/
1219623005
Cr-Commit-Position: refs/heads/master@{#29357}
paul.lind [Mon, 29 Jun 2015 17:25:03 +0000 (10:25 -0700)]
MIPS: skip embenchen/zlib test.
zlib is broken for mips after
35eb3a0260d349cb4201fed66ff62a438962bd47.
We're still working on a fix. Skip test for now, so the bots cycle green.
BUG=
Review URL: https://codereview.chromium.org/
1209253005
Cr-Commit-Position: refs/heads/master@{#29356}
oth [Mon, 29 Jun 2015 17:08:00 +0000 (10:08 -0700)]
Ensure mjsunit tests use dashes not underscores in flags directives.
BUG=chromium:505228
LOG=Y
Review URL: https://codereview.chromium.org/
1219723002
Cr-Commit-Position: refs/heads/master@{#29355}