- 02 Feb, 2017 22 commits
-
-
jarin authored
Before this change, we attributed samples for the top-most interpreter frame to the second-topmost frame if we were in a bytecode handler with elided frame. With this change we try to detect that we are in a handler without a frame. If we are, we do not drop the topmost frame. For example, consider the program function inner() { var s = 0; for (var i = 0; i < 100000; i++) { s += i * i; } return s; } function trivial() { return inner(); } for (var i = 0; i < 2000; i++) { trivial(); } Before this change, d8 --prof --ignition --nocrankshaft and linux-tick-processor would produce: [JavaScript]: ticks total nonlib name 4885 83.4% 83.5% Function: ~trivial a.js:15:17 759 13.0% 13.0% Function: ~inner a.js:7:15 After this change, we get [JavaScript]: ticks total nonlib name 5486 95.9% 96.2% Function: ~inner a.js:7:15 4 0.1% 0.1% Function: ~trivial a.js:15:17 Review-Url: https://codereview.chromium.org/2667253004 Cr-Commit-Position: refs/heads/master@{#42894}
-
yangguo authored
R=jgruber@chromium.org BUG=v8:5530 Review-Url: https://codereview.chromium.org/2670823002 Cr-Commit-Position: refs/heads/master@{#42893}
-
yangguo authored
R=mstarzinger@chromium.org Review-Url: https://codereview.chromium.org/2650193002 Cr-Commit-Position: refs/heads/master@{#42892}
-
mstarzinger authored
The operator in question does not call arbitrary JavaSciprt, nor throw, nor trigger a lazy deoptimization. Nodes hence do not need a frame-state representing the "after" state of the operation. R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2672763002 Cr-Commit-Position: refs/heads/master@{#42891}
-
bmeurer authored
We don't need Code::CALL_IC for anything now that the CallICStub is migrated and no longer hooks into the traditional IC system. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2669193002 Cr-Commit-Position: refs/heads/master@{#42890}
-
bmeurer authored
Port the Call feedback machinery from the interpreter to the CallICStub as second step to unify the feedback collection. This removes a lot of hand-written native code, and makes the runtime miss handler obsolete. The next step will be to use the CallICStub from the interpreter as well. Drive-by-fix: Adjust CallIC/CallICTrampoline descriptors names. R=mvstanton@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2670843002 Cr-Commit-Position: refs/heads/master@{#42889}
-
yangguo authored
R=machenbach@chromium.org BUG=v8:5920 NOTRY=true Review-Url: https://codereview.chromium.org/2671713002 Cr-Commit-Position: refs/heads/master@{#42888}
-
mstarzinger authored
R=bmeurer@chromium.org Review-Url: https://codereview.chromium.org/2675673002 Cr-Commit-Position: refs/heads/master@{#42887}
-
yangguo authored
R=jgruber@chromium.org Review-Url: https://codereview.chromium.org/2671703002 Cr-Commit-Position: refs/heads/master@{#42886}
-
jkummerow authored
This behavior was recently changed. Turns out that for some usage patterns at least, populating the stub cache is significantly faster overall. BUG=chromium:684428 Review-Url: https://codereview.chromium.org/2674653002 Cr-Commit-Position: refs/heads/master@{#42885}
-
machenbach authored
This adds optional multi-architecture builds, allowing to compile x86 and x64 in one build. The correctness fuzzer can be configured to compare the two executables, e.g. to compare x86 to x64 run the launcher with: --second-d8=clang_x86/d8 in an x64 build. Configuring the executable's architecture is now simplified and inferred from the gn build configuration. Building for clusterfuzz has now a new canonical target that can be used by the infrastructure (defaults to d8). The clusterfuzz release builder is now defined to compile multi-arch builds, which will have an effect as soon as the infrastructure refers to the new clusterfuzz target. BUG=chromium:673246 NOTRY=true TBR=mstarzinger,jarin Review-Url: https://codereview.chromium.org/2649133010 Cr-Commit-Position: refs/heads/master@{#42884}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2663803002 Cr-Original-Commit-Position: refs/heads/master@{#42881} Committed: https://chromium.googlesource.com/v8/v8/+/65ad1e35d9a97c1126a55cc9d3014598fd224259 Review-Url: https://codereview.chromium.org/2663803002 Cr-Commit-Position: refs/heads/master@{#42883}
-
machenbach authored
Revert of [string] Migrate String.prototype.{split,replace} to TF (patchset #12 id:220001 of https://codereview.chromium.org/2663803002/ ) Reason for revert: Breaks win64 debug: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20debug/builds/14967 Original issue's description: > [string] Migrate String.prototype.{split,replace} to TF > > BUG= > > Review-Url: https://codereview.chromium.org/2663803002 > Cr-Commit-Position: refs/heads/master@{#42881} > Committed: https://chromium.googlesource.com/v8/v8/+/65ad1e35d9a97c1126a55cc9d3014598fd224259 TBR=bmeurer@chromium.org,ishell@chromium.org,yangguo@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review-Url: https://codereview.chromium.org/2671673003 Cr-Commit-Position: refs/heads/master@{#42882}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2663803002 Cr-Commit-Position: refs/heads/master@{#42881}
-
ahaas authored
First discovery by the names section fuzzer I think. During the decoding of the names of locals only ok() of the outer decoder was checked, not the ok() of the actual names section decoder. R=tizer@chromium.org BUG=chromium:684855 Review-Url: https://codereview.chromium.org/2648383007 Cr-Commit-Position: refs/heads/master@{#42880}
-
bmeurer authored
The CallIC is already not a traditional IC in the V8 sense, so it doesn't make sense to integrate with the traditional IC machinery. The plan is to migrate it away completely from the IC world and use the code that is already available in the interpreter instead. R=yangguo@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2676543002 Cr-Commit-Position: refs/heads/master@{#42879}
-
yangguo authored
- Remove obsolete BreakLocatorType. - Perform PrepareStepOnThrow after OnException event, in case stepping was scheduled in the exception event. - Use frame count instead of frame pointer for stepping. Frame pointer is not reliable due to possible deopts. - Consistently check for inlined functions in inlined frames. - Use SharedFunctionInfo in FloodWithOneshot and EnsureDebugInfo. R=jgruber@chromium.org BUG=v8:5901 Review-Url: https://codereview.chromium.org/2664793002 Cr-Commit-Position: refs/heads/master@{#42878}
-
bmeurer authored
First step to unify CallIC in Ignition, TurboFan/Crankshaft and fullcodegen. R=yangguo@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2669123002 Cr-Commit-Position: refs/heads/master@{#42877}
-
bmeurer authored
Rename the CallIC factory method to CallICTrampoline and the CallICInOptimizedCode to CallIC to match the naming of the stubs and better reflect their functionality. R=yangguo@chromium.org Review-Url: https://codereview.chromium.org/2670073002 Cr-Commit-Position: refs/heads/master@{#42876}
-
bmeurer authored
This introduces additional verification logic to ensure that the condition passed to Branch/Select operators is always of type Boolean. CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_win64_dbg TBR=jarin@chromium.org BUG=v8:5267 Review-Url: https://codereview.chromium.org/2672713002 Cr-Commit-Position: refs/heads/master@{#42875}
-
v8-autoroll authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/47e07d6..7a418db Rolling v8/third_party/catapult: https://chromium.googlesource.com/external/github.com/catapult-project/catapult/+log/4ee31ea..fc2f450 TBR=machenbach@chromium.org,vogelheim@chromium.org,hablich@chromium.org Review-Url: https://codereview.chromium.org/2671563003 Cr-Commit-Position: refs/heads/master@{#42874}
-
mlippautz authored
Remove the cases that deal with a top pointer that is reset. We should always be in a sane state wrt. top and age mark. Also add more DCHECKs. BUG=chromium:672678 Review-Url: https://codereview.chromium.org/2674493002 Cr-Commit-Position: refs/heads/master@{#42873}
-
- 01 Feb, 2017 18 commits
-
-
jbroman authored
This avoids the need to pull in the UTF-8 encoding code from the public API, and allows it to take advantage of any supported way that i::String can be encoded (one- or two-byte). Backward compatibility is maintained, but this is the behavior beginning with this version. BUG=chromium:686159 Review-Url: https://codereview.chromium.org/2665653004 Cr-Commit-Position: refs/heads/master@{#42872}
-
binji authored
Also if the count is not specified, it should wake all waiters. BUG=v8:4777 Review-Url: https://codereview.chromium.org/2659083004 Cr-Commit-Position: refs/heads/master@{#42871}
-
bbudge authored
- Uses macros to reduce code duplication. - Uses calls to VisitRO, VisitRR, VisitRROFloat, and VisitFloatUnop to reduce code bloat. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2669683002 Cr-Original-Commit-Position: refs/heads/master@{#42830} Committed: https://chromium.googlesource.com/v8/v8/+/5e6eb91d0d66c9a118f1cc576accb649a17c5a9d Review-Url: https://codereview.chromium.org/2669683002 Cr-Commit-Position: refs/heads/master@{#42870}
-
jyan authored
R=bjaideep@ca.ibm.com, joransiu@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2667203002 Cr-Commit-Position: refs/heads/master@{#42869}
-
jyan authored
R=bjaideep@ca.ibm.com, joransiu@ca.ibm.com BUG= Review-Url: https://codereview.chromium.org/2668763005 Cr-Commit-Position: refs/heads/master@{#42868}
-
jbroman authored
Even though the elements kind is FAST_DOUBLE_ELEMENTS, if length is zero the isolate's empty_fixed_array is used. It's illegal to cast this to FixedDoubleArray, so we avoid the cast. BUG=chromium:686479 Review-Url: https://codereview.chromium.org/2665313003 Cr-Commit-Position: refs/heads/master@{#42867}
-
ulan authored
BUG= Review-Url: https://codereview.chromium.org/2672503002 Cr-Commit-Position: refs/heads/master@{#42866}
-
bbudge authored
- Adds vqadd.s/u, vqsub.s/u for all integer lane sizes. - Refactors disassembler and simulator, using switches instead of long if-else chains. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2649323012 Cr-Commit-Position: refs/heads/master@{#42865}
-
bjaideep authored
R=joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Review-Url: https://codereview.chromium.org/2668303002 Cr-Commit-Position: refs/heads/master@{#42864}
-
danno authored
This allows support for tagged representations of index/loop variables which asserted in BuildFastFixedArrayForEach's call to Increment up to this point. Review-Url: https://codereview.chromium.org/2665143002 Cr-Commit-Position: refs/heads/master@{#42863}
-
bbudge authored
- Uses macros to reduce code duplication. - Uses calls to VisitRO and VisitRR to reduce code bloat. LOG=N BUG=v8:4124 Review-Url: https://codereview.chromium.org/2668753004 Cr-Original-Commit-Position: refs/heads/master@{#42828} Committed: https://chromium.googlesource.com/v8/v8/+/e8e2e3c826d42490f809e1c45750bbb438b60d8c Review-Url: https://codereview.chromium.org/2668753004 Cr-Commit-Position: refs/heads/master@{#42862}
-
adamk authored
The hoist_scope member of DeclarationDescriptor was only used to pass the function scope for declaration of parameters containing sloppy evals, for example: function f(x = eval("var y")) { } In cases like this, "x" is declared in the function scope but "y" is declared in an inner scope. Rather than passing the function scope as "hoist_scope", we simply ask for the outer_scope() of the inner scope as needed in PatternRewriter. This reduces the cognitive overhead of understanding what a DeclarationDescriptor has; for example, it removes some dead code from the PreParser which never has to deal with a situation like the example above. Review-Url: https://codereview.chromium.org/2662183002 Cr-Commit-Position: refs/heads/master@{#42861}
-
ahaas authored
The int64-lowering only lowered store instructions with a word64 store representation. For all other stores the default lowering applied. The default lowering replaces all input nodes with both their replacement nodes, which can change the number of input nodes of the lowered node. In WebAssembly there exist stores which take an I64 input and store it with a different representation, e.g. I32. In TurboFan this translates to a store node with word32 store representation and a word64 value input. The default lowering replaces the word64 value input to become two word32 value inputs, which makes the number of inputs of the store node invalid. This CL discards the high word replacement of the value input so that the number of input nodes of a store node does not change in the default lowering. R=titzer@chromium.org CC=rossberg@chromium.org BUG= Review-Url: https://codereview.chromium.org/2668023004 Cr-Commit-Position: refs/heads/master@{#42860}
-
ishell authored
This is a step towards encoding all the necessary information in the feedback slot kind instead of storing it in the IC dispatcher's code object flags. BUG=v8:5849, v8:5917 Review-Url: https://codereview.chromium.org/2662113005 Cr-Commit-Position: refs/heads/master@{#42859}
-
bjaideep authored
Port 87d309da Original Commit Message: This is the first step to reduce the size of the out-of-line code of TrapIf. Instead of passing the context to the runtime call as a parameter, we pass Smi::kZero to the runtime call and then get the actual context from the WasmFrame on the stack. R=ahaas@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG=v8:5908 LOG=N Review-Url: https://codereview.chromium.org/2661363003 Cr-Commit-Position: refs/heads/master@{#42858}
-
marja authored
BUG=v8:5294 Review-Url: https://codereview.chromium.org/2662393004 Cr-Commit-Position: refs/heads/master@{#42857}
-
bmeurer authored
R=jarin@chromium.org Review-Url: https://codereview.chromium.org/2667123002 Cr-Commit-Position: refs/heads/master@{#42856}
-
neis authored
Using .caller, one can get access to the internal function that invokes the handler passed to Promise.prototype.then. This internal function is a TF builtin that was set up as non-native and without an argument adaptor. As a consequence of this, when accessing .arguments on it, the frame-walking logic in the .arguments accessor thinks the number of arguments is -1 and we try to allocate an array of size -1. This CL marks the builtin function as native (making its .arguments be null), along with a few others that may have been incorrect in the same way. BUG=chromium:682349 Review-Url: https://codereview.chromium.org/2672453002 Cr-Commit-Position: refs/heads/master@{#42855}
-