- Move the check from the BytecodeArrayBuilder destructor, which doesn't get
called, to the ToBytecodeArray function.
- Remove the now empty destructor.
- For generators, bind unused resume point labels somewhere.
R=rmcilroy@chromium.org
BUG=
Review-Url: https://codereview.chromium.org/1924093005
Cr-Commit-Position: refs/heads/master@{#35862}
Further refactor the pipeline to even run the first scheduler (part of
the effect control linearization) concurrently. This temporarily
disables most of the write barrier elimination, but we will get back to
that later.
Review-Url: https://codereview.chromium.org/1926023002
Cr-Commit-Position: refs/heads/master@{#35861}
We effectively have 4 different cases to deal with, including the default, but on some platform where we emit the jump table inline (e.g. arm64) we end up emitting an unconditional jump to the same address 127 times.
BUG=
Review-Url: https://codereview.chromium.org/1765883002
Cr-Commit-Position: refs/heads/master@{#35859}
Flat cons-strings point directly to the internalized version of the string. This makes reinternalization much faster.
BUG=
Review-Url: https://codereview.chromium.org/1932663002
Cr-Commit-Position: refs/heads/master@{#35852}
Reason for revert:
Caused a performance regression in TurboFan and did not improve in a significant way Ignition's performances.
Original issue's description:
> [ignition] Inline the binary op TurboFan code stubs in the bytecode handlers.
>
> Adds a Generate method to the stubs that can be used to embed the graph directly in the bytecode handlers.
>
> Committed: https://crrev.com/e8caf78ff2a9f7d50ac9b47f6b4c80f92b69914a
> Cr-Commit-Position: refs/heads/master@{#35696}
TBR=bmeurer@chromium.org,rmcilroy@chromium.org,machenbach@chromium.org
# Not skipping CQ checks because original CL landed more than 1 days ago.
Review-Url: https://codereview.chromium.org/1927873002
Cr-Commit-Position: refs/heads/master@{#35851}
This is a preparatory change to only use the class in question when
allocating a CompilationInfo on the C-heap for a compilation job. As a
next step we will make CompilationInfoWithZone disappear and make the
CompilationJob be the one C-heap allocated object.
R=bmeurer@chromium.org
Review-Url: https://codereview.chromium.org/1931573003
Cr-Commit-Position: refs/heads/master@{#35848}
Currently we already have tools to extract C++ symbols of d8, and output the
statistics result. This patch creates two scripts, one is to use exsisting tools
to extract C++ symbols and dump to output, the other collects all symbols and
merges them into v8 log. The format of C++ symbols in v8 log is:
cpp,start_address,size,symbol_name
BUG=v8:4906
LOG=n
Review-Url: https://codereview.chromium.org/1884493003
Cr-Commit-Position: refs/heads/master@{#35841}
Rolling v8/buildtools to cdbd50759bf2289d2c9d3f1f7d02239b4b4b1209
Rolling v8/tools/clang to 4652e9c8cea11f68101411f5826eca51b4838eda
Rolling v8/tools/gyp to e24c83726b7294179f479a683eeb351568fcc4ee
TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org
Review-Url: https://codereview.chromium.org/1926883003
Cr-Commit-Position: refs/heads/master@{#35839}
Return the empty string from StringPad if the filler argument is the empty
string, effectively returning the string unchanged in StringPadStart and
StringPadEnd.
```
"foo".padStart(100000, "") -> "foo"
```
BUG=v8:4957, v8:4954
LOG=N
R=littledan@chromium.org
Review-Url: https://codereview.chromium.org/1926773003
Cr-Commit-Position: refs/heads/master@{#35837}
The legacy function declaration locations from Annex B 3.2 and 3.4 do not
apply for generator declarations. This patch cracks down on those usages,
which is tested for by new incoming test262 tests.
BUG=v8:4824
LOG=Y
R=adamk
Review-Url: https://codereview.chromium.org/1900033003
Cr-Commit-Position: refs/heads/master@{#35835}
The status FAILED and BAILED_OUT only distinguishes between whether an
exception is pending or not. Such a distinction is obsolete by now as
all callers check for pending exceptions directly. Also it is impossible
for any concurrent part of the job to actually set a pending exception,
hence even the assertion that the concurrent part does not return FAILED
is obsolete.
R=bmeurer@chromium.org
Review-Url: https://codereview.chromium.org/1926693003
Cr-Commit-Position: refs/heads/master@{#35834}
This is needed by Blink to implement the Custom Elements spec.
BUG=v8:4261
LOG=y
Review-Url: https://codereview.chromium.org/1910253005
Cr-Commit-Position: refs/heads/master@{#35833}
This moves the common code for allocating a compilation job into one
single place in the compilation pipeline. This will make it easier to
reason about involved lifetimes.
R=bmeurer@chromium.org
Review-Url: https://codereview.chromium.org/1923293002
Cr-Commit-Position: refs/heads/master@{#35831}
Now that the GC team has landed the appropriate changes to ensure that the top
page of the address space is never used for allocation, the inlined fast-case
allocation path in the CodeAssembler can be micro-optimized to an add to top
followed by an unsigned compare to limit, eliding a no-longer-needed overflow
check.
Review-Url: https://codereview.chromium.org/1923803003
Cr-Commit-Position: refs/heads/master@{#35830}
This addresses Cortex-A53 errata 819472, 826319, 827319 and 824069.
Note that using "civac" rather than "cvau" doesn't appear to affect
performance at all.
BUG=
Review-Url: https://codereview.chromium.org/1921173004
Cr-Commit-Position: refs/heads/master@{#35828}
This makes sure that the testing pipeline withing the FunctionTester
class only performs AST analysis and deoptimization preparation when
graphs are generated from the AST (as opposed to from bytecode).
R=yangguo@chromium.org
Review-Url: https://codereview.chromium.org/1928523002
Cr-Commit-Position: refs/heads/master@{#35827}
Trace-opt/trace-deopt output is ambiguous if multiple functions share
the same name. This change adds file names to this output behind the
--trace-file-names flag to reduce this ambiguity.
R=ofrobots@google.com
BUG=
Review URL: https://codereview.chromium.org/1920873003
Cr-Commit-Position: refs/heads/master@{#35824}
This is necessary to eventually build a turbofan graph.
BUG=v8:4907
LOG=n
Review URL: https://codereview.chromium.org/1901713003
Cr-Commit-Position: refs/heads/master@{#35820}
Reason for revert:
Creates a spike of OOM(v8) crashers on Win32.
Original issue's description:
> [heap] Uncommit pooled pages concurrently
>
> - Move the concurrent unmapping to MemoryAllocator
> - Hide (private) members where possible
> - MemoryAllocator:Free is now the bottleneck for freeing
> - Pooled pages are either allocated from a set of pooled pages are obtained
> through work stealing from the concurrent unmapper
>
> BUG=chromium:605866, chromium:581412
> LOG=N
>
> Committed: https://crrev.com/2158df87116906160cebc3ad20c97f454822da03
> Cr-Commit-Position: refs/heads/master@{#35797}
TBR=hpayer@chromium.org,mlippautz@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=chromium:605866, chromium:581412
Review URL: https://codereview.chromium.org/1925563003
Cr-Commit-Position: refs/heads/master@{#35819}
Uses now the same location chromium uses and which some tools
expect.
BUG=chromium:474921
LOG=n
Review URL: https://codereview.chromium.org/1929473002
Cr-Commit-Position: refs/heads/master@{#35817}
This commit introduces IgnitionStatisticsExtension, which provides
methods for accessing Ignition statistics and counters from JavaScript.
The extension is registered when FLAG_ignition and
FLAG_trace_ignition_dispatches are both enabled.
For the moment, the only exposed function is
getIgnitionDispatchCounters(), which allows to retrieve Ignition
dispatch counters as a JavaScript object.
BUG=v8:4899
LOG=N
Review URL: https://codereview.chromium.org/1899133004
Cr-Commit-Position: refs/heads/master@{#35816}