- 16 Nov, 2016 1 commit
-
-
jing.bao authored
BUG= Review-Url: https://codereview.chromium.org/2509603002 Cr-Commit-Position: refs/heads/master@{#41020}
-
- 15 Nov, 2016 1 commit
-
-
ishell authored
This is to fix the performance regression by avoiding creation of a frame in LoadIC dispatcher caused by complicated logic of CSA::EmitLoadICProtoArrayCheck(). BUG=v8:5561, chromium:660795 Review-Url: https://codereview.chromium.org/2496333002 Cr-Commit-Position: refs/heads/master@{#40986}
-
- 14 Nov, 2016 2 commits
-
-
tebbi authored
This CL enables precise source positions for all V8 compilers. It merges compiler::SourcePosition and internal::SourcePosition to a single class used throughout the codebase. The new internal::SourcePosition instances store an id identifying an inlined function in addition to a script offset. SourcePosition::InliningId() refers to a the new table DeoptimizationInputData::InliningPositions(), which provides the following data for every inlining id: - The inlined SharedFunctionInfo as an offset into DeoptimizationInfo::LiteralArray - The SourcePosition of the inlining. Recursively, this yields the full inlining stack. Before the Code object is created, the same information can be found in CompilationInfo::inlined_functions(). If SourcePosition::InliningId() is SourcePosition::kNotInlined, it refers to the outer (non-inlined) function. So every SourcePosition has full information about its inlining stack, as long as the corresponding Code object is known. The internal represenation of a source position is a positive 64bit integer. All compilers create now appropriate source positions for inlined functions. In the case of Turbofan, this required using AstGraphBuilderWithPositions for inlined functions too. So this class is now moved to a header file. At the moment, the additional information in source positions is only used in --trace-deopt and --code-comments. The profiler needs to be updated, at the moment it gets the correct script offsets from the deopt info, but the wrong script id from the reconstructed deopt stack, which can lead to wrong outputs. This should be resolved by making the profiler use the new inlining information for deopts. I activated the inlined deoptimization tests in test-cpu-profiler.cc for Turbofan, changing them to a case where the deopt stack and the inlining position agree. It is currently still broken for other cases. The following additional changes were necessary: - The source position table (internal::SourcePositionTableBuilder etc.) supports now 64bit source positions. Encoding source positions in a single 64bit int together with the difference encoding in the source position table results in very little overhead for the inlining id, since only 12% of the source positions in Octane have a changed inlining id. - The class HPositionInfo was effectively dead code and is now removed. - SourcePosition has new printing and information facilities, including computing a full inlining stack. - I had to rename compiler/source-position.{h,cc} to compiler/compiler-source-position-table.{h,cc} to avoid clashes with the new src/source-position.cc file. - I wrote the new wrapper PodArray for ByteArray. It is a template working with any POD-type. This is used in DeoptimizationInputData::InliningPositions(). - I removed HInlinedFunctionInfo and HGraph::inlined_function_infos, because they were only used for the now obsolete Crankshaft inlining ids. - Crankshaft managed a list of inlined functions in Lithium: LChunk::inlined_functions. This is an analog structure to CompilationInfo::inlined_functions. So I removed LChunk::inlined_functions and made Crankshaft use CompilationInfo::inlined_functions instead, because this was necessary to register the offsets into the literal array in a uniform way. This is a safe change because LChunk::inlined_functions has no other uses and the functions in CompilationInfo::inlined_functions have a strictly longer lifespan, being created earlier (in Hydrogen already). BUG=v8:5432 Review-Url: https://codereview.chromium.org/2451853002 Cr-Commit-Position: refs/heads/master@{#40975}
-
ulan authored
BUG=chromium:652721 Review-Url: https://codereview.chromium.org/2490523003 Cr-Commit-Position: refs/heads/master@{#40972}
-
- 02 Nov, 2016 1 commit
-
-
zhengxing.li authored
port 5ef1bddf (r40690) original commit message: All vector ICs use the TypeFeedbackVector::ComputeCounts method now, while the remaining patching ICs still use the traditional way of counting on the TypeFeedbackInfo hanging off the fullcodegen code object. This fixes the problem that counts were sometimes off. BUG= Drive-by-fix: Move FullCodeGenerator::CallIC to fullcodegen.cc. Review-Url: https://codereview.chromium.org/2470063002 Cr-Commit-Position: refs/heads/master@{#40692}
-
- 31 Oct, 2016 1 commit
-
-
ishell authored
The old code does not work properly when the allocation memento object ends exactly at page boundary. This CL addresses DBC mentioned in https://codereview.chromium.org/2313093002/ BUG=v8:5269 Review-Url: https://codereview.chromium.org/2466573002 Cr-Commit-Position: refs/heads/master@{#40676}
-
- 27 Oct, 2016 1 commit
-
-
ishell authored
The reasons are: 1) Type feedback vectors are not shared between different native contexts and therefore the IC handler created for one native context will not be reused in other native context. 2) Access rights revocation is not supported at all, therefore given (1) once we pass the access check we don't have to check access rights again. BUG=v8:5561 Review-Url: https://codereview.chromium.org/2455953002 Cr-Commit-Position: refs/heads/master@{#40627}
-
- 25 Oct, 2016 1 commit
-
-
jgruber authored
This CL removes code that is now unused since the port of regexp.js has been completed. Removed functions / classes are: * regexp.js (GetSubstitution moved to string.js) * RegExpConstructResult stub * RegExpFlags intrinsic * RegExpSource intrinsic * RegExpInitializeAndCompile runtime function BUG=v8:5339 Review-Url: https://codereview.chromium.org/2448463002 Cr-Commit-Position: refs/heads/master@{#40547}
-
- 20 Oct, 2016 1 commit
-
-
jkummerow authored
Review-Url: https://chromiumcodereview.appspot.com/2434753003 Cr-Commit-Position: refs/heads/master@{#40459}
-
- 18 Oct, 2016 2 commits
-
-
bmeurer authored
These intrinsics are unused now, and so we can drop all the code in fullcodegen and Crankshaft that deals with those. TurboFan and Ignition never tried to optimize those. R=mstarzinger@chromium.org BUG=v8:5049 Review-Url: https://codereview.chromium.org/2427673004 Cr-Commit-Position: refs/heads/master@{#40401}
-
zhengxing.li authored
port 3f6e0a4e (r40354) original commit message: RIP, handwritten KeyedLoadICStub, handwritten KeyedLoadIC_Megamorphic, and hydrogenized KeyedLoadGeneric! BUG= Review-Url: https://codereview.chromium.org/2430613003 Cr-Commit-Position: refs/heads/master@{#40388}
-
- 17 Oct, 2016 1 commit
-
-
jkummerow authored
RIP, handwritten KeyedLoadICStub, handwritten KeyedLoadIC_Megamorphic, and hydrogenized KeyedLoadGeneric! Review-Url: https://codereview.chromium.org/2424433002 Cr-Commit-Position: refs/heads/master@{#40354}
-
- 14 Oct, 2016 1 commit
-
-
jgruber authored
Now that all accesses to the last match info are in C++ and TF code, we can finally turn the last match info into a FixedArray. Similar to the ArrayList, it uses its first field to store its length and grows dynamically in amortized O(1) time. Unlike previously, this means that the last match info pointer stored on the context can actually change (in case the FixedArray needs to grow). BUG=v8:5339 Review-Url: https://codereview.chromium.org/2415103002 Cr-Commit-Position: refs/heads/master@{#40308}
-
- 13 Oct, 2016 1 commit
-
-
zhengxing.li authored
port c15c5827 (r40206) original commit message: This is the next step to unify the Call/Construct feedback collection and prepare it to be able to collect SharedFunctionInfo feedback. This also reduces the CallICStub overhead quite a bit since we only need one stub per mode (and tail call mode), not also one per call arity. BUG= Review-Url: https://codereview.chromium.org/2409953005 Cr-Commit-Position: refs/heads/master@{#40244}
-
- 12 Oct, 2016 4 commits
-
-
ishell authored
Review-Url: https://codereview.chromium.org/2412613004 Cr-Commit-Position: refs/heads/master@{#40220}
-
ishell authored
[stubs] Drop StoreICStub and StoreICTrampolineStub (the non-TurboFan implementations of StoreIC dispatchers). Because of the planned improvements of IC system it does not make sense to keep the old platform version of the stub around. Review-Url: https://codereview.chromium.org/2413653003 Cr-Commit-Position: refs/heads/master@{#40216}
-
ishell authored
[stubs] Drop LoadICStub and LoadICTrampolineStub (the non-TurboFan implementations of LoadIC dispatchers). Because of the planned improvements of IC system it does not make sense to keep the old platform version of the stub around. Review-Url: https://codereview.chromium.org/2418513002 Cr-Commit-Position: refs/heads/master@{#40211}
-
zhengxing.li authored
port 9192db20 (r40162) original commit message: Remove the special side channel from the CallICStub to the ArrayConstructorStub and make the CallICStub always use the general entry point. BUG= Review-Url: https://codereview.chromium.org/2410083004 Cr-Commit-Position: refs/heads/master@{#40197}
-
- 10 Oct, 2016 1 commit
-
-
zhengxing.li authored
port 1beb89f2 (r39827) original commit message: This patch simplifies code for speeding up marking and removes write barrier counter. The step size is now computed based in two parts: - bytes to mark in order to keep up with allocation, - bytes to mark in order to make progress. BUG= Review-Url: https://codereview.chromium.org/2407733003 Cr-Commit-Position: refs/heads/master@{#40116}
-
- 07 Oct, 2016 3 commits
-
-
jgruber authored
BUG= Committed: https://crrev.com/7db0ecdec3cf330766575cb7973b983f3f1e3020 Review-Url: https://codereview.chromium.org/2381843002 Cr-Original-Commit-Position: refs/heads/master@{#40080} Cr-Commit-Position: refs/heads/master@{#40087}
-
jgruber authored
This reverts commit 7db0ecde. Manual revert since automatic revert is too large for the web interface. BUG= TBR=bmeurer@chromium.org,mstarzinger@chromium.org,yangguo@chromium.org,ahaas@chromium.org NOPRESUBMIT=true NOTREECHECKS=true Review-Url: https://codereview.chromium.org/2396353002 Cr-Commit-Position: refs/heads/master@{#40082}
-
jgruber authored
BUG= Review-Url: https://codereview.chromium.org/2381843002 Cr-Commit-Position: refs/heads/master@{#40080}
-
- 29 Sep, 2016 2 commits
-
-
tebbi authored
R=bmeurer@chromium.org BUG= Review-Url: https://codereview.chromium.org/2380973002 Cr-Commit-Position: refs/heads/master@{#39872}
-
jgruber authored
This ports the platform-specific SubStringStub to TurboFan. It also contains a minor bug-fix for the case when the requested substring length equals the subject string length, but the start index is not equal to 0. The old stub implementation returned the subject string, while the new implementation calls into runtime, which finally results in a thrown exception. BUG=v8:5415 Committed: https://crrev.com/49be31921536716706a6790fbbf9c346b975af16 Review-Url: https://codereview.chromium.org/2355793003 Cr-Original-Commit-Position: refs/heads/master@{#39653} Cr-Commit-Position: refs/heads/master@{#39851}
-
- 26 Sep, 2016 1 commit
-
-
hablich authored
Revert of [stubs] Port SubStringStub to TurboFan (patchset #8 id:140001 of https://codereview.chromium.org/2355793003/ ) Reason for revert: Speculative revert because of stability problems Original issue's description: > [stubs] Port SubStringStub to TurboFan > > This ports the platform-specific SubStringStub to TurboFan. > > It also contains a minor bug-fix for the case when the requested substring > length equals the subject string length, but the start index is not equal to 0. > The old stub implementation returned the subject string, while the new > implementation calls into runtime, which finally results in a thrown exception. > > BUG=v8:5415 > > Committed: https://crrev.com/49be31921536716706a6790fbbf9c346b975af16 > Cr-Commit-Position: refs/heads/master@{#39653} TBR=ishell@chromium.org,bmeurer@chromium.org,jgruber@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=v8:5415, chromium:649967 NOPRESUBMIT=true NOTRY=true Review-Url: https://codereview.chromium.org/2365413002 Cr-Commit-Position: refs/heads/master@{#39737}
-
- 23 Sep, 2016 2 commits
-
-
ishell authored
According to new store IC calling convention the value, slot and vector are passed on the stack and there's no need in trying to preserve values or respective registers in store handlers. Nice bonus: we also don't need virtual registers anymore. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2357323003 Cr-Commit-Position: refs/heads/master@{#39672}
-
jgruber authored
This ports the platform-specific SubStringStub to TurboFan. It also contains a minor bug-fix for the case when the requested substring length equals the subject string length, but the start index is not equal to 0. The old stub implementation returned the subject string, while the new implementation calls into runtime, which finally results in a thrown exception. BUG=v8:5415 Review-Url: https://codereview.chromium.org/2355793003 Cr-Commit-Position: refs/heads/master@{#39653}
-
- 22 Sep, 2016 1 commit
-
-
ishell authored
The handlers cleanup will be done in a follow-up CL. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2357163003 Cr-Commit-Position: refs/heads/master@{#39617}
-
- 21 Sep, 2016 1 commit
-
-
ishell authored
This cleanup is necessary to make HCallWithDescriptor support passing arguments on the stack. BUG=v8:5407 Review-Url: https://codereview.chromium.org/2352163004 Cr-Commit-Position: refs/heads/master@{#39590}
-
- 18 Sep, 2016 2 commits
-
-
zhengxing.li authored
port 3ccedd5d(r39398) original commit message: BUG= Review-Url: https://codereview.chromium.org/2352483002 Cr-Commit-Position: refs/heads/master@{#39489}
-
zhengxing.li authored
port 2ab3fcf4(r39377) original commit message: To make better inlining decisions, it's good to have call counts for poly/mega-morphic cases. This CL makes it work for calls, and another will follow to better unify the code between constructor calls and normal calls (and thence, to record megamorphic call counts there as well). BUG= Review-Url: https://codereview.chromium.org/2351523002 Cr-Commit-Position: refs/heads/master@{#39487}
-
- 16 Sep, 2016 1 commit
-
-
ishell authored
This CL also cleans up related interface descriptors: 1) unused StoreTransitionDescriptor is removed and VectorStoreTransitionDescriptor is renamed to StoreTransitionDescriptor. 2) on ia32/x87 architectures slot and vector are passed on the stack (dispatcher/handlers cleanup will be addressed in a separate CL). These two stub ports have to be combined in one CL because: 1) without changing the StoreTransitionDescriptor TF was not able to compile them on ia32/x87 (because of lack of registers), 2) it was not possible to change the descriptor first because Crankshaft was not able to deal with the stack allocated parameters in case of a stub failure. TBR=jkummerow@chromium.org BUG=v8:5269 Review-Url: https://codereview.chromium.org/2313093002 Cr-Commit-Position: refs/heads/master@{#39476}
-
- 09 Sep, 2016 2 commits
-
-
Alexander.Gilday2 authored
Migrate the platform ToName stub to TurboFan. BUG=v8:5049 Review-Url: https://codereview.chromium.org/2302923002 Cr-Commit-Position: refs/heads/master@{#39315}
-
zhengxing.li authored
port 9a31162d(r39283) original commit message: Adds support to collect allocation site feedback for Array function calls to the call bytecode handler. BUG= Review-Url: https://codereview.chromium.org/2319123004 Cr-Commit-Position: refs/heads/master@{#39299}
-
- 06 Sep, 2016 1 commit
-
-
mlippautz authored
This way we avoid the cyclic dependency between objects.h and heap.h and still have one definition. Add a static assert that this size is indeed smaller than the payload of a page. Follow ups can finally remove the dependency on spaces.h for all heap.h users. R=ulan@chromium.org,bmeurer@chromium.org,vogelheim@chromium.og Review-Url: https://codereview.chromium.org/2311203002 Cr-Commit-Position: refs/heads/master@{#39206}
-
- 04 Sep, 2016 1 commit
-
-
zhengxing.li authored
port 7e5b8fee (r39120) original commit message: Collect type feedback in the bytecode handler for 'new' bytecode. The earlier cl (https://codereview.chromium.org/2153433002/) was reverted because that implementation did not collect allocation site feedback. This regressed delta blue by an order of magnitude. This implementation includes collection of allocation site feedback. Reland of https://codereview.chromium.org/2190293003/ with a bug fix. BUG= Review-Url: https://codereview.chromium.org/2293253007 Cr-Commit-Position: refs/heads/master@{#39145}
-
- 31 Aug, 2016 1 commit
-
-
mlippautz authored
BUG= R=ulan@chromium.org Review-Url: https://codereview.chromium.org/2286613002 Cr-Commit-Position: refs/heads/master@{#39054}
-
- 23 Aug, 2016 1 commit
-
-
epertoso authored
Drive-by fix: the order of parameters in the BinaryOpWithFeedback TurboFan code stubs now reflects the convention of having the context at the end. BUG=v8:5273 Review-Url: https://codereview.chromium.org/2263253002 Cr-Commit-Position: refs/heads/master@{#38832}
-
- 22 Aug, 2016 1 commit
-
-
marja authored
Rebuilding (after touching certain files) is crazy slow because includes are out of control. Fixing it: - Don't include stuff in headers unless necessary. - Include the stuff you need, not some other stuff that happens to include the stuff you need. BUG=v8:5294 Review-Url: https://codereview.chromium.org/2258603003 Cr-Commit-Position: refs/heads/master@{#38770}
-
- 17 Aug, 2016 1 commit
-
-
clarkchenwang authored
BUG= Review-Url: https://codereview.chromium.org/2250913002 Cr-Commit-Position: refs/heads/master@{#38693}
-