Previously, emitting two more more unique source positions at the same pc would
generate two or more RelocInfo entries. Now, only the last emitted source
position for any pc is added to the RelocInfo.
Review URL: https://codereview.chromium.org/908443002
Cr-Commit-Position: refs/heads/master@{#26608}
This reduces young generation garbage collections when many array buffers are allocated.
BUG=
Review URL: https://codereview.chromium.org/904633003
Cr-Commit-Position: refs/heads/master@{#26605}
Rename tools/vim/v8.ycm_extra_conf.py to .ycm_extra_conf.py, so every
YCM plugin (no matter if it's VIM or Emacs) should pick it up
automatically.
Also move the common tools/vim/ninja_output.py to tools/ninja/ as it's
also not related to VIM.
Review URL: https://codereview.chromium.org/904143003
Cr-Commit-Position: refs/heads/master@{#26602}
port bf49be39f3 (r26572)
original commit message:
new classes: implement new.target passing to superclass constructor
BUG=
Review URL: https://codereview.chromium.org/912233003
Cr-Commit-Position: refs/heads/master@{#26596}
This error is exposed by this CL: https://codereview.chromium.org/817293005.
This CL set all Buildin JS function to optimization_disabled.
And set the bailout reason to "kBuiltinFunctionCannotBeOptimized". But in Runtime_SetCode() function.
It copied the the compiler_hints which include the "bool optimization_disabled" value,
But the corresponding Bailout reason is not copied.
This leads to the check error in "CompilationInfo::AbortOptimization(...)" function.
This issue is exposed on turbofan unsupported X87 platform. Crankshaft is invoked to compile
the typed array function Uint8Array.
BUG=
Review URL: https://codereview.chromium.org/917643002
Cr-Commit-Position: refs/heads/master@{#26595}
port 5d68529be2 (r26546)
original commit message:
Parsing: Make Scope not know about Isolate.
Scope, like Parser, must be able to operate independent of Isolate and the V8
heap (for background parsing). After the heap-independent phase, there is a heap
dependent phase, during which we do operations such as scope anaylysis.
This CL makes the phases explicit by not telling Scope about the Isolate too
early (during the heap-independent phase, Scope should know nothing about
Isolate). This decreases the probability of accidental code changes which would
add heap-dependent operations into the heap-independent phase.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/913163003
Cr-Commit-Position: refs/heads/master@{#26590}
port 86cae1633c (r26545)
original commit message:
1) Deoptimizer::Reason was replaced with Deoptimizer::DeoptInfo
because it also has raw position. Also the old name clashes with DeoptReason enum.
2) c_entry_fp assignment call was added to EntryGenerator::Generate
So we can calculate sp and have a chance to record the stack for the deopting function.
btw it makes the test stable.
3) new kind of CodeEvents was added to cpu-profiler
4) GetDeoptInfo method was extracted from PrintDeoptLocation.
So it could be reused in cpu profiler.
BUG=
R=weiliang.lin@intel.com
Review URL: https://codereview.chromium.org/912403003
Cr-Commit-Position: refs/heads/master@{#26588}
This comment used to have a (commented-out) ASSERT attached to it.
But that ASSERT was removed years ago, so the comment is now a
non-sequitar.
Review URL: https://codereview.chromium.org/918453002
Cr-Commit-Position: refs/heads/master@{#26587}
A CompilationInfo constructed from just an Isolate* and a Zone* is in
weird an inconsistent state (calling e.g. flags() on it will crash),
so we need to avoid them. This CL removes almost all of them, the
remaining 2 call sites in (for testing only) will be handled in a
separate CL. Things which have been changed:
* Linkage is basically a decorator for CallDescriptor now.
* ChangeLowering doesn't need Linkage at all.
* JSGenericLowering doesn't need a full CompilationInfo*, just a
single flag.
* JSContextSpecializer doesn't need the full CompilationInfo, just a
Context.
* Removed unused CompilationInfo from SimplifiedLoweringTester.
This nicely decouples things already a bit more, but there's still
work to do...
Review URL: https://codereview.chromium.org/899803003
Cr-Commit-Position: refs/heads/master@{#26580}
These are based on the ninja-build.vim file found in Chromium, adapted
to V8, and enhanced with goma support (automatically increase job limit
for ninja if goma is detected).
Review URL: https://codereview.chromium.org/915963002
Cr-Commit-Position: refs/heads/master@{#26563}
Function.prototype.toMethod was removed from ES6.
This removes the function and updates the tests to either
use %ToMethod or a dedicated syntax (using concise method
or a class).
BUG=v8:3330
LOG=N
R=dslomov@chromium.org, adamk
Review URL: https://codereview.chromium.org/914713002
Cr-Commit-Position: refs/heads/master@{#26559}